Author: gk
Date: Fri Nov 30 13:40:20 2018
New Revision: 1847822
URL: http://svn.apache.org/viewvc?rev=1847822&view=rev
Log:
- migrated Jackson2 tests to JUnit5 (as is)
- update fork in all modules
- add log4j2 support in jackson 2
- reformatting Jackson2MapperService.java
Added:
turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml (with props)
Modified:
turbine/fulcrum/trunk/json/gson/pom.xml
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
turbine/fulcrum/trunk/json/jackson/pom.xml
turbine/fulcrum/trunk/json/jackson2/pom.xml
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTyping_OBJECT_AND_NON_CONCRETE_Test.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonOrgJacksonMapperTest.java
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JsonPathJacksonTest.java
turbine/fulcrum/trunk/json/pom.xml
Modified: turbine/fulcrum/trunk/json/gson/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/gson/pom.xml (original)
+++ turbine/fulcrum/trunk/json/gson/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <forkMode>always</forkMode>
<includes>
<include>**/*Test.*</include>
<include>**/*TestCase.*</include>
Modified:
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
---
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
(original)
+++
turbine/fulcrum/trunk/json/gson/src/test/org/apache/fulcrum/json/gson/JsonPathGSONServiceTest.java
Fri Nov 30 13:40:20 2018
@@ -143,7 +143,4 @@ public class JsonPathGSONServiceTest ext
idx++;
}
}
-
-
-
-}
+}
\ No newline at end of file
Modified: turbine/fulcrum/trunk/json/jackson/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson/pom.xml (original)
+++ turbine/fulcrum/trunk/json/jackson/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <forkMode>always</forkMode>
<includes>
<include>**/*Test.*</include>
<include>**/*TestCase.*</include>
Modified: turbine/fulcrum/trunk/json/jackson2/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/pom.xml?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/pom.xml (original)
+++ turbine/fulcrum/trunk/json/jackson2/pom.xml Fri Nov 30 13:40:20 2018
@@ -48,7 +48,6 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <forkMode>always</forkMode>
<includes>
<include>**/*Test.*</include>
<include>**/*TestCase.*</include>
Added: turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml?rev=1847822&view=auto
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml (added)
+++ turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml Fri Nov 30 13:40:20
2018
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<Configuration status="trace" verbose="true">
+ <Appenders>
+ <Console name="console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+ </Console>
+ <File name="logfile" fileName="target/fulcrum-test.log">
+ <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <Logger name="org.apache.fulcrum" level="debug" additivity="false">
+ <AppenderRef ref="console"/>
+ <AppenderRef ref="logfile"/>
+ </Logger>
+ <Logger name="avalon" level="debug" additivity="false">
+ <AppenderRef ref="console"/>
+ </Logger>
+ <Logger name="org.apache.logging.log4j" level="info" additivity="false">
+ <AppenderRef ref="logfile"/>
+ </Logger>
+ <Root level="error">
+ <AppenderRef ref="console"/>
+ </Root>
+ </Loggers>
+</Configuration>
\ No newline at end of file
Propchange: turbine/fulcrum/trunk/json/jackson2/src/test/log4j2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
---
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
(original)
+++
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/DefaultServiceTest.java
Fri Nov 30 13:40:20 2018
@@ -1,4 +1,5 @@
package org.apache.fulcrum.json.jackson;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -18,8 +19,9 @@ package org.apache.fulcrum.json.jackson;
* under the License.
*/
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -30,6 +32,7 @@ import java.util.List;
import java.util.Map;
import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fulcrum.json.JsonService;
import org.apache.fulcrum.json.jackson.example.Bean;
@@ -43,9 +46,12 @@ import org.apache.fulcrum.json.jackson.s
import
org.apache.fulcrum.json.jackson.serializers.TestDummyWrapperDeserializer;
import org.apache.fulcrum.json.jackson.serializers.TestJsonSerializer;
import org.apache.fulcrum.json.jackson.serializers.TestSerializer;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -66,7 +72,9 @@ import com.fasterxml.jackson.databind.se
* @author gk
* @version $Id$
*/
-public class DefaultServiceTest extends BaseUnit4Test {
+@RunWith(JUnitPlatform.class)
+public class DefaultServiceTest extends BaseUnit5Test {
+
private JsonService sc = null;
private final String preDefinedOutput =
"{\"container\":{\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}";
Logger logger;
@@ -76,10 +84,10 @@ public class DefaultServiceTest extends
*
* @throws Exception generic exception
*/
- @Before
+ @BeforeEach
public void setUp() throws Exception {
- setLogLevel(ConsoleLogger.LEVEL_DEBUG);
- logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+ logger = new
Log4JLogger(LogManager.getLogger(getClass().getName()) );
+ //new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
sc = (JsonService) this.lookup(JsonService.ROLE);
}
@@ -91,7 +99,7 @@ public class DefaultServiceTest extends
@Test
public void testSerialize() throws Exception {
String serJson = sc.ser(new TestClass("mytest"));
- assertEquals("Serialization failed ", preDefinedOutput,
serJson);
+ assertEquals(preDefinedOutput, serJson, "Serialization failed
");
}
/**
@@ -103,7 +111,7 @@ public class DefaultServiceTest extends
String expected =
"{\"type\":\"org.apache.fulcrum.json.jackson.example.TestClass\",\"container\":{\"type\":\"java.util.HashMap\",\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\"}";
String serJson = customAllExceptFilter(objectMapper, new
TestClass("mytest"), TestClass.class, "name");
logger.debug("serJson:" + serJson);
- assertEquals("Serialization with custom mapper failed ",
expected, serJson);
+ assertEquals(expected, serJson, "Serialization with custom
mapper failed ");
}
/**
@@ -119,8 +127,7 @@ public class DefaultServiceTest extends
objectMapper.enableDefaultTypingAsProperty(DefaultTyping.NON_FINAL, "type");
AnnotationIntrospector ai =
objectMapper.getSerializationConfig().getAnnotationIntrospector();
// AnnotationIntrospector is by default
JacksonAnnotationIntrospector
- assertTrue("Expected Default JacksonAnnotationIntrospector",
- "ai:" + ai != null && ai instanceof
JacksonAnnotationIntrospector);
+ assertTrue(ai != null && ai instanceof
JacksonAnnotationIntrospector, "Expected Default
JacksonAnnotationIntrospector");
// add to allow filtering properties for non annotated class
AnnotationIntrospector siai = new SimpleNameIntrospector();
AnnotationIntrospector pair = new
AnnotationIntrospectorPair(siai, ai);
@@ -177,7 +184,7 @@ public class DefaultServiceTest extends
ObjectMapper objectMapper = customMapper(false);
String serJson = customAllExceptFilter(objectMapper, beanList,
Bean.class, "name", "profession");
logger.debug("serJson:" + serJson);
- assertEquals("Serialization with custom mapper failed ",
expected, serJson);
+ assertEquals(expected, serJson);
}
/**
@@ -195,7 +202,7 @@ public class DefaultServiceTest extends
}
String serJson = sc.serializeAllExceptFilter(beanList,
Bean.class, "name", "profession");
logger.debug("serJsonByService:" + serJson);
- assertEquals("Serialization with service mapper failed",
expected, serJson);
+ assertEquals(expected, serJson, "Serialization with service
mapper failed");
}
/**
@@ -205,7 +212,7 @@ public class DefaultServiceTest extends
// the default test class: one String field, one Map
public void testSerializeExcludeNothing() throws Exception {
String serJson = sc.serializeAllExceptFilter(new
TestClass("mytest"));
- assertEquals("Serialization failed ",
+ assertEquals(
"{\"container\":{\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}",
serJson);
@@ -223,7 +230,7 @@ public class DefaultServiceTest extends
@Test
public void testSerializeExcludeClass() throws Exception {
String serJson = sc.serializeAllExceptFilter(new
TestClass("mytest"), String.class);
- assertEquals("Serialization failed ",
"{\"container\":{\"cf\":\"Config.xml\"}}", serJson);
+ assertEquals("{\"container\":{\"cf\":\"Config.xml\"}}",
serJson, "Serialization failed ");
TestClass result2 = checkDeserialization(serJson,
TestClass.class, TextClassMixin.class);
assertTrue(result2.getContainer() == null);
}
@@ -232,7 +239,7 @@ public class DefaultServiceTest extends
public void testSerializeExcludeClassAndField() throws Exception {
String serJson = ((Jackson2MapperService)
sc).serializeAllExceptFilter(new TestClass("mytest"),
new Class[] { TestClass.class, String.class },
"container");
- assertEquals("Serialization failed ", "{}", serJson);
+ assertEquals("{}", serJson);
TestClass result2 = checkDeserialization(serJson,
TestClass.class, TextClassMixin.class);
assertTrue(result2.getContainer() == null);
}
@@ -242,11 +249,11 @@ public class DefaultServiceTest extends
public void testSerializeExcludeClassAndFields() throws Exception {
String serJson = ((Jackson2MapperService)
sc).serializeAllExceptFilter(new TestClass("mytest"),
new Class[] { Map.class, String.class },
"configurationName", "name");
- assertEquals("Serialization failed ", "{}", serJson);
+ assertEquals("{}", serJson);
checkDeserialization(serJson, TestClass.class,
TextClassMixin.class);
String serJson2 = ((Jackson2MapperService)
sc).serializeAllExceptFilter(new TestClass("mytest"), true,
"configurationName", "name");
- assertEquals("Serialization failed ", "{}", serJson2);
+ assertEquals("{}", serJson2);
checkDeserialization(serJson2, TestClass.class,
TextClassMixin.class);
}
@@ -260,7 +267,7 @@ public class DefaultServiceTest extends
public void testSerializeExcludeField() throws Exception {
String serJson = sc.serializeAllExceptFilter(new
TestClass("mytest"), "configurationName");
- assertEquals("Serialization failed ",
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
+
assertEquals("{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}",
serJson, "Serialization failed ");
sc.addAdapter("Mixin Adapter", TestClass.class,
TextClassMixin.class);
// overwriting mixin with null: container is included
TestClass result2 = checkDeserialization(serJson,
TestClass.class, null);
@@ -281,7 +288,8 @@ public class DefaultServiceTest extends
sc.setDateFormat(MMddyyyy);
String serJson = sc.ser(map);
logger.debug("serJson:" + serJson);
- assertTrue("Serialize with Adapater failed ",
serJson.matches("\\{\"date\":\"\\d\\d-\\d\\d-\\d{4}\"\\}"));
+
assertTrue(serJson.matches("\\{\"date\":\"\\d\\d-\\d\\d-\\d{4}\"\\}"),
+ "Serialize with Adapater failed ");
}
/**
@@ -296,9 +304,10 @@ public class DefaultServiceTest extends
rectList.add(filteredRect);
}
String adapterSer = sc.ser(rectList);
- assertEquals("collect ser",
+ assertEquals(
"[{'w':0,'h':0,'name':'rect0','size':0},{'w':1,'h':1,'name':'rect1','size':1},{'w':2,'h':2,'name':'rect2','size':4},{'w':3,'h':3,'name':'rect3','size':9},{'w':4,'h':4,'name':'rect4','size':16},{'w':5,'h':5,'name':'rect5','size':25},{'w':6,'h':6,'name':'rect6','size':36},{'w':7,'h':7,'name':'rect7','size':49},{'w':8,'h':8,'name':'rect8','size':64},{'w':9,'h':9,'name':'rect9','size':81}]",
- adapterSer.replace('"', '\''));
+ adapterSer.replace('"', '\''),
+ "collect ser failed");
}
/**
@@ -312,400 +321,409 @@ public class DefaultServiceTest extends
intList.add(integer);
}
String result = sc.serializeOnlyFilter(intList, Integer.class);
- assertEquals("Serialization of beans failed ",
"[0,1,4,9,16,25,36,49,64,81]", result);
+ assertEquals("[0,1,4,9,16,25,36,49,64,81]", result,
"Serialization of beans failed ");
// primitives could be deserialzed without type
Collection<Integer> result2 = checkDeserCollection(result,
List.class, Integer.class);
- assertTrue("expect at least one entry ", !result2.isEmpty());
- assertTrue("result entry instance check",
result2.iterator().next().getClass().isAssignableFrom(Integer.class));
+ assertTrue( !result2.isEmpty(), "expect at least one entry ");
+ assertTrue(
result2.iterator().next().getClass().isAssignableFrom(Integer.class), "result
entry instance check");
}
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeTypeAdapterForCollection() throws Exception {
- TestSerializer tser = new TestSerializer();
- TestDeserializer tdeSer = new TestDeserializer();
- CustomModuleWrapper<List<Rectangle>> cmw = new
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
- sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
- List<Rectangle> rectList = new ArrayList<Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.add(filteredRect);
- }
- String adapterSer = sc.ser(rectList);
- assertEquals("collect ser",
-
"{'rect0':0,'rect1':1,'rect2':4,'rect3':9,'rect4':16,'rect5':25,'rect6':36,'rect7':49,'rect8':64,'rect9':81}",
- adapterSer.replace('"', '\''));
- // can only deserialize with type deserializer, adapter already
added above
- List<Rectangle> result = sc.deSer(adapterSer, ArrayList.class);
- assertTrue("result:" + result.size(), result.size() == 10);
- int nr = 3; // new Random().nextInt(10);
- assertTrue("result (" + nr + "):" + result.get(nr).getName(),
result.get(nr).getName().equals("rect" + nr));
- }
-
- @Test
- public void testMixinAdapter() throws Exception {
- TestJsonSerializer tser = new TestJsonSerializer();
- CustomModuleWrapper<TestClass> cmw = new
CustomModuleWrapper<TestClass>(tser,
- new
TestDummyWrapperDeserializer(TestClass.class));
- sc.addAdapter("Collection Adapter", TestClass.class, cmw);
- String adapterSer = sc.ser(new TestClass("mytest"));
- assertEquals("failed adapter serialization:",
"{\"n\":\"mytest\",\"p\":\"Config.xml\",\"c\":[]}", adapterSer);
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeSerialize() throws Exception {
- String serJson = sc.ser(new TestClass("mytest"));
- Object deson = sc.deSer(serJson, TestClass.class);
- assertEquals("Serialization failed ", TestClass.class,
deson.getClass());
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeserializationCollection() throws Exception {
- List<Rectangle> rectList = new ArrayList<Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.add(filteredRect);
- }
- String serColl = sc.ser(rectList);
- TypeReference<List<Rectangle>> typeRef = new
TypeReference<List<Rectangle>>() {
- };
- Collection<Rectangle> resultList0 = sc.deSerCollection(serColl,
typeRef, Rectangle.class);
- // logger.debug("resultList0 class:" +resultList0.getClass());
- for (int i = 0; i < 10; i++) {
- assertEquals("deser reread size failed", (i * i),
((List<Rectangle>) resultList0).get(i).getSize());
- }
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeserializationWithPlainListCollection() throws
Exception {
- List<Rectangle> rectList = new ArrayList<Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.add(filteredRect);
- }
- String serColl = sc.ser(rectList);
- Collection<Rectangle> resultList0 = sc.deSerCollection(serColl,
new ArrayList(), Rectangle.class);
- logger.debug("resultList0 class:" + resultList0.getClass());
- for (int i = 0; i < 10; i++) {
- assertEquals("deser reread size failed", (i * i),
((List<Rectangle>) resultList0).get(i).getSize());
- }
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeserializationWithPlainList() throws Exception {
- List<Rectangle> rectList = new ArrayList<Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.add(filteredRect);
- }
- String serColl = sc.ser(rectList);
- // Collection<Rectangle> resultList0 =
sc.deSerCollection(serColl, List.class,
- // Rectangle.class);
- List<Rectangle> resultList0 = ((Jackson2MapperService)
sc).deSerList(serColl, ArrayList.class, Rectangle.class);
- logger.debug("resultList0 class:" + resultList0.getClass());
- for (int i = 0; i < 10; i++) {
- assertEquals("deser reread size failed", (i * i),
resultList0.get(i).getSize());
- }
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeserializationWithPlainMap() throws Exception {
- Map<String, Rectangle> rectList = new HashMap<String,
Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.put("" + i, filteredRect);
- }
- String serColl = sc.ser(rectList);
- Map<String, Rectangle> resultList0 = ((Jackson2MapperService)
sc).deSerMap(serColl, Map.class, String.class,
- Rectangle.class);
- logger.debug("resultList0 class:" + resultList0.getClass());
- for (int i = 0; i < 10; i++) {
- assertEquals("deser reread size failed", (i * i),
resultList0.get("" + i).getSize());
- }
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testDeserializationTypeAdapterForCollection() throws
Exception {
- TestSerializer tser = new TestSerializer();
- TestDeserializer tdeSer = new TestDeserializer();
- CustomModuleWrapper<List<Rectangle>> cmw = new
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
- sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
- List<Rectangle> rectList = new ArrayList<Rectangle>();
- for (int i = 0; i < 10; i++) {
- Rectangle filteredRect = new Rectangle(i, i, "rect" +
i);
- rectList.add(filteredRect);
- }
- String adapterSer = sc.ser(rectList);
- ArrayList<Rectangle> resultList0 = sc.deSer(adapterSer,
ArrayList.class);
- for (int i = 0; i < 10; i++) {
- assertEquals("deser reread size failed", (i * i),
resultList0.get(i).getSize());
- }
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeWithMixinAndFilter() throws Exception {
- Bean filteredBean = new Bean();
- filteredBean.setName("joe");
- //
- sc.addAdapter("M4RBeanMixin", Bean.class, BeanMixin.class);
- // profession was already set to ignore, does not change
- String bean = sc.serializeOnlyFilter(filteredBean, Bean.class,
"profession");
- assertEquals("Ser filtered Bean failed ", "{}", bean);
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeWithOnlyFilter() throws Exception {
-
- String serJson = sc.serializeOnlyFilter(new
TestClass("mytest"), "configurationName");
- assertEquals("Serialization failed ",
"{\"configurationName\":\"Config.xml\"}", serJson);
-
- Rectangle filteredRectangle = new Rectangle(5, 10);
- filteredRectangle.setName("jim");
- String rectangle = sc.serializeOnlyFilter(filteredRectangle,
"w");
- assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}",
rectangle);
- rectangle = sc.serializeOnlyFilter(filteredRectangle, true,
"w");
- assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}",
rectangle);
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeAllExceptANDWithOnlyFilter2() throws Exception
{
-
- String serJson = sc.serializeAllExceptFilter(new
TestClass("mytest"), "configurationName");
- assertEquals("Serialization failed ",
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
-
- serJson = sc.serializeOnlyFilter(new TestClass("mytest"),
"configurationName");
- assertEquals("Serialization failed ",
"{\"configurationName\":\"Config.xml\"}", serJson);
-
- Rectangle filteredRectangle = new Rectangle(5, 10);
- filteredRectangle.setName("jim");
- String rectangle = sc.serializeOnlyFilter(filteredRectangle,
"w");
- assertEquals("Ser filtered Rectangle failed ", "{\"w\":5}",
rectangle);
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeBeanWithOnlyFilter() throws Exception {
- Bean bean = new BeanChild();
- bean.setAge(1);
- bean.setName("bean1");
- assertEquals("{\"name\":\"bean1\"}",
sc.serializeOnlyFilter(bean, true, "name"));
- assertEquals("{\"name\":\"bean1\"}",
sc.serializeOnlyFilter(bean, Bean.class, true, "name")); // parent filter
- assertEquals("{\"name\":\"bean1\"}",
sc.serializeOnlyFilter(bean, BeanChild.class, true, "name"));
- assertEquals("{\"name\":\"bean1\"}",
sc.serializeOnlyFilter(bean, Object.class, true, "name"));
- bean = new Bean();
- bean.setAge(0);
- bean.setName("bean0");
- assertEquals("{\"name\":\"bean0\"}",
sc.serializeOnlyFilter(bean, true, "name"));
- assertEquals("{\"name\":\"bean0\"}",
sc.serializeOnlyFilter(bean, Bean.class, true, "name"));
- assertEquals("{\"name\":\"bean0\"}",
sc.serializeOnlyFilter(bean, BeanChild.class, true, "name"));// child
-
// filter
- assertEquals("{\"name\":\"bean0\"}",
sc.serializeOnlyFilter(bean, Object.class, true, "name"));
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithOnlyFilterAndParentClass()
throws Exception {
- List<BeanChild> beanList = new ArrayList<BeanChild>();
- for (int i = 0; i < 3; i++) {
- BeanChild bean = new BeanChild();
- bean.setAge(i);
- bean.setName("bean" + i);
- beanList.add(bean);
- }
- String jsonResult = sc.serializeOnlyFilter(beanList,
Bean.class, true, "name");
-
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
- //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
- // BeanChild.class, true,"type"));
-
- Collection<BeanChild> result2 =
checkDeserCollection(jsonResult, List.class, BeanChild.class);
- assertTrue("expect at least one entry ", !result2.isEmpty());
- assertTrue("result entry instance check",
-
result2.iterator().next().getClass().isAssignableFrom(BeanChild.class));
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithOnlyFilterAndExactClass() throws
Exception {
- List<Bean> beanList = new ArrayList<Bean>();
- for (int i = 0; i < 3; i++) {
- Bean bean = new BeanChild();
- bean.setAge(i);
- bean.setName("bean" + i);
- beanList.add(bean);
- }
- String jsonResult = sc.serializeOnlyFilter(beanList,
BeanChild.class, true, "name");
-
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
- //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
- // BeanChild.class, true,"type"));
- Collection<Bean> result2 = checkDeserCollection(jsonResult,
List.class, Bean.class);
- assertTrue("expect at least one entry ", !result2.isEmpty());
- assertTrue("result entry instance check",
result2.iterator().next().getClass().isAssignableFrom(Bean.class));
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithOnlyFilterWithChildClass()
throws Exception {
- List<Bean> beanList = new ArrayList<Bean>();
- for (int i = 0; i < 3; i++) {
- Bean bean = new Bean();
- bean.setAge(i);
- bean.setName("bean" + i);
- beanList.add(bean);
- }
- String jsonResult = sc.serializeOnlyFilter(beanList,
BeanChild.class, true, "name");
-
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
- //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
- // BeanChild.class, true,"type"));
- Collection<Bean> result2 = checkDeserCollection(jsonResult,
List.class, Bean.class);
- assertTrue("expect at least one entry ", !result2.isEmpty());
- assertTrue("result entry instance check",
result2.iterator().next().getClass().isAssignableFrom(Bean.class));
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithOnlyFilterAndType() throws
Exception {
-
- List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
- for (int i = 0; i < 2; i++) {
- TypedRectangle filteredRect = new TypedRectangle(i, i,
"rect" + i);
- rectList.add(filteredRect);
- }
- Class<?> clazz =
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
- // no type cft.
https://github.com/FasterXML/jackson-databind/issues/303 !!
- String jsonResult = sc.serializeOnlyFilter(rectList, clazz,
true, "w");
- assertEquals("[{\"w\":0},{\"w\":1}]", jsonResult);
- // could not deserialize easily with missing property type
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithOnlyFilterAndMixin() throws
Exception {
-
- List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
- for (int i = 0; i < 2; i++) {
- TypedRectangle filteredRect = new TypedRectangle(i, i,
"rect" + i);
- rectList.add(filteredRect);
- }
- Class<?> clazz =
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
- sc.addAdapter("Collection Adapter", Object.class,
TypedRectangle.Mixins.class);
- assertEquals(
-
"[\"java.util.ArrayList\",[{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":0},{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":1}]]",
- sc.serializeOnlyFilter(rectList, clazz, true,
"w"));
- }
-
- /**
- * @throws Exception generic exception
- */
- @Test
- public void testSerializeCollectionWithTypedReference() throws
Exception {
-
- List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
- for (int i = 0; i < 2; i++) {
- TypedRectangle filteredRect = new TypedRectangle(i, i,
"rect" + i);
- rectList.add(filteredRect);
- }
- TypeReference<List<TypedRectangle>> typeRef = new
TypeReference<List<TypedRectangle>>() {
- };
- String jsonResult = ((Jackson2MapperService)
sc).serCollectionWithTypeReference(rectList, typeRef, false);
- logger.debug("aa:" + jsonResult);
- // could deserialize with type information
- Collection<TypedRectangle> result2 =
checkDeserCollection(jsonResult, List.class, TypedRectangle.class);
- assertTrue("expect at least one entry ", !result2.isEmpty());
- assertTrue("result entry instance check",
-
result2.iterator().next().getClass().isAssignableFrom(TypedRectangle.class));
-
- }
-
- @Test
- // jackson does not escape anything, except double quotes and backslash,
- // additional characters could be provided
- // by activationg escapeCharsGlobal xml characters are added
- public void testSerializeHTMLEscape() throws Exception {
- Rectangle filteredRect = new Rectangle(2, 3,
- "rectÃber<strong>StockundStein
ï</strong></script><script>alert('xss')</script>" + 0);
- String adapterSer = sc.ser(filteredRect);
- logger.debug("Escaped serialized string:" + adapterSer);
- assertEquals(
- "escaped html entities ser expected, iei
<,>,&,\\ escaped (requires escapeCharsGlobal in json component configuration",
-
"{'w':2,'h':3,'name':'rectÃber\\u003Cstrong\\u003EStockundStein
\\u0026iuml;\\u003C/strong\\u003E\\u003C/script\\u003E\\u003Cscript\\u003Ealert(\\u0027xss\\u0027)\\u003C/script\\u003E0','size':6}",
- adapterSer.replace('"', '\''));
- // you could set your own escapes here in class esc extending
from
- // CharacterEscapes.
- //
((Jackson2MapperService)sc).getMapper().getFactory().setCharacterEscapes(esc
- // ) );
- }
-
- /**
- * checks if string serJson is deserializable to class target with
adapter mixin
- * and returns result.
- *
- * @param serJson JSON String to be tested
- * @param target class to be expected
- * @param mixin adapter set
- * @return the resulting instance
- * @throws Exception
- */
- private <T> T checkDeserialization(String serJson, Class<T> target,
Class mixin) throws Exception {
- sc.addAdapter("Mixin Adapter", target, mixin);
- T result = sc.deSer(serJson, target);
- assertTrue("Result Instance Check",
target.isAssignableFrom(result.getClass()));
- return result;
- }
-
- private <U> Collection<U> checkDeserCollection(String serJson, Class<?
extends Collection> collClass,
- Class<U> entryClass) throws Exception {
- Collection<U> result = ((Jackson2MapperService)
sc).deSerCollectionWithType(serJson, collClass, entryClass);
- // System.out.println("result:"+ result + " is of type: "+
result.getClass() +
- // "and assignable from "+ collClass);
- assertTrue("Result Instance Check failed for result class " +
result.getClass() + " and target class: "
- + collClass,
collClass.isAssignableFrom(result.getClass()));
- return result;
- }
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeTypeAdapterForCollection() throws Exception {
+ TestSerializer tser = new TestSerializer();
+ TestDeserializer tdeSer = new TestDeserializer();
+ CustomModuleWrapper<List<Rectangle>> cmw = new
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
+ sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
+ List<Rectangle> rectList = new ArrayList<Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ String adapterSer = sc.ser(rectList);
+ assertEquals(
+
"{'rect0':0,'rect1':1,'rect2':4,'rect3':9,'rect4':16,'rect5':25,'rect6':36,'rect7':49,'rect8':64,'rect9':81}",
+ adapterSer.replace('"', '\''));
+ // can only deserialize with type deserializer, adapter already added
above
+ List<Rectangle> result = sc.deSer(adapterSer, ArrayList.class);
+ assertTrue( result.size() == 10, " expected result: 10");
+ int nr = 3; // new Random().nextInt(10);
+ assertTrue(result.get(nr).getName().equals("rect" + nr),
+ "result (" + nr + ") !=:" + result.get(nr).getName());
+ }
+
+ @Test
+ public void testMixinAdapter() throws Exception {
+ TestJsonSerializer tser = new TestJsonSerializer();
+ CustomModuleWrapper<TestClass> cmw = new
CustomModuleWrapper<TestClass>(tser,
+ new TestDummyWrapperDeserializer(TestClass.class));
+ sc.addAdapter("Collection Adapter", TestClass.class, cmw);
+ String adapterSer = sc.ser(new TestClass("mytest"));
+ assertEquals("{\"n\":\"mytest\",\"p\":\"Config.xml\",\"c\":[]}",
adapterSer,
+ "failed adapter serialization:");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeSerialize() throws Exception {
+ String serJson = sc.ser(new TestClass("mytest"));
+ Object deson = sc.deSer(serJson, TestClass.class);
+ assertEquals(TestClass.class, deson.getClass());
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeserializationCollection() throws Exception {
+ List<Rectangle> rectList = new ArrayList<Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ String serColl = sc.ser(rectList);
+ TypeReference<List<Rectangle>> typeRef = new
TypeReference<List<Rectangle>>() {
+ };
+ Collection<Rectangle> resultList0 = sc.deSerCollection(serColl,
typeRef, Rectangle.class);
+ // logger.debug("resultList0 class:" +resultList0.getClass());
+ for (int i = 0; i < 10; i++) {
+ assertEquals((i * i), ((List<Rectangle>)
resultList0).get(i).getSize(),
+ "deser reread size failed");
+ }
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeserializationWithPlainListCollection() throws Exception {
+ List<Rectangle> rectList = new ArrayList<Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ String serColl = sc.ser(rectList);
+ Collection<Rectangle> resultList0 = sc.deSerCollection(serColl, new
ArrayList(), Rectangle.class);
+ logger.debug("resultList0 class:" + resultList0.getClass());
+ for (int i = 0; i < 10; i++) {
+ assertEquals( (i * i), ((List<Rectangle>)
resultList0).get(i).getSize(),
+ "deser reread size failed");
+ }
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeserializationWithPlainList() throws Exception {
+ List<Rectangle> rectList = new ArrayList<Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ String serColl = sc.ser(rectList);
+ // Collection<Rectangle> resultList0 = sc.deSerCollection(serColl,
List.class,
+ // Rectangle.class);
+ List<Rectangle> resultList0 = ((Jackson2MapperService)
sc).deSerList(serColl, ArrayList.class, Rectangle.class);
+ logger.debug("resultList0 class:" + resultList0.getClass());
+ for (int i = 0; i < 10; i++) {
+ assertEquals( (i * i), resultList0.get(i).getSize(),
+ "deser reread size failed");
+ }
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeserializationWithPlainMap() throws Exception {
+ Map<String, Rectangle> rectList = new HashMap<String, Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.put("" + i, filteredRect);
+ }
+ String serColl = sc.ser(rectList);
+ Map<String, Rectangle> resultList0 = ((Jackson2MapperService)
sc).deSerMap(serColl, Map.class, String.class,
+ Rectangle.class);
+ logger.debug("resultList0 class:" + resultList0.getClass());
+ for (int i = 0; i < 10; i++) {
+ assertEquals( (i * i), resultList0.get("" + i).getSize(),
+ "deser reread size failed");
+ }
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testDeserializationTypeAdapterForCollection() throws Exception
{
+ TestSerializer tser = new TestSerializer();
+ TestDeserializer tdeSer = new TestDeserializer();
+ CustomModuleWrapper<List<Rectangle>> cmw = new
CustomModuleWrapper<List<Rectangle>>(tser, tdeSer);
+ sc.addAdapter("Collection Adapter", ArrayList.class, cmw);
+ List<Rectangle> rectList = new ArrayList<Rectangle>();
+ for (int i = 0; i < 10; i++) {
+ Rectangle filteredRect = new Rectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ String adapterSer = sc.ser(rectList);
+ ArrayList<Rectangle> resultList0 = sc.deSer(adapterSer,
ArrayList.class);
+ for (int i = 0; i < 10; i++) {
+ assertEquals( (i * i), resultList0.get(i).getSize(),
+ "deser reread size failed");
+ }
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeWithMixinAndFilter() throws Exception {
+ Bean filteredBean = new Bean();
+ filteredBean.setName("joe");
+ //
+ sc.addAdapter("M4RBeanMixin", Bean.class, BeanMixin.class);
+ // profession was already set to ignore, does not change
+ String bean = sc.serializeOnlyFilter(filteredBean, Bean.class,
"profession");
+ assertEquals("{}", bean);
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeWithOnlyFilter() throws Exception {
+
+ String serJson = sc.serializeOnlyFilter(new TestClass("mytest"),
"configurationName");
+ assertEquals("{\"configurationName\":\"Config.xml\"}", serJson,
"Serialization failed ");
+
+ Rectangle filteredRectangle = new Rectangle(5, 10);
+ filteredRectangle.setName("jim");
+ String rectangle = sc.serializeOnlyFilter(filteredRectangle, "w");
+ assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed
");
+ rectangle = sc.serializeOnlyFilter(filteredRectangle, true, "w");
+ assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed
");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeAllExceptANDWithOnlyFilter2() throws Exception {
+
+ String serJson = sc.serializeAllExceptFilter(new TestClass("mytest"),
"configurationName");
+ assertEquals(
"{\"container\":{\"cf\":\"Config.xml\"},\"name\":\"mytest\"}", serJson);
+
+ serJson = sc.serializeOnlyFilter(new TestClass("mytest"),
"configurationName");
+ assertEquals( "{\"configurationName\":\"Config.xml\"}", serJson);
+
+ Rectangle filteredRectangle = new Rectangle(5, 10);
+ filteredRectangle.setName("jim");
+ String rectangle = sc.serializeOnlyFilter(filteredRectangle, "w");
+ assertEquals( "{\"w\":5}", rectangle, "Ser filtered Rectangle failed
");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeBeanWithOnlyFilter() throws Exception {
+ Bean bean = new BeanChild();
+ bean.setAge(1);
+ bean.setName("bean1");
+ assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean,
true, "name"));
+ assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean,
Bean.class, true, "name")); // parent filter
+ assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean,
BeanChild.class, true, "name"));
+ assertEquals("{\"name\":\"bean1\"}", sc.serializeOnlyFilter(bean,
Object.class, true, "name"));
+ bean = new Bean();
+ bean.setAge(0);
+ bean.setName("bean0");
+ assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean,
true, "name"));
+ assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean,
Bean.class, true, "name"));
+ assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean,
BeanChild.class, true, "name"));// child
+
// filter
+ assertEquals("{\"name\":\"bean0\"}", sc.serializeOnlyFilter(bean,
Object.class, true, "name"));
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithOnlyFilterAndParentClass() throws
Exception {
+ List<BeanChild> beanList = new ArrayList<BeanChild>();
+ for (int i = 0; i < 3; i++) {
+ BeanChild bean = new BeanChild();
+ bean.setAge(i);
+ bean.setName("bean" + i);
+ beanList.add(bean);
+ }
+ String jsonResult = sc.serializeOnlyFilter(beanList, Bean.class, true,
"name");
+
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
+ //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+ // BeanChild.class, true,"type"));
+
+ Collection<BeanChild> result2 = checkDeserCollection(jsonResult,
List.class, BeanChild.class);
+ assertTrue( !result2.isEmpty());
+ assertTrue(
+
result2.iterator().next().getClass().isAssignableFrom(BeanChild.class),
+ "result entry instance check");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithOnlyFilterAndExactClass() throws
Exception {
+ List<Bean> beanList = new ArrayList<Bean>();
+ for (int i = 0; i < 3; i++) {
+ Bean bean = new BeanChild();
+ bean.setAge(i);
+ bean.setName("bean" + i);
+ beanList.add(bean);
+ }
+ String jsonResult = sc.serializeOnlyFilter(beanList, BeanChild.class,
true, "name");
+
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
+ //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+ // BeanChild.class, true,"type"));
+ Collection<Bean> result2 = checkDeserCollection(jsonResult,
List.class, Bean.class);
+ assertTrue( !result2.isEmpty(), "expect at least one entry ");
+ assertTrue(
result2.iterator().next().getClass().isAssignableFrom(Bean.class), "result
entry instance check");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithOnlyFilterWithChildClass() throws
Exception {
+ List<Bean> beanList = new ArrayList<Bean>();
+ for (int i = 0; i < 3; i++) {
+ Bean bean = new Bean();
+ bean.setAge(i);
+ bean.setName("bean" + i);
+ beanList.add(bean);
+ }
+ String jsonResult = sc.serializeOnlyFilter(beanList, BeanChild.class,
true, "name");
+
assertEquals("[{\"name\":\"bean0\"},{\"name\":\"bean1\"},{\"name\":\"bean2\"}]",
jsonResult);
+ //
assertEquals("[{\"type\":\"\"},{\"type\":\"\"},{\"type\":\"\"}]",sc.serializeOnlyFilter(beanList,
+ // BeanChild.class, true,"type"));
+ Collection<Bean> result2 = checkDeserCollection(jsonResult,
List.class, Bean.class);
+ assertTrue( !result2.isEmpty(), "expect at least one entry ");
+ assertTrue(
result2.iterator().next().getClass().isAssignableFrom(Bean.class), "result
entry instance check");
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithOnlyFilterAndType() throws
Exception {
+
+ List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+ for (int i = 0; i < 2; i++) {
+ TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ Class<?> clazz =
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
+ // no type cft.
https://github.com/FasterXML/jackson-databind/issues/303 !!
+ String jsonResult = sc.serializeOnlyFilter(rectList, clazz, true, "w");
+ assertEquals("[{\"w\":0},{\"w\":1}]", jsonResult);
+ // could not deserialize easily with missing property type
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithOnlyFilterAndMixin() throws
Exception {
+
+ List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+ for (int i = 0; i < 2; i++) {
+ TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ Class<?> clazz =
Class.forName("org.apache.fulcrum.json.jackson.mixins.TypedRectangle");
+ sc.addAdapter("Collection Adapter", Object.class,
TypedRectangle.Mixins.class);
+ assertEquals(
+
"[\"java.util.ArrayList\",[{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":0},{\"type\":\"org.apache.fulcrum.json.jackson.mixins.TypedRectangle\",\"w\":1}]]",
+ sc.serializeOnlyFilter(rectList, clazz, true, "w"));
+ }
+
+ /**
+ * @throws Exception generic exception
+ */
+ @Test
+ public void testSerializeCollectionWithTypedReference() throws Exception {
+
+ List<TypedRectangle> rectList = new ArrayList<TypedRectangle>();
+ for (int i = 0; i < 2; i++) {
+ TypedRectangle filteredRect = new TypedRectangle(i, i, "rect" + i);
+ rectList.add(filteredRect);
+ }
+ TypeReference<List<TypedRectangle>> typeRef = new
TypeReference<List<TypedRectangle>>() {
+ };
+ String jsonResult = ((Jackson2MapperService)
sc).serCollectionWithTypeReference(rectList, typeRef, false);
+ logger.debug("aa:" + jsonResult);
+ // could deserialize with type information
+ Collection<TypedRectangle> result2 = checkDeserCollection(jsonResult,
List.class, TypedRectangle.class);
+ assertTrue( !result2.isEmpty(), "expect at least one entry ");
+ assertTrue(
+
result2.iterator().next().getClass().isAssignableFrom(TypedRectangle.class),
+ "result entry instance check");
+
+ }
+
+ @Test
+ // jackson does not escape anything, except double quotes and backslash,
+ // additional characters could be provided
+ // by activationg escapeCharsGlobal xml characters are added
+ public void testSerializeHTMLEscape() throws Exception {
+ Rectangle filteredRect = new Rectangle(2, 3,
+ "rectÃber<strong>StockundStein
ï</strong></script><script>alert('xss')</script>" + 0);
+ String adapterSer = sc.ser(filteredRect);
+ logger.debug("Escaped serialized string:" + adapterSer);
+ assertEquals(
+
"{'w':2,'h':3,'name':'rectÃber\\u003Cstrong\\u003EStockundStein
\\u0026iuml;\\u003C/strong\\u003E\\u003C/script\\u003E\\u003Cscript\\u003Ealert(\\u0027xss\\u0027)\\u003C/script\\u003E0','size':6}",
+ adapterSer.replace('"', '\''),
+ "escaped html entities ser expected, iei <,>,&,\\ escaped
(requires escapeCharsGlobal in json component configuration");
+ // you could set your own escapes here in class esc extending from
+ // CharacterEscapes.
+ //
((Jackson2MapperService)sc).getMapper().getFactory().setCharacterEscapes(esc
+ // ) );
+ }
+
+ /**
+ * checks if string serJson is deserializable to class target with adapter
mixin
+ * and returns result.
+ *
+ * @param serJson JSON String to be tested
+ * @param target class to be expected
+ * @param mixin adapter set
+ * @return the resulting instance
+ * @throws Exception
+ */
+ private <T> T checkDeserialization(String serJson, Class<T> target, Class
mixin) throws Exception {
+ sc.addAdapter("Mixin Adapter", target, mixin);
+ T result = sc.deSer(serJson, target);
+ assertTrue( target.isAssignableFrom(result.getClass()), "Result
Instance Check");
+ return result;
+ }
+
+ private <U> Collection<U> checkDeserCollection(String serJson, Class<?
extends Collection> collClass,
+ Class<U> entryClass) throws Exception {
+ Collection<U> result = ((Jackson2MapperService)
sc).deSerCollectionWithType(serJson, collClass, entryClass);
+ // System.out.println("result:"+ result + " is of type: "+
result.getClass() +
+ // "and assignable from "+ collClass);
+ assertTrue(collClass.isAssignableFrom(result.getClass()),
+ "Result Instance Check failed for result class " +
result.getClass() + " and target class: " + collClass);
+ return result;
+ }
}
abstract class TextClassMixin {
- @JsonIgnore
- abstract Map<String, Object> getContainer();
+ @JsonIgnore
+ abstract Map<String, Object> getContainer();
}
Modified:
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
---
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
(original)
+++
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/Jackson2MapperTest.java
Fri Nov 30 13:40:20 2018
@@ -18,36 +18,41 @@ package org.apache.fulcrum.json.jackson;
* specific language governing permissions and limitations
* under the License.
*/
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fulcrum.json.JsonService;
import org.apache.fulcrum.json.jackson.example.Bean;
import org.apache.fulcrum.json.jackson.example.Rectangle;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
/**
* More Jackson2 JSON Test
*
* Test with clearing mixins
- *
+
* @author gk
* @version $Id$
*/
-public class Jackson2MapperTest extends BaseUnit4Test {
+@RunWith(JUnitPlatform.class)
+public class Jackson2MapperTest extends BaseUnit5Test {
private JsonService sc = null;
Logger logger;
- @Before
+ @BeforeEach
public void setUp() throws Exception {
sc = (JsonService) this.lookup(JsonService.ROLE);
- logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+ logger = new Log4JLogger(LogManager.getLogger(getClass().getName()) );
// clear
((Jackson2MapperService)sc).setMixins(null,null);
logger.debug( "cleared mixins");
@@ -59,14 +64,15 @@ public class Jackson2MapperTest extends
bean.setName("joe");
bean.setAge(12);
String filteredBean = sc.serializeOnlyFilter(bean, Bean.class,
"name");
- assertEquals("Ser filtered Bean failed ", "{\"name\":\"joe\"}",
filteredBean);
+ assertEquals( "{\"name\":\"joe\"}", filteredBean, "Ser filtered Bean
failed ");
Rectangle rectangle = new Rectangle(5, 10);
rectangle.setName("jim");
String filteredRectangle = sc.serializeOnlyFilter(rectangle,
Rectangle.class, "w", "name");
- assertEquals("Ser filtered Rectangle failed ",
- "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+ assertEquals(
+ "{\"w\":5,\"name\":\"jim\"}", filteredRectangle,
+ "Ser filtered Rectangle failed ");
}
// analog seralizeAllExcept
@@ -80,29 +86,32 @@ public class Jackson2MapperTest extends
rectangle.setName("jim");
String filteredBean = sc.serializeOnlyFilter(bean, Bean.class,
"name");
- assertEquals("global Ser filtered Bean failed ", "{\"name\":\"joe\"}",
filteredBean);
+ assertEquals("{\"name\":\"joe\"}", filteredBean, "global Ser filtered
Bean failed ");
String filteredRectangle = sc.serializeOnlyFilter(rectangle,
Rectangle.class, "w", "name");
- assertEquals("global Ser filtered Rectangle failed ",
- "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+ assertEquals(
+ "{\"w\":5,\"name\":\"jim\"}", filteredRectangle,
+ "global Ser filtered Rectangle failed ");
filteredBean = ((Jackson2MapperService)sc).serializeOnlyFilter(bean,
new Class[]{ Bean.class}, true, "age");
- assertEquals("Another Global Ser filtered Bean failed ",
"{\"age\":12}", filteredBean);
+ assertEquals("{\"age\":12}", filteredBean, "Another Global Ser
filtered Bean failed ");
filteredRectangle = ((Jackson2MapperService)sc).serializeOnlyFilter(
rectangle, new Class[] { Rectangle.class}, true, "h", "name");
- assertEquals("Local Ser filtered Rectangle failed ",
- "{\"h\":10,\"name\":\"jim\"}", filteredRectangle);
+ assertEquals(
+ "{\"h\":10,\"name\":\"jim\"}", filteredRectangle,
+ "Local Ser filtered Rectangle failed ");
// if refresh would be false, this would fail
filteredBean = sc.serializeOnlyFilter(bean, Bean.class, "name");
- assertEquals("global Ser filtered Bean failed ", "{\"name\":\"joe\"}",
filteredBean);
+ assertEquals("{\"name\":\"joe\"}", filteredBean,
+ "global Ser filtered Bean failed ");
filteredRectangle = sc.serializeOnlyFilter(rectangle,
Rectangle.class, "w", "name");
- assertEquals("global Ser filtered Rectangle failed ",
- "{\"w\":5,\"name\":\"jim\"}", filteredRectangle);
+ assertEquals(
+ "{\"w\":5,\"name\":\"jim\"}", filteredRectangle, "global Ser
filtered Rectangle failed ");
}
}
Modified:
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java?rev=1847822&r1=1847821&r2=1847822&view=diff
==============================================================================
---
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
(original)
+++
turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperEnabledDefaultTypingTest.java
Fri Nov 30 13:40:20 2018
@@ -18,10 +18,8 @@ package org.apache.fulcrum.json.jackson;
* specific language governing permissions and limitations
* under the License.
*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.ArrayList;
import java.util.Calendar;
@@ -31,7 +29,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fulcrum.json.JsonService;
import org.apache.fulcrum.json.jackson.example.Bean;
@@ -41,9 +39,12 @@ import org.apache.fulcrum.json.jackson.m
import org.apache.fulcrum.json.jackson.mixins.RectangleMixin;
import org.apache.fulcrum.json.jackson.mixins.RectangleMixin2;
import org.apache.fulcrum.json.jackson.mixins.TypedRectangle;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
@@ -56,29 +57,31 @@ import com.fasterxml.jackson.databind.Ob
* @author gk
* @version $Id$
*/
-public class JacksonMapperEnabledDefaultTypingTest extends BaseUnit4Test {
+//@Nested
+@RunWith(JUnitPlatform.class)
+public class JacksonMapperEnabledDefaultTypingTest extends BaseUnit5Test {
public static final String preDefinedOutput =
"{\"type\":\"org.apache.fulcrum.json.jackson.example.TestClass\",\"container\":{\"type\":\"java.util.HashMap\",\"cf\":\"Config.xml\"},\"configurationName\":\"Config.xml\",\"name\":\"mytest\"}";
private JsonService sc = null;
Logger logger;
- @Before
+ @BeforeEach
public void setUp() throws Exception {
sc = (JsonService) this.lookup(JsonService.ROLE);
- logger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+ logger = new Log4JLogger(LogManager.getLogger(getClass().getName()) );
((Jackson2MapperService) sc).getMapper().enableDefaultTypingAsProperty(
DefaultTyping.NON_FINAL, "type");
}
@Test
public void testSerialize() throws Exception {
String serJson = sc.ser(new TestClass("mytest"));
- assertEquals("Serialization failed ", preDefinedOutput, serJson);
+ assertEquals(preDefinedOutput, serJson, "Serialization failed ");
}
@Test
public void testDeSerialize() throws Exception {
String serJson = sc.ser(new TestClass("mytest"));
Object deson = sc.deSer(serJson, TestClass.class);
- assertEquals("DeSer failed ", TestClass.class, deson.getClass());
+ assertEquals(TestClass.class, deson.getClass(), "DeSer failed ");
}
@Test
public void testSerializeDateWithDefaultDateFormat() throws Exception {
@@ -87,8 +90,9 @@ public class JacksonMapperEnabledDefault
String serJson = sc.ser(map);
logger.debug("serJson:" +serJson);
assertEquals(
- "Serialize with Adapater failed ",true,
-
serJson.matches(".*\"java.util.Date\",\"\\d\\d/\\d\\d/\\d{4}\".*"));
+ true,
+
serJson.matches(".*\"java.util.Date\",\"\\d\\d/\\d\\d/\\d{4}\".*"),
+ "Serialize with Adapater failed ");
}
@Test
public void testDeSerializeDate() throws Exception {
@@ -99,8 +103,8 @@ public class JacksonMapperEnabledDefault
String serJson = sc.ser(map, Map.class);
logger.debug("serJsonwithmap:"+ serJson);
Map<String, Date> serDate = sc.deSer(serJson, Map.class);
- assertEquals("Date DeSer failed ", Date.class, serDate.get("date")
- .getClass());
+ assertEquals(Date.class, serDate.get("date")
+ .getClass(), "Date DeSer failed ");
}
@Test
public void testSerializeWithCustomFilter() throws Exception {
@@ -108,16 +112,16 @@ public class JacksonMapperEnabledDefault
filteredBean.setName("joe");
String bean = sc.serializeOnlyFilter(filteredBean, Bean.class, "name");
assertEquals(
- "Ser filtered Bean failed ",
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"name\":\"joe\"}",
- bean);
+ bean,
+ "Ser filtered Bean failed ");
Rectangle filteredRectangle = new Rectangle(5, 10);
filteredRectangle.setName("jim");
String rectangle = sc.serializeOnlyFilter(filteredRectangle,
Rectangle.class, "w", "name");
- assertEquals("Ser filtered Rectangle failed ",
- "{\"w\":5,\"name\":\"jim\"}", rectangle);
+ assertEquals(
+ "{\"w\":5,\"name\":\"jim\"}", rectangle, "Ser filtered
Rectangle failed ");
}
@Test
public void testSerializationCollectionWithFilter() throws Exception {
@@ -132,9 +136,9 @@ public class JacksonMapperEnabledDefault
String result = sc.serializeOnlyFilter(beanList, Bean.class, "name",
"age");
assertEquals(
- "Serialization of beans failed ",
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0','age':0},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1','age':1},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2','age':2},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe3','age':3},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe4','age':4},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe5','age':5},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe6','age':6},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe7','age':7},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe8','age':8},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe9','age':9}]]",
- result.replace('"', '\''));
+ result.replace('"', '\''),
+ "Serialization of beans failed ");
Collection<Rectangle> resultDeSer = checkDeserCollection(result,
List.class, Rectangle.class);
}
@@ -143,14 +147,15 @@ public class JacksonMapperEnabledDefault
sc.addAdapter("TestClass Adapter", target, mixin);
T result = sc.deSer(serJson,target);
//logger.debug("result:"+ result + " is of type "+ target.getName());
- assertTrue("result instance check",
target.isAssignableFrom(result.getClass()));
+ assertTrue(target.isAssignableFrom(result.getClass()), "result
instance check");
return result;
}
private <U> Collection<U> checkDeserCollection(String serJson,Class<?
extends Collection> collClass, Class entryClass) throws Exception {
Collection<U> result = ((Jackson2MapperService)
sc).deSerCollectionWithType(serJson, collClass, entryClass);
- assertTrue("result instance check failed for result class "+
result.getClass() + " and target class: "+ collClass,
- collClass.isAssignableFrom(result.getClass()));
+ assertTrue(
+ collClass.isAssignableFrom(result.getClass()),
+ "result instance check failed for result class "+
result.getClass() + " and target class: "+ collClass);
return result;
}
@@ -171,9 +176,9 @@ public class JacksonMapperEnabledDefault
TypeReference typeRef = new TypeReference<List<Bean>>(){};
List<Bean> beanList2 = (List<Bean>) ((Jackson2MapperService) sc)
.deSerCollection(result, typeRef, Bean.class);
- assertTrue("DeSer failed ", beanList2.size() == 10);
+ assertTrue(beanList2.size() == 10);
for (Bean bean : beanList2) {
- assertEquals("DeSer failed ", Bean.class, bean.getClass());
+ assertEquals(Bean.class, bean.getClass());
}
}
@Test
@@ -190,12 +195,12 @@ public class JacksonMapperEnabledDefault
String result = sc.serializeOnlyFilter(beanList, Bean.class, "name",
"age");
Object beanList2 = sc.deSer(result, List.class);
- assertTrue("DeSer failed ", beanList2 instanceof List);
- assertTrue("DeSer failed ", ((List) beanList2).size() == 10);
+ assertTrue( beanList2 instanceof List);
+ assertTrue( ((List) beanList2).size() == 10);
for (int i = 0; i < ((List) beanList2).size(); i++) {
- assertTrue("DeSer failed ",
+ assertTrue(
((List) beanList2).get(i) instanceof Bean);
- assertTrue("DeSer failed ", ((Bean) ((List) beanList2).get(i))
+ assertTrue(((Bean) ((List) beanList2).get(i))
.getName().equals("joe" + i));
}
@@ -207,7 +212,7 @@ public class JacksonMapperEnabledDefault
String serRect = sc
.addAdapter("M4RMixin", Rectangle.class,
RectangleMixin.class).ser(
filteredRectangle);
- assertEquals("Ser failed ", "{\"width\":5}", serRect);
+ assertEquals("{\"width\":5}", serRect);
}
@Test
public void testSerializeWith2Mixins() throws Exception {
@@ -218,16 +223,16 @@ public class JacksonMapperEnabledDefault
String serRect = sc.addAdapter("M4RMixin2", Rectangle.class,
RectangleMixin2.class).ser(filteredRectangle);
- assertEquals("Ser failed ", "{\"name\":\"jim\",\"width\":5}", serRect);
+ assertEquals( "{\"name\":\"jim\",\"width\":5}", serRect);
//
String bean = sc.addAdapter("M4RBeanMixin", Bean.class,
BeanMixin.class).ser(filteredBean);;
assertEquals(
- "Ser filtered Bean failed ",
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"name\":\"joe\"}",
- bean);
+ bean,
+ "Ser filtered Bean failed ");
}
@Test
public void testSerializeWithMixinAndFilter() throws Exception {
@@ -239,7 +244,6 @@ public class JacksonMapperEnabledDefault
// profession was already set to ignore, does not change
String bean = sc.serializeOnlyFilter(filteredBean, Bean.class,
"profession");
assertEquals(
- "Ser filtered Bean failed ",
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\"}",
bean);
}
@@ -255,9 +259,9 @@ public class JacksonMapperEnabledDefault
// now profession is used after cleaning adapter
String bean = sc.serializeOnlyFilter(filteredBean, Bean.class,
"profession");
assertEquals(
- "Ser filtered Bean failed ",
"{\"type\":\"org.apache.fulcrum.json.jackson.example.Bean\",\"profession\":\"\"}",
- bean);
+ bean,
+ "Serialization of beans failed ");
}
@Test
public void testMultipleSerializingWithMixinAndFilter() throws Exception {
@@ -270,21 +274,21 @@ public class JacksonMapperEnabledDefault
// if serialization is done Jackson clean cache
String rectangle0 = sc.ser(filteredRectangle,Rectangle.class,true);
assertEquals(
- "Ser filtered Rectangle failed ",
"{\"name\":\"jim\",\"width\":5}",
- rectangle0);
+ rectangle0,
+ "Ser filtered Rectangle0 failed ");
// filtering out name, using width from mixin2 as a second filter
String rectangle = sc.serializeOnlyFilter(filteredRectangle,
Rectangle.class, true, "width");
assertEquals(
- "Ser filtered Rectangle failed ",
"{\"width\":5}",
- rectangle);
+ rectangle,
+ "Ser filtered Rectangle failed ");
// default for mixin
String rectangle1 = sc.ser(filteredRectangle);
assertEquals(
- "Ser filtered Rectangle failed ",
"{\"name\":\"jim\",\"width\":5}",
- rectangle1);
+ rectangle1,
+ "Ser filtered Rectangle1 failed ");
}
@Test
public void testSerializationCollectionWithMixin() throws Exception {
@@ -298,9 +302,9 @@ public class JacksonMapperEnabledDefault
String result = sc.addAdapter("M4RMixin", Bean.class, BeanMixin.class)
.ser(beanList);
assertEquals(
- "Serialization of beans failed ",
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe3'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe4'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe5'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe6'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe7'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe8'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe9'}]]",
- result.replace('"', '\''));
+ result.replace('"', '\''),
+ "Serialization of beans failed ");
}
@Test
public void testDeSerializationCollectionWithMixin() throws Exception {
@@ -317,9 +321,9 @@ public class JacksonMapperEnabledDefault
TypeReference typeRef = new TypeReference<List<Bean>>(){};
List<Bean> beanList2 = (List<Bean>) ((Jackson2MapperService) sc)
.deSerCollection(result, typeRef, Bean.class);
- assertTrue("DeSer failed ", beanList2.size() == 10);
+ assertTrue(beanList2.size() == 10, "DeSer failed ");
for (Bean bean : beanList2) {
- assertEquals("DeSer failed ", Bean.class, bean.getClass());
+ assertEquals( Bean.class, bean.getClass(), "DeSer failed ");
}
}
@Test
@@ -337,7 +341,7 @@ public class JacksonMapperEnabledDefault
"M4BeanRMixin", Bean.class, BeanMixin.class);
String serRect = sc.ser(components);
assertEquals(
- "Serialization failed ",
+
"['java.util.ArrayList',[{'type':'org.apache.fulcrum.json.jackson.example.Rectangle','width':25},{'type':'org.apache.fulcrum.json.jackson.example.Rectangle','width':250},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe0'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe1'},{'type':'org.apache.fulcrum.json.jackson.example.Bean','name':'joe2'}]]",
serRect.replace('"', '\''));
}