You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/03/10 16:51:27 UTC
[31/34] incubator-juneau git commit: Add builder classes for all
serializers and parsers.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/PropertyStoreTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/PropertyStoreTest.java b/juneau-core-test/src/test/java/org/apache/juneau/PropertyStoreTest.java
new file mode 100644
index 0000000..9bc6398
--- /dev/null
+++ b/juneau-core-test/src/test/java/org/apache/juneau/PropertyStoreTest.java
@@ -0,0 +1,823 @@
+// ***************************************************************************************************************************
+// * 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. *
+// ***************************************************************************************************************************
+package org.apache.juneau;
+
+import static org.apache.juneau.TestUtils.*;
+import static org.junit.Assert.*;
+
+import java.util.*;
+
+import org.apache.juneau.xml.*;
+import org.junit.*;
+
+
+@SuppressWarnings({"rawtypes","javadoc"})
+public class PropertyStoreTest {
+
+ //====================================================================================================
+ // testSimpleProperties()
+ //====================================================================================================
+ @Test
+ public void testSimpleProperties() {
+ PropertyStore f = PropertyStore.create();
+
+ f.setProperty("A.f1", "1");
+ f.setProperty("A.f2", "2");
+
+ assertObjectEquals("{'A.f1':'1','A.f2':'2'}", f.getPropertyMap("A").asMap());
+
+ f.setProperty("B.f3", "3");
+ f.setProperty("A.f1", String.class);
+ f.setProperty("A.f2", 4);
+
+ assertObjectEquals("{'A.f1':'java.lang.String','A.f2':4}", f.getPropertyMap("A").asMap());
+
+ f.setProperty("A.f2", null);
+ f.setProperty("A.f2", null);
+ assertObjectEquals("{'A.f1':'java.lang.String'}", f.getPropertyMap("A").asMap());
+
+ try {
+ f.setProperty(null, null);
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Invalid property name specified: 'null'", e.getMessage());
+ }
+
+ try {
+ f.addToProperty("A.f1", "foo");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot add value 'foo' (java.lang.String) to property 'A.f1' (SIMPLE).", e.getMessage());
+ }
+
+ try {
+ f.removeFromProperty("A.f1", "foo");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot remove value 'foo' (java.lang.String) from property 'A.f1' (SIMPLE).", e.getMessage());
+ }
+
+ try {
+ f.putToProperty("A.f1", "foo", "bar");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot put value 'foo'(java.lang.String)->'bar'(java.lang.String) to property 'A.f1' (SIMPLE).", e.getMessage());
+ }
+
+ try {
+ f.putToProperty("A.f1", "foo");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot put value 'foo' (java.lang.String) to property 'A.f1' (SIMPLE).", e.getMessage());
+ }
+ }
+
+ //====================================================================================================
+ // testSetProperties()
+ //====================================================================================================
+ @Test
+ public void testSetProperties() {
+ PropertyStore f = PropertyStore.create();
+ String key = "A.f1.set";
+
+ f.setProperty(key, Arrays.asList(2,3,1));
+ assertObjectEquals("[1,2,3]", f.getProperty(key, int[].class, null));
+
+ f.addToProperty(key, 0);
+ f.addToProperty(key, new int[]{4,5});
+ assertObjectEquals("[0,1,2,3,4,5]", f.getProperty(key, int[].class, null));
+ f.addToProperty(key, new HashSet<String>(Arrays.asList("6","7")));
+ assertObjectEquals("[0,1,2,3,4,5,6,7]", f.getProperty(key, int[].class, null));
+ f.addToProperty(key, new int[]{4,5});
+ assertObjectEquals("[0,1,2,3,4,5,6,7]", f.getProperty(key, int[].class, null));
+
+ f.removeFromProperty(key, 4);
+ f.removeFromProperty(key, new HashSet<String>(Arrays.asList("1")));
+ f.removeFromProperty(key, new String[]{"2","9"});
+ assertObjectEquals("[0,3,5,6,7]", f.getProperty(key, int[].class, null));
+ assertObjectEquals("['0','3','5','6','7']", f.getProperty(key, String[].class, null));
+
+ f.setProperty(key, Arrays.asList("foo","bar","baz"));
+ assertObjectEquals("['bar','baz','foo']", f.getProperty(key, String[].class, null));
+
+ f.setProperty(key, "[1,2,3]");
+ assertObjectEquals("[1,2,3]", f.getProperty(key, int[].class, null));
+
+ f.setProperty(key, "['1','2','3']");
+ assertObjectEquals("[1,2,3]", f.getProperty(key, int[].class, null));
+
+ try {
+ f.putToProperty("A.f1.set", "foo");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot put value 'foo' (java.lang.String) to property 'A.f1.set' (SET).", e.getMessage());
+ }
+
+ try {
+ f.putToProperty("A.f1.set", "foo", "bar");
+ fail("Exception expected");
+ } catch (Exception e) {
+ assertEquals("Cannot put value 'foo'(java.lang.String)->'bar'(java.lang.String) to property 'A.f1.set' (SET).", e.getMessage());
+ }
+ }
+
+ //====================================================================================================
+ // testListProperties()
+ //====================================================================================================
+ @Test
+ public void testListProperties() {
+ PropertyStore f = PropertyStore.create();
+ String key = "A.f1.list";
+
+ f.setProperty(key, Arrays.asList(2,3,1));
+ assertObjectEquals("[2,3,1]", f.getProperty(key, int[].class, null));
+
+ f.addToProperty(key, 0);
+ f.addToProperty(key, new int[]{4,5});
+ assertObjectEquals("[4,5,0,2,3,1]", f.getProperty(key, int[].class, null));
+ f.addToProperty(key, new TreeSet<String>(Arrays.asList("6","7")));
+ assertObjectEquals("[6,7,4,5,0,2,3,1]", f.getProperty(key, int[].class, null));
+ f.addToProperty(key, new int[]{4,5});
+ assertObjectEquals("[4,5,6,7,0,2,3,1]", f.getProperty(key, int[].class, null));
+
+ f.removeFromProperty(key, 4);
+ f.removeFromProperty(key, new HashSet<String>(Arrays.asList("1")));
+ f.removeFromProperty(key, new String[]{"2","9"});
+ assertObjectEquals("[5,6,7,0,3]", f.getProperty(key, int[].class, null));
+ assertObjectEquals("['5','6','7','0','3']", f.getProperty(key, String[].class, null));
+
+ f.setProperty(key, Arrays.asList("foo","bar","baz"));
+ assertObjectEquals("['foo','bar','baz']", f.getProperty(key, String[].class, null));
+ }
+
+ //====================================================================================================
+ // testMapProperties()
+ //====================================================================================================
+ @SuppressWarnings("serial")
+ @Test
+ public void testMapProperties() {
+ PropertyStore f = PropertyStore.create();
+ String key = "A.f1.map";
+
+ f.setProperty(key, new HashMap<String,String>(){{put("1","1");put("3","3");put("2","2");}});
+ assertObjectEquals("{'1':1,'2':2,'3':3}", f.getMap(key, Integer.class, Integer.class, null));
+
+ f.setProperty(key, "{'1':1,'2':2,'3':3}");
+ assertObjectEquals("{'1':1,'2':2,'3':3}", f.getMap(key, Integer.class, Integer.class, null));
+
+ f.putToProperty(key, "{'3':4,'4':5,'5':6}");
+ assertObjectEquals("{'1':1,'2':2,'3':4,'4':5,'5':6}", f.getMap(key, Integer.class, Integer.class, null));
+ }
+
+ //====================================================================================================
+ // Hash code and comparison
+ //====================================================================================================
+ @SuppressWarnings({ "serial" })
+ @Test
+ public void testHashCodes() throws Exception {
+ PropertyStore f1 = PropertyStore.create();
+ f1.setProperty("A.a", 1);
+ f1.setProperty("A.b", true);
+ f1.setProperty("A.c", String.class);
+ f1.setProperty("A.d.set", new Object[]{1, true, String.class});
+ f1.setProperty("A.e.map", new HashMap<Object,Object>(){{put(true,true);put(1,1);put(String.class,String.class);}});
+
+ PropertyStore f2 = PropertyStore.create();
+ f2.setProperty("A.e.map", new HashMap<Object,Object>(){{put("1","1");put("true","true");put("java.lang.String","java.lang.String");}});
+ f2.setProperty("A.d.set", new Object[]{"true","1","java.lang.String"});
+ f2.setProperty("A.c", "java.lang.String");
+ f2.setProperty("A.b", "true");
+ f2.setProperty("A.a", "1");
+
+ PropertyStore.PropertyMap p1 = f1.getPropertyMap("A");
+ PropertyStore.PropertyMap p2 = f2.getPropertyMap("A");
+ assertEquals(p1.hashCode(), p2.hashCode());
+ }
+
+ @SuppressWarnings("unchecked")
+ private static class ConversionTest {
+ PropertyStore config = PropertyStore.create();
+ String pName;
+ Object in;
+
+ private ConversionTest(String pName, Object in) {
+ this.pName = pName;
+ this.in = in;
+ }
+
+ private ConversionTest test(Class c, String expected) {
+ try {
+ config.setProperty(pName, in);
+ assertObjectEquals(expected, config.getProperty(pName, c, null));
+ } catch (Exception x) {
+ assertEquals(expected.toString(), x.getLocalizedMessage());
+ }
+ return this;
+ }
+
+ private ConversionTest testMap(Class k, Class v, String expected) {
+ try {
+ config.setProperty(pName, in);
+ assertObjectEquals(expected, config.getMap(pName, k, v, null));
+ } catch (Exception x) {
+ assertEquals(expected, x.getLocalizedMessage());
+ }
+ return this;
+ }
+ }
+
+ //====================================================================================================
+ // Conversions on simple properties
+ //====================================================================================================
+ @Test
+ @SuppressWarnings({ "serial" })
+ public void testConversionsOnSimpleProperties() throws Exception {
+ String pName = "A.a";
+
+ //--------------------------------------------------------------------------------
+ // boolean
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, true)
+ .test(boolean.class, "true")
+ .test(int.class, "1")
+ .test(String.class, "'true'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'java.lang.Class'. Value=true.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=true.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'java.lang.String[]'. Value=true.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'java.lang.Class[]'. Value=true.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=true.")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=true.")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Boolean' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=true.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // int
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, 123)
+ .test(boolean.class, "true")
+ .test(int.class, "123")
+ .test(String.class, "'123'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'java.lang.Class'. Value=123.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=123.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'java.lang.String[]'. Value=123.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'java.lang.Class[]'. Value=123.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=123.")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=123.")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Integer' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=123.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, String.class)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'int'. Value='java.lang.String'.")
+ .test(String.class, "'java.lang.String'")
+ .test(Class.class, "'java.lang.String'")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value='java.lang.String'.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'java.lang.String[]'. Value='java.lang.String'.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'java.lang.Class[]'. Value='java.lang.String'.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value='java.lang.String'.")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value='java.lang.String'.")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value='java.lang.String'.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, "foo")
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'int'. Value='foo'.")
+ .test(String.class, "'foo'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'java.lang.Class'. Value='foo'.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value='foo'.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'java.lang.String[]'. Value='foo'.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'java.lang.Class[]'. Value='foo'.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value='foo'.")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value='foo'.")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value='foo'.")
+ ;
+ new ConversionTest(pName, "java.lang.String")
+ .test(Class.class, "'java.lang.String'")
+ ;
+ new ConversionTest(pName, "true")
+ .test(boolean.class, "true")
+ ;
+ new ConversionTest(pName, "ONE")
+ .test(TestEnum.class, "'ONE'")
+ ;
+ new ConversionTest(pName, "123")
+ .test(int.class, "123")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, TestEnum.ONE)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'int'. Value='ONE'.")
+ .test(String.class, "'ONE'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'java.lang.Class'. Value='ONE'.")
+ .test(TestEnum.class, "'ONE'")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'java.lang.String[]'. Value='ONE'.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'java.lang.Class[]'. Value='ONE'.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value='ONE'.")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value='ONE'.")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value='ONE'.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new String[]{"foo","bar"})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'int'. Value=['foo','bar'].")
+ .test(String.class, "'[\\'foo\\',\\'bar\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'java.lang.Class'. Value=['foo','bar'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['foo','bar'].")
+ .test(String[].class, "['foo','bar']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'java.lang.Class[]'. Value=['foo','bar'].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['foo','bar'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['foo','bar'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.String[]' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['foo','bar'].")
+ ;
+ new ConversionTest(pName, new String[]{"ONE","TWO"})
+ .test(TestEnum[].class, "['ONE','TWO']")
+ ;
+ new ConversionTest(pName, new String[]{"true","false"})
+ .test(boolean[].class, "[true,false]")
+ ;
+ new ConversionTest(pName, new String[]{"java.lang.String","java.lang.Integer"})
+ .test(Class[].class, "['java.lang.String','java.lang.Integer']")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Class[]{String.class,Integer.class})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'int'. Value=['java.lang.String','java.lang.Integer'].")
+ .test(String.class, "'[\\'java.lang.String\\',\\'java.lang.Integer\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'java.lang.Class'. Value=['java.lang.String','java.lang.Integer'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['java.lang.String','java.lang.Integer'].")
+ .test(String[].class, "['java.lang.String','java.lang.Integer']")
+ .test(Class[].class, "['java.lang.String','java.lang.Integer']")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['java.lang.String','java.lang.Integer'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['java.lang.String','java.lang.Integer'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.lang.Class[]' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['java.lang.String','java.lang.Integer'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new TestEnum[]{TestEnum.ONE,TestEnum.TWO})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'int'. Value=['ONE','TWO'].")
+ .test(String.class, "'[\\'ONE\\',\\'TWO\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'java.lang.Class'. Value=['ONE','TWO'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['ONE','TWO'].")
+ .test(String[].class, "['ONE','TWO']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'java.lang.Class[]'. Value=['ONE','TWO'].")
+ .test(TestEnum[].class, "['ONE','TWO']")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['ONE','TWO'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'org.apache.juneau.PropertyStoreTest$TestEnum[]' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['ONE','TWO'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<String,String>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<String,String> m1 = new LinkedHashMap<String,String>();
+ m1.put("foo","bar");
+ new ConversionTest(pName, m1)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'int'. Value={foo:'bar'}.")
+ .test(String.class, "'{foo:\\'bar\\'}'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.Class'. Value={foo:'bar'}.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value={foo:'bar'}.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.String[]'. Value={foo:'bar'}.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.Class[]'. Value={foo:'bar'}.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value={foo:'bar'}.")
+ .testMap(String.class, String.class, "{foo:'bar'}")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value={foo:'bar'}.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<Class,Class>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<Class,Class> m2 = new LinkedHashMap<Class,Class>();
+ m2.put(String.class, Integer.class);
+ new ConversionTest(pName, m2)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'int'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(String.class, "'{\\'java.lang.String\\':\\'java.lang.Integer\\'}'")
+ .test(Class.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.Class'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(String[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.String[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'java.lang.Class[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a'. Invalid data conversion from type 'java.util.LinkedHashMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .testMap(String.class, String.class, "{'java.lang.String':'java.lang.Integer'}")
+ .testMap(Class.class, Class.class, "{'java.lang.String':'java.lang.Integer'}")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Namespace
+ //--------------------------------------------------------------------------------
+ final Namespace n = new Namespace("foo","bar");
+ new ConversionTest(pName, n)
+ .test(String.class, "'{name:\\'foo\\',uri:\\'bar\\'}'")
+ .test(Namespace.class, "{name:'foo',uri:'bar'}");
+
+ //--------------------------------------------------------------------------------
+ // Namespace[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Namespace[]{n})
+ .test(String.class, "'[{name:\\'foo\\',uri:\\'bar\\'}]'")
+ .test(Namespace[].class, "[{name:'foo',uri:'bar'}]");
+
+ //--------------------------------------------------------------------------------
+ // Map<Namespace,Namespace>
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new LinkedHashMap<Namespace,Namespace>(){{put(n,n);}})
+ .testMap(Namespace.class, Namespace.class, "{'{name:\\'foo\\',uri:\\'bar\\'}':{name:'foo',uri:'bar'}}")
+ .testMap(String.class, String.class, "{'{name:\\'foo\\',uri:\\'bar\\'}':'{name:\\'foo\\',uri:\\'bar\\'}'}");
+ }
+
+ //====================================================================================================
+ // Conversions on set properties
+ //====================================================================================================
+ @Test
+ @SuppressWarnings({ "serial" })
+ public void testConversionsOnSetProperties() throws Exception {
+ String pName = "A.a.set";
+
+ //--------------------------------------------------------------------------------
+ // boolean
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, true)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=[true].")
+ .test(String.class, "'[true]'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=[true].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=[true].")
+ .test(String[].class, "['true']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=[true].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=[true].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=[true].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=[true].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // int
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, 123)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=[123].")
+ .test(String.class, "'[123]'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=[123].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=[123].")
+ .test(String[].class, "['123']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=[123].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=[123].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=[123].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=[123].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, String.class)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['java.lang.String'].")
+ .test(String.class, "'[\\'java.lang.String\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['java.lang.String'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['java.lang.String'].")
+ .test(String[].class, "['java.lang.String']")
+ .test(Class[].class, "['java.lang.String']")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['java.lang.String'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['java.lang.String'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['java.lang.String'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, "foo")
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['foo'].")
+ .test(String.class, "'[\\'foo\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['foo'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['foo'].")
+ .test(String[].class, "['foo']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=['foo'].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['foo'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['foo'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['foo'].")
+ ;
+ new ConversionTest(pName, Arrays.asList("java.lang.String"))
+ .test(Class[].class, "['java.lang.String']")
+ ;
+ new ConversionTest(pName, Arrays.asList("true"))
+ .test(boolean[].class, "[true]")
+ ;
+ new ConversionTest(pName, Arrays.asList("ONE"))
+ .test(TestEnum[].class, "['ONE']")
+ ;
+ new ConversionTest(pName, Arrays.asList("123"))
+ .test(int[].class, "[123]")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, TestEnum.ONE)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['ONE'].")
+ .test(String.class, "'[\\'ONE\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['ONE'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['ONE'].")
+ .test(String[].class, "['ONE']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=['ONE'].")
+ .test(TestEnum[].class, "['ONE']")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['ONE'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['ONE'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new String[]{"foo","bar"})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['bar','foo'].")
+ .test(String.class, "'[\\'bar\\',\\'foo\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['bar','foo'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['bar','foo'].")
+ .test(String[].class, "['bar','foo']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=['bar','foo'].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['bar','foo'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['bar','foo'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['bar','foo'].")
+ ;
+ new ConversionTest(pName, new String[]{"ONE","TWO"})
+ .test(TestEnum[].class, "['ONE','TWO']")
+ ;
+ new ConversionTest(pName, new String[]{"true","false"})
+ .test(boolean[].class, "[false,true]")
+ ;
+ new ConversionTest(pName, new String[]{"java.lang.String","java.lang.Integer"})
+ .test(Class[].class, "['java.lang.Integer','java.lang.String']")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Class[]{String.class,Integer.class})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['java.lang.Integer','java.lang.String'].")
+ .test(String.class, "'[\\'java.lang.Integer\\',\\'java.lang.String\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['java.lang.Integer','java.lang.String'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['java.lang.Integer','java.lang.String'].")
+ .test(String[].class, "['java.lang.Integer','java.lang.String']")
+ .test(Class[].class, "['java.lang.Integer','java.lang.String']")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=['java.lang.Integer','java.lang.String'].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['java.lang.Integer','java.lang.String'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['java.lang.Integer','java.lang.String'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new TestEnum[]{TestEnum.ONE,TestEnum.TWO})
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=['ONE','TWO'].")
+ .test(String.class, "'[\\'ONE\\',\\'TWO\\']'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=['ONE','TWO'].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=['ONE','TWO'].")
+ .test(String[].class, "['ONE','TWO']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=['ONE','TWO'].")
+ .test(TestEnum[].class, "['ONE','TWO']")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=['ONE','TWO'].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=['ONE','TWO'].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<String,String>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<String,String> m1 = new LinkedHashMap<String,String>();
+ m1.put("foo","bar");
+ new ConversionTest(pName, m1)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=[{foo:'bar'}].")
+ .test(String.class, "'[{foo:\\'bar\\'}]'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=[{foo:'bar'}].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=[{foo:'bar'}].")
+ .test(String[].class, "['{foo:\\'bar\\'}']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=[{foo:'bar'}].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=[{foo:'bar'}].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=[{foo:'bar'}].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=[{foo:'bar'}].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<Class,Class>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<Class,Class> m2 = new LinkedHashMap<Class,Class>();
+ m2.put(String.class, Integer.class);
+ new ConversionTest(pName, m2)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'int'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .test(String.class, "'[{\\'java.lang.String\\':\\'java.lang.Integer\\'}]'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .test(String[].class, "['{\\'java.lang.String\\':\\'java.lang.Integer\\'}']")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.lang.Class[]'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value=[{'java.lang.String':'java.lang.Integer'}].")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Namespace
+ //--------------------------------------------------------------------------------
+ final Namespace n = new Namespace("foo","bar");
+ new ConversionTest(pName, Arrays.asList(n))
+ .test(String.class, "'[{name:\\'foo\\',uri:\\'bar\\'}]'")
+ .test(Namespace.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'org.apache.juneau.xml.Namespace'. Value=[{name:'foo',uri:'bar'}].");
+
+ //--------------------------------------------------------------------------------
+ // Namespace[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Namespace[]{n})
+ .test(String.class, "'[{name:\\'foo\\',uri:\\'bar\\'}]'")
+ .test(Namespace[].class, "[{name:'foo',uri:'bar'}]");
+
+ //--------------------------------------------------------------------------------
+ // Map<Namespace,Namespace>
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new LinkedHashMap<Namespace,Namespace>(){{put(n,n);}})
+ .testMap(Namespace.class, Namespace.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<org.apache.juneau.xml.Namespace,org.apache.juneau.xml.Namespace>'. Value=[{'{name:\\'foo\\',uri:\\'bar\\'}':{name:'foo',uri:'bar'}}].")
+ .testMap(String.class, String.class, "Could not retrieve property store property 'A.a.set'. Invalid data conversion from type 'java.util.concurrent.ConcurrentSkipListSet' to type 'java.util.LinkedHashMap<java.lang.String,java.lang.String>'. Value=[{'{name:\\'foo\\',uri:\\'bar\\'}':{name:'foo',uri:'bar'}}].");
+ }
+
+
+ //====================================================================================================
+ // Conversions on map properties
+ //====================================================================================================
+ @Test
+ @SuppressWarnings({ "serial" })
+ public void testConversionsOnMapProperties() throws Exception {
+ String pName = "A.a.map";
+
+ //--------------------------------------------------------------------------------
+ // boolean
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, true)
+ .test(boolean.class, "Cannot put value true (java.lang.Boolean) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // int
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, 123)
+ .test(int.class, "Cannot put value 123 (java.lang.Integer) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, String.class)
+ .test(Class.class, "Cannot put value 'java.lang.String' (java.lang.Class) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, "foo")
+ .test(String.class, "Cannot put value 'foo' (java.lang.String) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, TestEnum.ONE)
+ .test(TestEnum.class, "Cannot put value 'ONE' (org.apache.juneau.PropertyStoreTest$TestEnum) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // String[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new String[]{"foo","bar"})
+ .test(String[].class, "Cannot put value ['foo','bar'] (java.lang.String[]) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Class[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Class[]{String.class,Integer.class})
+ .test(Class[].class, "Cannot put value ['java.lang.String','java.lang.Integer'] (java.lang.Class[]) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // enum[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new TestEnum[]{TestEnum.ONE,TestEnum.TWO})
+ .test(TestEnum[].class, "Cannot put value ['ONE','TWO'] (org.apache.juneau.PropertyStoreTest$TestEnum[]) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<String,String>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<String,String> m1 = new LinkedHashMap<String,String>();
+ m1.put("foo","bar");
+ new ConversionTest(pName, m1)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'int'. Value={foo:'bar'}.")
+ .test(String.class, "'{foo:\\'bar\\'}'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.Class'. Value={foo:'bar'}.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value={foo:'bar'}.")
+ .test(String[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.String[]'. Value={foo:'bar'}.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.Class[]'. Value={foo:'bar'}.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value={foo:'bar'}.")
+ .testMap(String.class, String.class, "{foo:'bar'}")
+ .testMap(Class.class, Class.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.util.LinkedHashMap<java.lang.Class,java.lang.Class>'. Value={foo:'bar'}.")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<Class,Class>
+ //--------------------------------------------------------------------------------
+ LinkedHashMap<Class,Class> m2 = new LinkedHashMap<Class,Class>();
+ m2.put(String.class, Integer.class);
+ new ConversionTest(pName, m2)
+ .test(boolean.class, "false")
+ .test(int.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'int'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(String.class, "'{\\'java.lang.String\\':\\'java.lang.Integer\\'}'")
+ .test(Class.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.Class'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(TestEnum.class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(String[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.String[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(Class[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'java.lang.Class[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .test(TestEnum[].class, "Could not retrieve property store property 'A.a.map'. Invalid data conversion from type 'java.util.Collections$SynchronizedMap' to type 'org.apache.juneau.PropertyStoreTest$TestEnum[]'. Value={'java.lang.String':'java.lang.Integer'}.")
+ .testMap(String.class, String.class, "{'java.lang.String':'java.lang.Integer'}")
+ .testMap(Class.class, Class.class, "{'java.lang.String':'java.lang.Integer'}")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Namespace
+ //--------------------------------------------------------------------------------
+ final Namespace n = new Namespace("foo","bar");
+ new ConversionTest(pName, Arrays.asList(n))
+ .test(String.class, "Cannot put value [{name:'foo',uri:'bar'}] (java.util.Arrays$ArrayList) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Namespace[]
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new Namespace[]{n})
+ .test(String.class, "Cannot put value [{name:'foo',uri:'bar'}] (org.apache.juneau.xml.Namespace[]) to property 'A.a.map' (MAP).")
+ ;
+
+ //--------------------------------------------------------------------------------
+ // Map<Namespace,Namespace>
+ //--------------------------------------------------------------------------------
+ new ConversionTest(pName, new LinkedHashMap<Namespace,Namespace>(){{put(n,n);}})
+ .testMap(Namespace.class, Namespace.class, "{'{name:\\'foo\\',uri:\\'bar\\'}':{name:'foo',uri:'bar'}}")
+ .testMap(String.class, String.class, "{'{name:\\'foo\\',uri:\\'bar\\'}':'{name:\\'foo\\',uri:\\'bar\\'}'}");
+ }
+
+ public enum TestEnum {
+ ONE,TWO,TREE;
+ }
+
+ //====================================================================================================
+ // testSystemPropertyDefaults()
+ //====================================================================================================
+ @Test
+ public void testSystemPropertyDefaults() {
+ System.setProperty("Foo.f1", "true");
+ System.setProperty("Foo.f2", "123");
+ System.setProperty("Foo.f3", "TWO");
+
+ PropertyStore f = PropertyStore.create();
+
+ assertObjectEquals("true", f.getProperty("Foo.f1", boolean.class, false));
+ assertObjectEquals("123", f.getProperty("Foo.f2", int.class, 0));
+ assertObjectEquals("'TWO'", f.getProperty("Foo.f3", TestEnum.class, TestEnum.ONE));
+
+ f.setProperty("Foo.f1", false);
+ f.setProperty("Foo.f2", 456);
+ f.setProperty("Foo.f3", TestEnum.TREE);
+
+ assertObjectEquals("false", f.getProperty("Foo.f1", boolean.class, false));
+ assertObjectEquals("456", f.getProperty("Foo.f2", int.class, 0));
+ assertObjectEquals("'TREE'", f.getProperty("Foo.f3", TestEnum.class, TestEnum.ONE));
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index a94fcca..ae075e8 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -37,21 +37,29 @@ import org.xml.sax.*;
@SuppressWarnings({"javadoc"})
public class TestUtils {
- private static JsonSerializer js = new JsonSerializer.Simple()
- .setTrimNullProperties(false);
-
- private static JsonSerializer jsSorted = new JsonSerializer.Simple()
- .setSortCollections(true)
- .setSortMaps(true)
- .setTrimNullProperties(false);
-
-
- private static JsonSerializer js2 = new JsonSerializer.Simple()
- .addPojoSwaps(IteratorSwap.class, EnumerationSwap.class);
-
- private static JsonSerializer js3 = new JsonSerializer.Simple()
- .addPojoSwaps(IteratorSwap.class, EnumerationSwap.class)
- .setSortProperties(true);
+ private static JsonSerializer js = new JsonSerializerBuilder()
+ .simple()
+ .trimNullProperties(false)
+ .build();
+
+ private static JsonSerializer jsSorted = new JsonSerializerBuilder()
+ .simple()
+ .sortCollections(true)
+ .sortMaps(true)
+ .trimNullProperties(false)
+ .build();
+
+
+ private static JsonSerializer js2 = new JsonSerializerBuilder()
+ .simple()
+ .pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
+ .build();
+
+ private static JsonSerializer js3 = new JsonSerializerBuilder()
+ .simple()
+ .pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
+ .sortProperties(true)
+ .build();
/**
* Verifies that two objects are equivalent.
@@ -219,7 +227,7 @@ public class TestUtils {
* Test whitespace and generated schema.
*/
public static void validateXml(Object o, XmlSerializer s) throws Exception {
- s = s.clone().setUseWhitespace(true).setEnableNamespaces(true).setAddNamespaceUrisToRoot(true);
+ s = s.builder().ws().ns().addNamespaceUrisToRoot(true).build();
String xml = s.serialize(o);
String xmlSchema = null;
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java b/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
index cff0fcb..3101903 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
@@ -27,131 +27,131 @@ public class VisibilityTest {
//====================================================================================================
@Test
public void testClassDefault() throws Exception {
- JsonSerializer s1 = JsonSerializer.DEFAULT_LAX.clone().setBeansRequireSomeProperties(false);
- JsonSerializer s2 = JsonSerializer.DEFAULT_LAX.clone().setBeansRequireSomeProperties(false).setBeanClassVisibility(PROTECTED);
- JsonSerializer s3 = JsonSerializer.DEFAULT_LAX.clone().setBeansRequireSomeProperties(false).setBeanClassVisibility(Visibility.DEFAULT);
- JsonSerializer s4 = JsonSerializer.DEFAULT_LAX.clone().setBeansRequireSomeProperties(false).setBeanClassVisibility(PRIVATE);
+ JsonSerializerBuilder s1 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false);
+ JsonSerializerBuilder s2 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(PROTECTED);
+ JsonSerializerBuilder s3 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(Visibility.DEFAULT);
+ JsonSerializerBuilder s4 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(PRIVATE);
A1 a1 = A1.create();
String r;
- s1.setBeanFieldVisibility(NONE);
- s2.setBeanFieldVisibility(NONE);
- s3.setBeanFieldVisibility(NONE);
- s4.setBeanFieldVisibility(NONE);
+ s1.beanFieldVisibility(NONE);
+ s2.beanFieldVisibility(NONE);
+ s3.beanFieldVisibility(NONE);
+ s4.beanFieldVisibility(NONE);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f5:5}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f5:5}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f5:5}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f5:5}", r);
- s1.setBeanFieldVisibility(PUBLIC);
- s2.setBeanFieldVisibility(PUBLIC);
- s3.setBeanFieldVisibility(PUBLIC);
- s4.setBeanFieldVisibility(PUBLIC);
+ s1.beanFieldVisibility(PUBLIC);
+ s2.beanFieldVisibility(PUBLIC);
+ s3.beanFieldVisibility(PUBLIC);
+ s4.beanFieldVisibility(PUBLIC);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f5:5,g2:{f1:1,f5:5},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f5:5,g2:{f1:1,f5:5},g3:{f1:1,f5:5},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f5:5,g2:{f1:1,f5:5},g3:{f1:1,f5:5},g4:{f1:1,f5:5},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f5:5,g2:{f1:1,f5:5},g3:{f1:1,f5:5},g4:{f1:1,f5:5},g5:{f1:1,f5:5}}", r);
- s1.setBeanFieldVisibility(PROTECTED);
- s2.setBeanFieldVisibility(PROTECTED);
- s3.setBeanFieldVisibility(PROTECTED);
- s4.setBeanFieldVisibility(PROTECTED);
+ s1.beanFieldVisibility(PROTECTED);
+ s2.beanFieldVisibility(PROTECTED);
+ s3.beanFieldVisibility(PROTECTED);
+ s4.beanFieldVisibility(PROTECTED);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f2:2,f5:5,g2:{f1:1,f2:2,f5:5},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f2:2,f5:5,g2:{f1:1,f2:2,f5:5},g3:{f1:1,f2:2,f5:5},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f2:2,f5:5,g2:{f1:1,f2:2,f5:5},g3:{f1:1,f2:2,f5:5},g4:{f1:1,f2:2,f5:5},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f2:2,f5:5,g2:{f1:1,f2:2,f5:5},g3:{f1:1,f2:2,f5:5},g4:{f1:1,f2:2,f5:5},g5:{f1:1,f2:2,f5:5}}", r);
- s1.setBeanFieldVisibility(Visibility.DEFAULT);
- s2.setBeanFieldVisibility(Visibility.DEFAULT);
- s3.setBeanFieldVisibility(Visibility.DEFAULT);
- s4.setBeanFieldVisibility(Visibility.DEFAULT);
+ s1.beanFieldVisibility(Visibility.DEFAULT);
+ s2.beanFieldVisibility(Visibility.DEFAULT);
+ s3.beanFieldVisibility(Visibility.DEFAULT);
+ s4.beanFieldVisibility(Visibility.DEFAULT);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f5:5,g2:{f1:1,f2:2,f3:3,f5:5},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f5:5,g2:{f1:1,f2:2,f3:3,f5:5},g3:{f1:1,f2:2,f3:3,f5:5},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f5:5,g2:{f1:1,f2:2,f3:3,f5:5},g3:{f1:1,f2:2,f3:3,f5:5},g4:{f1:1,f2:2,f3:3,f5:5},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f5:5,g2:{f1:1,f2:2,f3:3,f5:5},g3:{f1:1,f2:2,f3:3,f5:5},g4:{f1:1,f2:2,f3:3,f5:5},g5:{f1:1,f2:2,f3:3,f5:5}}", r);
- s1.setBeanFieldVisibility(PRIVATE);
- s2.setBeanFieldVisibility(PRIVATE);
- s3.setBeanFieldVisibility(PRIVATE);
- s4.setBeanFieldVisibility(PRIVATE);
+ s1.beanFieldVisibility(PRIVATE);
+ s2.beanFieldVisibility(PRIVATE);
+ s3.beanFieldVisibility(PRIVATE);
+ s4.beanFieldVisibility(PRIVATE);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,g2:{f1:1,f2:2,f3:3,f4:4,f5:5},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,g2:{f1:1,f2:2,f3:3,f4:4,f5:5},g3:{f1:1,f2:2,f3:3,f4:4,f5:5},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,g2:{f1:1,f2:2,f3:3,f4:4,f5:5},g3:{f1:1,f2:2,f3:3,f4:4,f5:5},g4:{f1:1,f2:2,f3:3,f4:4,f5:5},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,g2:{f1:1,f2:2,f3:3,f4:4,f5:5},g3:{f1:1,f2:2,f3:3,f4:4,f5:5},g4:{f1:1,f2:2,f3:3,f4:4,f5:5},g5:{f1:1,f2:2,f3:3,f4:4,f5:5}}", r);
- s1.setMethodVisibility(NONE);
- s2.setMethodVisibility(NONE);
- s3.setMethodVisibility(NONE);
- s4.setMethodVisibility(NONE);
+ s1.methodVisibility(NONE);
+ s2.methodVisibility(NONE);
+ s3.methodVisibility(NONE);
+ s4.methodVisibility(NONE);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,g2:{f1:1,f2:2,f3:3,f4:4},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,g2:{f1:1,f2:2,f3:3,f4:4},g3:{f1:1,f2:2,f3:3,f4:4},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,g2:{f1:1,f2:2,f3:3,f4:4},g3:{f1:1,f2:2,f3:3,f4:4},g4:{f1:1,f2:2,f3:3,f4:4},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,g2:{f1:1,f2:2,f3:3,f4:4},g3:{f1:1,f2:2,f3:3,f4:4},g4:{f1:1,f2:2,f3:3,f4:4},g5:{f1:1,f2:2,f3:3,f4:4}}", r);
- s1.setMethodVisibility(PROTECTED);
- s2.setMethodVisibility(PROTECTED);
- s3.setMethodVisibility(PROTECTED);
- s4.setMethodVisibility(PROTECTED);
+ s1.methodVisibility(PROTECTED);
+ s2.methodVisibility(PROTECTED);
+ s3.methodVisibility(PROTECTED);
+ s4.methodVisibility(PROTECTED);
- r = s1.serialize(a1);
+ r = s1.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6,g2:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g3:'A3',g4:'A4',g5:'A5'}", r);
- r = s2.serialize(a1);
+ r = s2.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6,g2:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g3:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g4:'A4',g5:'A5'}", r);
- r = s3.serialize(a1);
+ r = s3.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6,g2:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g3:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g4:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g5:'A5'}", r);
- r = s4.serialize(a1);
+ r = s4.build().serialize(a1);
assertEquals("{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6,g2:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g3:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g4:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6},g5:{f1:1,f2:2,f3:3,f4:4,f5:5,f6:6}}", r);
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParser.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParser.java b/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParser.java
index 34a3ff9..ed182dd 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParser.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParser.java
@@ -30,7 +30,7 @@ import org.apache.juneau.xml.*;
public class XmlValidatorParser extends XmlParser {
public XmlValidatorParser() {
- super();
+ super(PropertyStore.create());
}
@Override /* Parser */
@@ -66,9 +66,4 @@ public class XmlValidatorParser extends XmlParser {
parser.nextTag();
return parser;
}
-
- @Override /* Lockable */
- public XmlValidatorParser clone() {
- return (XmlValidatorParser)super.clone();
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParserBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParserBuilder.java b/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParserBuilder.java
new file mode 100644
index 0000000..f7ba051
--- /dev/null
+++ b/juneau-core-test/src/test/java/org/apache/juneau/XmlValidatorParserBuilder.java
@@ -0,0 +1,26 @@
+// ***************************************************************************************************************************
+// * 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. *
+// ***************************************************************************************************************************
+package org.apache.juneau;
+
+import org.apache.juneau.xml.*;
+
+public class XmlValidatorParserBuilder extends XmlParserBuilder {
+
+ public XmlValidatorParserBuilder() {
+ super(PropertyStore.create());
+ }
+
+ public XmlValidatorParser build() {
+ return new XmlValidatorParser();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
index cbf7630..d8e2388 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
@@ -24,6 +24,7 @@ import org.apache.juneau.json.*;
import org.apache.juneau.msgpack.*;
import org.apache.juneau.parser.*;
import org.apache.juneau.serializer.*;
+import org.apache.juneau.uon.*;
import org.apache.juneau.urlencoding.*;
import org.apache.juneau.xml.*;
import org.junit.*;
@@ -41,68 +42,68 @@ public class RoundTripAddClassAttrsTest extends RoundTripTest {
return Arrays.asList(new Object[][] {
{ /* 0 */
"JsonSerializer.DEFAULT/JsonParser.DEFAULT",
- new JsonSerializer().setAddBeanTypeProperties(true),
- new JsonParser().setUseInterfaceProxies(false),
+ new JsonSerializerBuilder().addBeanTypeProperties(true),
+ new JsonParserBuilder().useInterfaceProxies(false),
0
},
{ /* 1 */
"JsonSerializer.DEFAULT_LAX/JsonParser.DEFAULT",
- new JsonSerializer.Simple().setAddBeanTypeProperties(true),
- new JsonParser().setUseInterfaceProxies(false),
+ new JsonSerializerBuilder().simple().addBeanTypeProperties(true),
+ new JsonParserBuilder().useInterfaceProxies(false),
0
},
{ /* 2 */
"JsonSerializer.DEFAULT_SQ/JsonParser.DEFAULT",
- new JsonSerializer.Simple().setAddBeanTypeProperties(true),
- new JsonParser().setUseInterfaceProxies(false),
+ new JsonSerializerBuilder().simple().addBeanTypeProperties(true),
+ new JsonParserBuilder().useInterfaceProxies(false),
0
},
{ /* 3 */
"XmlSerializer.DEFAULT/XmlParser.DEFAULT",
- new XmlSerializer().setAddBeanTypeProperties(true),
- new XmlParser().setUseInterfaceProxies(false),
+ new XmlSerializerBuilder().addBeanTypeProperties(true),
+ new XmlParserBuilder().useInterfaceProxies(false),
CHECK_XML_WHITESPACE | VALIDATE_XML
},
{ /* 4 */
"HtmlSerializer.DEFAULT/HtmlParser.DEFAULT",
- new HtmlSerializer().setAddBeanTypeProperties(true),
- new HtmlParser().setUseInterfaceProxies(false),
+ new HtmlSerializerBuilder().addBeanTypeProperties(true),
+ new HtmlParserBuilder().useInterfaceProxies(false),
CHECK_XML_WHITESPACE
},
{ /* 5 */
"UonSerializer.DEFAULT_ENCODING/UonParser.DEFAULT_DECODING",
- new UonSerializer.Encoding().setAddBeanTypeProperties(true),
- new UonParser.Decoding().setUseInterfaceProxies(false),
+ new UonSerializerBuilder().encoding().addBeanTypeProperties(true),
+ new UonParserBuilder().decoding().useInterfaceProxies(false),
0
},
{ /* 6 */
"UonSerializer.DEFAULT/UonParser.DEFAULT",
- new UonSerializer().setAddBeanTypeProperties(true),
- new UonParser().setUseInterfaceProxies(false),
+ new UonSerializerBuilder().addBeanTypeProperties(true),
+ new UonParserBuilder().useInterfaceProxies(false),
0
},
{ /* 7 */
"UrlEncodingSerializer.DEFAULT/UrlEncodingParser.DEFAULT",
- new UrlEncodingSerializer().setAddBeanTypeProperties(true),
- new UrlEncodingParser().setUseInterfaceProxies(false),
+ new UrlEncodingSerializerBuilder().addBeanTypeProperties(true),
+ new UrlEncodingParserBuilder().useInterfaceProxies(false),
0
},
{ /* 8 */
"RdfSerializer.Xml/RdfParser.Xml",
- new RdfSerializer.Xml().setAddBeanTypeProperties(true),
- new RdfParser.Xml().setUseInterfaceProxies(false),
+ new RdfSerializerBuilder().addBeanTypeProperties(true),
+ new RdfParserBuilder().useInterfaceProxies(false),
0
},
{ /* 9 */
"MsgPackSerializer.DEFAULT/MsgPackParser.DEFAULT",
- new MsgPackSerializer().setAddBeanTypeProperties(true),
- new MsgPackParser().setUseInterfaceProxies(false),
+ new MsgPackSerializerBuilder().addBeanTypeProperties(true),
+ new MsgPackParserBuilder().useInterfaceProxies(false),
0
}
});
}
- public RoundTripAddClassAttrsTest(String label, Serializer s, Parser p, int flags) throws Exception {
+ public RoundTripAddClassAttrsTest(String label, SerializerBuilder s, ParserBuilder p, int flags) throws Exception {
super(label, s, p, flags);
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java
index 0c4eef6..dfe8dd6 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java
@@ -27,7 +27,7 @@ import org.junit.*;
@SuppressWarnings("javadoc")
public class RoundTripBeanInheritanceTest extends RoundTripTest {
- public RoundTripBeanInheritanceTest(String label, Serializer s, Parser p, int flags) throws Exception {
+ public RoundTripBeanInheritanceTest(String label, SerializerBuilder s, ParserBuilder p, int flags) throws Exception {
super(label, s, p, flags);
}