View Javadoc

1   /*
2    * $Id: JsonNamespaceHandlerTestCase.java 23198 2011-10-17 20:44:44Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.module.json;
12  
13  import org.mule.module.json.filters.IsJsonFilter;
14  import org.mule.module.json.transformers.FruitCollection;
15  import org.mule.module.json.transformers.JsonBeanRoundTripTestCase;
16  import org.mule.module.json.transformers.JsonToObject;
17  import org.mule.module.json.transformers.ObjectToJson;
18  import org.mule.tck.junit4.FunctionalTestCase;
19  
20  import org.junit.Test;
21  
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertNotNull;
24  import static org.junit.Assert.assertTrue;
25  
26  public class JsonNamespaceHandlerTestCase extends FunctionalTestCase
27  {
28  
29      @Override
30      protected String getConfigResources()
31      {
32          return "json-namespace-config.xml";
33      }
34  
35      @Test
36      public void testJsonConfig() throws Exception
37      {
38          // This test fails under Java 1.6 on Windows, because the Java fields are serialized in a different order.
39          String javaVersion = System.getProperty("java.specification.version", "<None>");
40          String osName = System.getProperty("os.name", "<None>");
41          if (javaVersion.equals("1.6") && osName.startsWith("Windows"))
42          {
43              return;
44          }
45            
46          IsJsonFilter filter = (IsJsonFilter) muleContext.getRegistry().lookupObject("jsonFilter");
47          assertNotNull(filter);
48          assertTrue(filter.isValidateParsing());
49  
50          ObjectToJson serializer = (ObjectToJson) muleContext.getRegistry().lookupObject("fruitCollectionToJson");
51          serializer.initialise();
52          assertNotNull(serializer);
53          assertEquals(String.class, serializer.getReturnClass());
54          assertEquals(FruitCollection.class, serializer.getSourceClass());
55          assertEquals(3, serializer.getSerializationMixins().size());
56  
57          JsonToObject deserializer = (JsonToObject) muleContext.getRegistry().lookupObject("jsonToFruitCollection");
58          assertNotNull(deserializer);
59          assertEquals(FruitCollection.class, deserializer.getReturnClass());
60          assertEquals(1, deserializer.getDeserializationMixins().size());
61  
62         //Test roundTrip
63          FruitCollection fc = JsonBeanRoundTripTestCase.JSON_OBJECT;
64  
65          String result = (String)serializer.transform(fc);
66          assertNotNull(result);
67          assertEquals(JsonBeanRoundTripTestCase.JSON_STRING, result);
68  
69          FruitCollection result2 = (FruitCollection)deserializer.transform(result);
70          assertNotNull(result2);
71          assertEquals(fc, result2);
72      }
73  
74  }