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 2016/09/23 10:06:03 UTC
svn commit: r1762042 - in
/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl:
ConverterMapTest.java ConverterServiceTest.java MyBean.java
Author: davidb
Date: Fri Sep 23 10:06:03 2016
New Revision: 1762042
URL: http://svn.apache.org/viewvc?rev=1762042&view=rev
Log:
Felix Converter: additional tests.
Modified:
felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java
felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/MyBean.java
Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java?rev=1762042&r1=1762041&r2=1762042&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java Fri Sep 23 10:06:03 2016
@@ -18,7 +18,9 @@ package org.apache.felix.converter.impl;
import java.math.BigInteger;
import java.net.URL;
+import java.text.SimpleDateFormat;
import java.util.Collections;
+import java.util.Date;
import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;
@@ -27,6 +29,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.osgi.service.converter.Converter;
+import org.osgi.service.converter.ConverterBuilder;
import org.osgi.service.converter.StandardConverter;
import org.osgi.service.converter.TypeReference;
@@ -82,7 +85,7 @@ public class ConverterMapTest {
@SuppressWarnings("rawtypes")
Map m = converter.convert(mb).to(Map.class);
- assertEquals(4, m.size());
+ assertEquals(5, m.size());
assertEquals("You", m.get("me"));
assertTrue((boolean) m.get("f"));
assertFalse((boolean) m.get("enabled"));
@@ -90,6 +93,24 @@ public class ConverterMapTest {
}
@Test
+ public void testJavaBeanToMapCustom() {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssZ");
+ Date d = new Date();
+ String expectedDate = sdf.format(d);
+
+ MyBean mb = new MyBean();
+ mb.setStartDate(d);
+ mb.setEnabled(true);
+
+ ConverterBuilder cb = new StandardConverter().newConverterBuilder();
+ cb.rule(Date.class, String.class, v -> sdf.format(v), v -> sdf.parse(v));
+ Converter ca = cb.build();
+ Map<String, String> m = ca.convert(mb).to(new TypeReference<Map<String, String>>(){});
+ assertEquals("true", m.get("enabled"));
+ assertEquals(expectedDate, m.get("startDate"));
+ }
+
+ @Test
public void testMapToJavaBean() {
Map<String, String> m = new HashMap<>();
Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java?rev=1762042&r1=1762041&r2=1762042&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java Fri Sep 23 10:06:03 2016
@@ -19,6 +19,7 @@ package org.apache.felix.converter.impl;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URL;
+import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -27,7 +28,10 @@ import java.time.OffsetTime;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.Collections;
+import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -126,12 +130,14 @@ public class ConverterServiceTest {
}
enum TestEnum { FOO, BAR, BLAH, FALSE, X};
+ enum TestEnum2 { BLAH };
@Test
public void testEnums() {
- assertEquals(TestEnum.BLAH, converter.convert("BLAH").to(TestEnum.class));
- assertEquals(TestEnum.X, converter.convert('X').to(TestEnum.class));
- assertEquals(TestEnum.FALSE, converter.convert(false).to(TestEnum.class));
- assertEquals(TestEnum.BAR, converter.convert(1).to(TestEnum.class));
+ assertSame(TestEnum.BLAH, converter.convert("BLAH").to(TestEnum.class));
+ assertSame(TestEnum.X, converter.convert('X').to(TestEnum.class));
+ assertSame(TestEnum.FALSE, converter.convert(false).to(TestEnum.class));
+ assertSame(TestEnum.BAR, converter.convert(1).to(TestEnum.class));
+ assertSame(TestEnum.BLAH, converter.convert(TestEnum2.BLAH).to(TestEnum.class));
assertNull(converter.convert(null).to(TestEnum.class));
assertNull(converter.convert(Collections.emptySet()).to(TestEnum.class));
}
@@ -389,6 +395,29 @@ public class ConverterServiceTest {
}
@Test
+ public void testCalendarDate() {
+ Calendar cal = new GregorianCalendar(2017, 1, 13);
+ Date d = cal.getTime();
+
+ // TODO these rules need to go to the Standard Converter.
+ Converter c = converter.newConverterBuilder().
+ rule(Date.class, String.class, v -> v.toInstant().toString(), v -> Date.from(Instant.parse(v))).
+ rule(Calendar.class, String.class, v -> v.getTime().toInstant().toString(),
+ v -> {
+ Calendar cc = Calendar.getInstance();
+ cc.setTime(Date.from(Instant.parse(v)));
+ return cc;
+ }).
+ build();
+
+ String s = c.convert(d).toString();
+ assertEquals(d, c.convert(s).to(Date.class));
+
+ String s2 = c.convert(cal).toString();
+ assertEquals(cal, c.convert(s2).to(Calendar.class));
+ }
+
+ @Test
public void testDefaultValue() {
long l = converter.convert(null).defaultValue("12").to(Long.class);
assertEquals(12L, l);
Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/MyBean.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/MyBean.java?rev=1762042&r1=1762041&r2=1762042&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/MyBean.java (original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/MyBean.java Fri Sep 23 10:06:03 2016
@@ -16,11 +16,14 @@
*/
package org.apache.felix.converter.impl;
+import java.util.Date;
+
public class MyBean {
String me;
boolean enabled;
Boolean f;
int[] numbers;
+ Date startDate;
public String get() {
return "Not a bean accessor because no camel casing";
@@ -58,4 +61,10 @@ public class MyBean {
public void setNumbers(int[] numbers) {
this.numbers = numbers;
}
+ public Date getStartDate() {
+ return startDate;
+ }
+ public void setStartDate(Date date) {
+ this.startDate = date;
+ }
}