You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2019/03/08 17:31:04 UTC

svn commit: r1855057 - /felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java

Author: davidb
Date: Fri Mar  8 17:31:04 2019
New Revision: 1855057

URL: http://svn.apache.org/viewvc?rev=1855057&view=rev
Log:
Add unit test for custom converter chaining.

Modified:
    felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java

Modified: felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java?rev=1855057&r1=1855056&r2=1855057&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java Fri Mar  8 17:31:04 2019
@@ -404,6 +404,24 @@ public class ConverterTest {
     }
 
     @Test
+    public void testCustomConverterChaining() {
+        ConverterBuilder cb = converter.newConverterBuilder();
+        cb.rule(Date.class,
+                (f,t) -> f instanceof String ? new Date(0) : ConverterFunction.CANNOT_HANDLE);
+        Converter c1 = cb.build();
+        assertEquals(new Date(0), c1.convert("something").to(Date.class));
+        assertEquals(new Date(0), c1.convert("foo").to(Date.class));
+
+        ConverterBuilder cb2 = c1.newConverterBuilder();
+        cb2.rule(Date.class,
+                (f,t) -> f.equals("foo") ? new Date(100000) : ConverterFunction.CANNOT_HANDLE);
+        Converter c2 = cb2.build();
+        assertEquals(new Date(0), c2.convert("something").to(Date.class));
+        assertEquals(new Date(100000), c2.convert("foo").to(Date.class));
+    }
+
+
+    @Test
     public void testCustomErrorHandling() {
         ConverterFunction func = new ConverterFunction() {
             @Override
@@ -675,7 +693,7 @@ public class ConverterTest {
     public void testDTO2Map4() {
     	MyDefaultCtorDTOAlike dto = new MyDefaultCtorDTOAlike();
     	dto.myProp = "myValue";
-    	
+
     	@SuppressWarnings("rawtypes")
     	Map m = converter.convert(dto).to(Map.class);
     	assertEquals(1, m.size());
@@ -686,7 +704,7 @@ public class ConverterTest {
     public void testDTO2Map5() {
     	MyDTO3 dto = new MyDTO3();
     	dto.charSet = new HashSet<>(Arrays.asList('f', 'o', 'o'));
-    	
+
     	@SuppressWarnings("rawtypes")
     	Map m = converter.convert(dto).to(new TypeReference<Map<String, ?>>() {});
     	assertEquals(1, m.size());
@@ -694,12 +712,12 @@ public class ConverterTest {
 
     	m = converter.convert(dto).to(new TypeReference<Map<String, ? extends List<String>>>() {});
     	assertEquals(1, m.size());
-    	
+
     	List<String> list = new ArrayList<>();
     	for (Character character : dto.charSet) {
 			list.add(String.valueOf(character));
 		}
-    	
+
     	assertEquals(list, m.get("charSet"));
     }