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 2016/08/09 17:15:49 UTC
[28/44] incubator-juneau git commit: Rename CT_* testcases.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_ObjectMap.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ObjectMap.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_ObjectMap.java
deleted file mode 100755
index f66d850..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ObjectMap.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/***************************************************************************************************************************
- * 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 org.apache.juneau.utils.*;
-import org.junit.*;
-
-public class CT_ObjectMap {
-
- //====================================================================================================
- // testBasic
- //====================================================================================================
- @Test
- public void testBasic() throws Exception {
- String in;
-
- in = "{A:'asdf'}";
- checkStep(1, in, new ObjectMap(in).getString("A"), "asdf");
-
- in = "{A:{B:'asdf'}}";
- checkStep(2, in, getDeepString(new ObjectMap(in), "A/B"), "asdf");
- checkStep(3, in, new ObjectMap(in).getString("A"), "{B:'asdf'}");
-
- in = "{A:{B:'asdf'+\"asdf\"}}";
- checkStep(4, in, getDeepString(new ObjectMap(in), "A/B"), "asdfasdf");
- checkStep(5, in, new ObjectMap(in).getString("A"), "{B:'asdfasdf'}");
-
- in = "{A:{B:'asdf' + \n\t \"asdf\"}}";
- checkStep(6, in, getDeepString(new ObjectMap(in), "A/B"), "asdfasdf");
- checkStep(7, in, new ObjectMap(in).getString("A"), "{B:'asdfasdf'}");
-
- in = "{A:{B:'asdf\"asdf', C:\"asdf'asdf\", D : \"asdf\\\"asdf\", E: 'asdf\\\'asdf', F:\"asdf\\\'asdf\", G:'asdf\\\"asdf'}}";
- checkStep(8, in, getDeepString(new ObjectMap(in), "A/B"), "asdf\"asdf");
- checkStep(9, in, getDeepString(new ObjectMap(in), "A/C"), "asdf'asdf");
- checkStep(10, in, getDeepString(new ObjectMap(in), "A/D"), "asdf\"asdf");
- checkStep(11, in, getDeepString(new ObjectMap(in), "A/E"), "asdf'asdf");
- checkStep(12, in, getDeepString(new ObjectMap(in), "A/F"), "asdf'asdf");
- checkStep(13, in, getDeepString(new ObjectMap(in), "A/G"), "asdf\"asdf");
-
- in = "{A:123, B: 123}";
- checkStep(16, in, new Integer(new ObjectMap(in).getInt("A")).toString(), "123");
- checkStep(17, in, new Integer(new ObjectMap(in).getInt("B")).toString(), "123");
-
- in = "{A:true, B: true, C:false, D: false}";
- checkStep(18, in, new Boolean(new ObjectMap(in).getBoolean("A")).toString(), "true");
- checkStep(19, in, new Boolean(new ObjectMap(in).getBoolean("B")).toString(), "true");
- checkStep(20, in, new Boolean(new ObjectMap(in).getBoolean("C")).toString(), "false");
- checkStep(21, in, new Boolean(new ObjectMap(in).getBoolean("D")).toString(), "false");
-
- in = "{'AAA':{\"BBB\":\"CCC\",'DDD':false}}";
- checkStep(31, in, getDeepString(new ObjectMap(in), "AAA/BBB"), "CCC");
- checkStep(32, in, getDeepBoolean(new ObjectMap(in), "AAA/DDD").toString(), "false");
-
- in = " \n\n\t { 'AAA' : { \"BBB\" : \"CCC\" , 'DDD' : false } } \n\t";
- checkStep(33, in, getDeepString(new ObjectMap(in), "AAA/BBB"), "CCC");
- checkStep(34, in, getDeepBoolean(new ObjectMap(in), "AAA/DDD").toString(), "false");
-
- in = "/*x*/{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(100, in, new ObjectMap(in).getString("A"), "B");
- in = "{/*x*/A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(101, in, new ObjectMap(in).getString("A"), "B");
- in = "{A/*x*/:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(102, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:/*x*/'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(103, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:'/*x*/B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(104, in, new ObjectMap(in).getString("A"), "/*x*/B");
- in = "{A:'B/*x*/','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(105, in, new ObjectMap(in).getString("A"), "B/*x*/");
- in = "{A:'B'/*x*/,'C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(106, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:'B',/*x*/'C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(107, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':/*x*/1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(108, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':1/*x*/,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(109, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':1,/*x*/\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(110, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"/*x*/E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(111, in, new ObjectMap(in).getObjectList("/*x*/E").getString(0), "1");
- in = "{A:'B','C':1,\"E/*x*/\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(112, in, new ObjectMap(in).getObjectList("E/*x*/").getString(0), "1");
- in = "{A:'B','C':1,\"E\"/*x*/:[1,2,3],G:['g1','g2','g3']}";
- checkStep(113, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":/*x*/[1,2,3],G:['g1','g2','g3']}";
- checkStep(114, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[/*x*/1,2,3],G:['g1','g2','g3']}";
- checkStep(115, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[1/*x*/,2,3],G:['g1','g2','g3']}";
- checkStep(116, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[1,/*x*/2,3],G:['g1','g2','g3']}";
- checkStep(117, in, new ObjectMap(in).getObjectList("E").getString(1), "2");
- in = "{A:'B','C':1,\"E\":[1,2/*x*/,3],G:['g1','g2','g3']}";
- checkStep(118, in, new ObjectMap(in).getObjectList("E").getString(1), "2");
- in = "{A:'B','C':1,\"E\":[1,2,/*x*/3],G:['g1','g2','g3']}";
- checkStep(119, in, new ObjectMap(in).getObjectList("E").getString(2), "3");
- in = "{A:'B','C':1,\"E\":[1,2,3]/*x*/,G:['g1','g2','g3']}";
- checkStep(120, in, new ObjectMap(in).getObjectList("E").getString(2), "3");
- in = "{A:'B','C':1,\"E\":[1,2,3],/*x*/G:['g1','g2','g3']}";
- checkStep(121, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:[/*x*/'g1','g2','g3']}";
- checkStep(122, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['/*x*/g1','g2','g3']}";
- checkStep(123, in, new ObjectMap(in).getObjectList("G").getString(0), "/*x*/g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1'/*x*/,'g2','g3']}";
- checkStep(124, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1',/*x*/'g2','g3']}";
- checkStep(125, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2'/*x*/,'g3']}";
- checkStep(126, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2',/*x*/'g3']}";
- checkStep(127, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3'/*x*/]}";
- checkStep(128, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']/*x*/}";
- checkStep(129, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}/*x*/";
- checkStep(130, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
-
- in = "/*\tx\t*///\tx\t\n\t/*\tx\t*/{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(201, in, new ObjectMap(in).getString("A"), "B");
- in = "{/*\tx\t*///\tx\t\n\t/*\tx\t*/A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(202, in, new ObjectMap(in).getString("A"), "B");
- in = "{A/*\tx\t*///\tx\t\n\t/*\tx\t*/:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(203, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:/*\tx\t*///\tx\t\n\t/*\tx\t*/'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(204, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:'/*\tx\t*///\tx\t\n\t/*\tx\t*/B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(205, in, new ObjectMap(in).getString("A"), "/*\tx\t*///\tx\t\n\t/*\tx\t*/B");
- in = "{A:'B/*\tx\t*///\tx\t\n\t/*\tx\t*/','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(206, in, new ObjectMap(in).getString("A"), "B/*\tx\t*///\tx\t\n\t/*\tx\t*/");
- in = "{A:'B'/*\tx\t*///\tx\t\n\t/*\tx\t*/,'C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(207, in, new ObjectMap(in).getString("A"), "B");
- in = "{A:'B',/*\tx\t*///\tx\t\n\t/*\tx\t*/'C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(208, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':/*\tx\t*///\tx\t\n\t/*\tx\t*/1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(209, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':1/*\tx\t*///\tx\t\n\t/*\tx\t*/,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(210, in, new ObjectMap(in).getString("C"), "1");
- in = "{A:'B','C':1,/*\tx\t*///\tx\t\n\t/*\tx\t*/\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(211, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"/*\tx\t*///\tx\t\n\t/*\tx\t*/E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(212, in, new ObjectMap(in).getObjectList("/*\tx\t*///\tx\t\n\t/*\tx\t*/E").getString(0), "1");
- in = "{A:'B','C':1,\"E/*\tx\t*///\tx\t\n\t/*\tx\t*/\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(213, in, new ObjectMap(in).getObjectList("E/*\tx\t*///\tx\t\n\t/*\tx\t*/").getString(0), "1");
- in = "{A:'B','C':1,\"E\"/*\tx\t*///\tx\t\n\t/*\tx\t*/:[1,2,3],G:['g1','g2','g3']}";
- checkStep(214, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":/*\tx\t*///\tx\t\n\t/*\tx\t*/[1,2,3],G:['g1','g2','g3']}";
- checkStep(215, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[/*\tx\t*///\tx\t\n\t/*\tx\t*/1,2,3],G:['g1','g2','g3']}";
- checkStep(216, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[1/*\tx\t*///\tx\t\n\t/*\tx\t*/,2,3],G:['g1','g2','g3']}";
- checkStep(217, in, new ObjectMap(in).getObjectList("E").getString(0), "1");
- in = "{A:'B','C':1,\"E\":[1,/*\tx\t*///\tx\t\n\t/*\tx\t*/2,3],G:['g1','g2','g3']}";
- checkStep(218, in, new ObjectMap(in).getObjectList("E").getString(1), "2");
- in = "{A:'B','C':1,\"E\":[1,2/*\tx\t*///\tx\t\n\t/*\tx\t*/,3],G:['g1','g2','g3']}";
- checkStep(219, in, new ObjectMap(in).getObjectList("E").getString(1), "2");
- in = "{A:'B','C':1,\"E\":[1,2,/*\tx\t*///\tx\t\n\t/*\tx\t*/3],G:['g1','g2','g3']}";
- checkStep(220, in, new ObjectMap(in).getObjectList("E").getString(2), "3");
- in = "{A:'B','C':1,\"E\":[1,2,3]/*\tx\t*///\tx\t\n\t/*\tx\t*/,G:['g1','g2','g3']}";
- checkStep(221, in, new ObjectMap(in).getObjectList("E").getString(2), "3");
- in = "{A:'B','C':1,\"E\":[1,2,3],/*\tx\t*///\tx\t\n\t/*\tx\t*/G:['g1','g2','g3']}";
- checkStep(222, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:[/*\tx\t*///\tx\t\n\t/*\tx\t*/'g1','g2','g3']}";
- checkStep(223, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['/*\tx\t*///\tx\t\n\t/*\tx\t*/g1','g2','g3']}";
- checkStep(224, in, new ObjectMap(in).getObjectList("G").getString(0), "/*\tx\t*///\tx\t\n\t/*\tx\t*/g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1'/*\tx\t*///\tx\t\n\t/*\tx\t*/,'g2','g3']}";
- checkStep(225, in, new ObjectMap(in).getObjectList("G").getString(0), "g1");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1',/*\tx\t*///\tx\t\n\t/*\tx\t*/'g2','g3']}";
- checkStep(226, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2'/*\tx\t*///\tx\t\n\t/*\tx\t*/,'g3']}";
- checkStep(227, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2',/*\tx\t*///\tx\t\n\t/*\tx\t*/'g3']}";
- checkStep(228, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3'/*\tx\t*///\tx\t\n\t/*\tx\t*/]}";
- checkStep(229, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']/*\tx\t*///\tx\t\n\t/*\tx\t*/}";
- checkStep(230, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}/*\tx\t*///\tx\t\n\t/*\tx\t*/";
- checkStep(231, in, new ObjectMap(in).getObjectList("G").getString(2), "g3");
-
- in = "{ /* x */ // x \n /* x */ A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(240, in, new ObjectMap(in).getString("A"), "B");
-
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(301, in, new ObjectMap(in).getString("A", "default"), "B");
- in = "{/*A:'B',*/'C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(302, in, new ObjectMap(in).getString("A", "default"), "default");
- in = "{A:'B',/*'C':1,*/\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(303, in, new ObjectMap(in).getString("C", "default"), "default");
- in = "{A:'B','C':1,/*\"E\":[1,2,3],*/G:['g1','g2','g3']}";
- checkStep(304, in, new ObjectMap(in).getString("E", "default"), "default");
- in = "{A:'B','C':1,\"E\":[/*1,*/2,3],G:['g1','g2','g3']}";
- checkStep(305, in, new ObjectMap(in).getObjectList("E").getString(0), "2");
- in = "{A:'B','C':1,\"E\":[1,/*2,*/3],G:['g1','g2','g3']}";
- checkStep(306, in, new ObjectMap(in).getObjectList("E").getString(1), "3");
- in = "{A:'B','C':1,\"E\":[1,2/*,3*/],G:['g1','g2','g3']}";
- checkStep(307, in, new ObjectMap(in).getObjectList("E").getString(1), "2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:[/*'g1',*/'g2','g3']}";
- checkStep(308, in, new ObjectMap(in).getObjectList("G").getString(0), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1'/*,'g2'*/,'g3']}";
- checkStep(309, in, new ObjectMap(in).getObjectList("G").getString(1), "g3");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2'/*,'g3'*/]}";
- checkStep(310, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
- in = "{A:'B','C':1,\"E\":[1,2,3],G:['g1','g2','g3']}";
- checkStep(310, in, new ObjectMap(in).getObjectList("G").getString(1), "g2");
-
- // Check keys that contain array indexes
- in = "{A:{B:[{C:'c0'},{C:'c1'},{C:'c2'}]}}";
- checkStep(401, in, getDeepString(new ObjectMap(in), "A/B/0/C"), "c0");
- checkStep(402, in, getDeepString(new ObjectMap(in), "A/B/1/C"), "c1");
- checkStep(403, in, getDeepString(new ObjectMap(in), "A/B/2/C"), "c2");
-
- // Check extended unicode characters.
- in = "{'\U00024b62\U00024b62':'\U00024b62\U00024b62'}";
- checkStep(1, in, new ObjectMap(in).getString("\U00024b62\U00024b62"), "\U00024b62\U00024b62");
- }
-
- private String getDeepString(ObjectMap m, String url) {
- PojoRest r = new PojoRest(m);
- return (String)r.get(url);
- }
-
- private Boolean getDeepBoolean(ObjectMap m, String url) {
- PojoRest r = new PojoRest(m);
- return (Boolean)r.get(url);
- }
-
- private void checkStep(int step, String input, String output, String expectedValue) {
- if (!output.equals(expectedValue)) {
- String msg = "Step #" + step + " failed: [" + input + "]->[" + output + "]...Expected value=[" + expectedValue + "]";
- fail(msg);
- }
- }
-
- //====================================================================================================
- // testComparison
- //====================================================================================================
- @Test
- public void testComparison() throws Exception {
- ObjectMap m1 = new ObjectMap("{ firstName:'John', lastName:'Smith', age:123, isDeceased:false }");
- ObjectMap m2 = new ObjectMap("{ age:123, isDeceased:false, lastName:'Smith', firstName:'John' }");
-
- assertTrue(m1.equals(m2));
- }
-
- //====================================================================================================
- // testParent
- //====================================================================================================
- @Test
- public void testParent() throws Exception {
- ObjectMap m1 = new ObjectMap("{a:1}");
- ObjectMap m2 = new ObjectMap("{b:2}").setInner(m1);
-
- assertEquals(new Integer(1), m2.getInt("a"));
- }
-
- //====================================================================================================
- // testUpdatability
- //====================================================================================================
- @Test
- public void testUpdatability() throws Exception {
- ObjectMap m = new ObjectMap("{a:[{b:'c'}]}");
- ObjectList l = m.getObjectList("a");
- ObjectMap m2 = l.getObjectMap(0);
- m2.put("b", "x");
- assertObjectEquals("{a:[{b:'x'}]}", m);
-
- m = new ObjectMap("{a:[{b:'c'}]}");
- for (ObjectMap m3 : m.getObjectList("a").elements(ObjectMap.class))
- m3.put("b", "y");
-
- assertObjectEquals("{a:[{b:'y'}]}", m);
- }
-
- //====================================================================================================
- // testAtMethods
- //====================================================================================================
- @Test
- public void testAtMethods() throws Exception {
- ObjectMap m = new ObjectMap("{a:[{b:'c'}]}");
- String r;
-
- r = m.getAt(String.class, "a/0/b");
- assertEquals("c", r);
-
- m.putAt("a/0/b", "d");
- r = m.getAt(String.class, "a/0/b");
- assertEquals("d", r);
-
- m.postAt("a", "e");
- r = m.getAt(String.class, "a/1");
- assertEquals("e", r);
-
- m.deleteAt("a/1");
- assertEquals("{a:[{b:'d'}]}", m.toString());
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserGenerics.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserGenerics.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserGenerics.java
deleted file mode 100755
index 11f23b1..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserGenerics.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/***************************************************************************************************************************
- * 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.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.junit.*;
-
-@SuppressWarnings("serial")
-public class CT_ParserGenerics {
-
- //====================================================================================================
- // Test generic maps
- //====================================================================================================
- @Test
- public void testMap() throws Exception {
- ReaderParser p = JsonParser.DEFAULT;
-
- String t = "{foo:{bar:'baz'}}";
- Map<String,TreeMap<String,String>> r1 = p.parse(t, TestMap1.class);
- assertEquals(TestMap1.class, r1.getClass());
- assertEquals(TreeMap.class, r1.get("foo").getClass());
-
- t = "{foo:[1,2,3]}";
- Map<String,LinkedList<Integer>> r2 = p.parse(t, TestMap2.class);
- assertEquals(TestMap2.class, r2.getClass());
- assertEquals(LinkedList.class, r2.get("foo").getClass());
- assertEquals(Integer.class, r2.get("foo").get(0).getClass());
- }
-
- public static class TestMap1 extends LinkedHashMap<String,TreeMap<String,String>> {}
- public static class TestMap2 extends LinkedHashMap<String,LinkedList<Integer>> {}
-
- //====================================================================================================
- // Test generic maps
- //====================================================================================================
- @Test
- public void testCollection() throws Exception {
- ReaderParser p = JsonParser.DEFAULT;
-
- String t = "[{foo:{bar:'baz'}}]";
- List<TestMap1> r1 = p.parse(t, TestCollection1.class);
- assertEquals(TestCollection1.class, r1.getClass());
- assertEquals(TestMap1.class, r1.get(0).getClass());
- assertEquals(TreeMap.class, r1.get(0).get("foo").getClass());
-
- t = "[{foo:[1,2,3]}]";
- List<TestMap2> r2 = p.parse(t, TestCollection2.class);
- assertEquals(TestCollection2.class, r2.getClass());
- assertEquals(TestMap2.class, r2.get(0).getClass());
- assertEquals(LinkedList.class, r2.get(0).get("foo").getClass());
- assertEquals(Integer.class, r2.get(0).get("foo").get(0).getClass());
- }
-
- public static class TestCollection1 extends LinkedList<TestMap1> {}
- public static class TestCollection2 extends LinkedList<TestMap2> {}
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserReader.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserReader.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserReader.java
deleted file mode 100755
index af23b4a..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ParserReader.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/***************************************************************************************************************************
- * 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.junit.Assert.*;
-
-import java.io.*;
-
-import org.apache.juneau.parser.*;
-import org.junit.*;
-
-public class CT_ParserReader {
-
- //====================================================================================================
- // testBasic
- //====================================================================================================
- @Test
- public void testBasic() throws Exception {
- String t = "01234567890123456789012345678901234567890123456789";
-
- // Min buff size is 20.
- ParserReader pr = new ParserReader(new StringReader(t));
- String r = read(pr);
- assertEquals(t, r);
- pr.close();
-
- pr = new ParserReader(new StringReader(t));
- pr.read();
- pr.unread();
- r = read(pr);
- assertEquals(t, r);
- pr.close();
-
- pr = new ParserReader(new StringReader(t));
- assertEquals('0', (char)pr.peek());
- assertEquals('0', (char)pr.peek());
- r = read(pr);
- assertEquals(t, r);
-
- pr = new ParserReader(new StringReader(t));
- pr.read();
- pr.unread();
- try {
- pr.unread();
- fail("Exception expected");
- } catch (IOException e) {
- // Good
- }
- }
-
- //====================================================================================================
- // testMarking
- //====================================================================================================
- @Test
- public void testMarking() throws Exception {
- String t = "a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789";
- String r = null;
-
- // Min buff size is 20.
- ParserReader pr = new ParserReader(t);
- read(pr, 5);
- pr.mark();
- read(pr, 10);
- r = pr.getMarked();
- assertEquals("56789b1234", r);
- r = read(pr);
- assertEquals("56789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789", r);
-
- // Force doubling of buffer size
- pr = new ParserReader(t);
- read(pr, 5);
- pr.mark();
- read(pr, 20);
- r = pr.getMarked();
- assertEquals("56789b123456789c1234", r);
- r = read(pr);
- assertEquals("56789d123456789e123456789f123456789g123456789h123456789i123456789j123456789", r);
- }
-
- //====================================================================================================
- // testReadStrings
- //====================================================================================================
- @Test
- public void testReadStrings() throws Exception {
- String t = "a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789";
-
- // Min buff size is 20.
- ParserReader pr = new ParserReader(t);
- assertEquals("a123456789", pr.read(10));
- pr.mark();
- assertEquals("b123456789c123456789", pr.read(20));
- assertEquals("d123456789e123456789f123456789", pr.read(30));
- assertEquals("123456789c123456789d123456789e123456789f12345678", pr.getMarked(1, -1));
- assertEquals("g123456789h123456789i123456789j123456789", pr.read(100));
- assertEquals("", pr.read(100));
- pr.close();
- }
-
- //====================================================================================================
- // testReplace
- //====================================================================================================
- @Test
- public void testReplace() throws Exception {
- String t = "a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789";
-
- // Min buff size is 20.
- ParserReader pr = new ParserReader(t);
- assertEquals("a123456789", pr.read(10));
- pr.mark();
- assertEquals("b123456789", pr.read(10));
- pr.replace('x');
- assertEquals("c123456789", pr.read(10));
- assertEquals("b12345678xc123456789", pr.getMarked());
- pr.close();
-
- pr = new ParserReader(t);
- assertEquals("a123456789", pr.read(10));
- pr.mark();
- assertEquals("b123456789", pr.read(10));
- pr.replace('x', 5);
- assertEquals("c123456789", pr.read(10));
- assertEquals("b1234xc123456789", pr.getMarked());
- pr.close();
- }
-
- //====================================================================================================
- // testDelete
- //====================================================================================================
- @Test
- public void testDelete() throws Exception {
- String t = "a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789";
-
- // Min buff size is 20.
- ParserReader pr = new ParserReader(t);
- assertEquals("a123456789", pr.read(10));
- pr.mark();
- assertEquals("b123456789", pr.read(10));
- pr.delete();
- assertEquals("c123456789", pr.read(10));
- assertEquals("b12345678c123456789", pr.getMarked());
- pr.close();
-
- pr = new ParserReader(t);
- assertEquals("a123456789", pr.read(10));
- pr.mark();
- assertEquals("b123456789", pr.read(10));
- pr.delete(5);
- assertEquals("c123456789", pr.read(10));
- assertEquals("b1234c123456789", pr.getMarked());
- pr.close();
- }
-
- //====================================================================================================
- // Utility methods
- //====================================================================================================
-
- private String read(ParserReader r) throws IOException {
- return read(r, Integer.MAX_VALUE);
- }
-
- private String read(ParserReader r, int length) throws IOException {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < length; i++) {
- int c = r.read();
- if (c == -1)
- return sb.toString();
- sb.append((char)c);
- }
- return sb.toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_PojoTransform.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_PojoTransform.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_PojoTransform.java
deleted file mode 100755
index 3f55c22..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_PojoTransform.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/***************************************************************************************************************************
- * 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.junit.Assert.*;
-
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
-import org.junit.*;
-
-public class CT_PojoTransform {
-
- //====================================================================================================
- // Test same type
- // If you define a PojoTransform<String,String> filter, then it should be invoked on all strings.
- //====================================================================================================
- @Test
- public void testSameType() throws Exception {
- JsonSerializer s = JsonSerializer.DEFAULT_LAX.clone().addTransforms(ATransform.class);
- JsonParser p = JsonParser.DEFAULT.clone().addTransforms(ATransform.class);
- String r;
-
- r = s.serialize("foobar");
- assertEquals("'xfoobarx'", r);
- r = p.parse(r, String.class);
- assertEquals("foobar", r);
-
- ObjectMap m = new ObjectMap("{foo:'bar'}");
- r = s.serialize(m);
- assertEquals("{xfoox:'xbarx'}", r);
- }
-
- public static class ATransform extends PojoTransform<String,String> {
- @Override
- public String transform(String o) throws SerializeException {
- return "x" + o + "x";
- }
-
- @Override
- public String normalize(String f, ClassMeta<?> hint) throws ParseException {
- return f.substring(1, f.length()-1);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_PropertyNamerDashedLC.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_PropertyNamerDashedLC.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_PropertyNamerDashedLC.java
deleted file mode 100755
index a0720a6..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_PropertyNamerDashedLC.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************************************
- * 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.junit.Assert.*;
-
-import org.junit.*;
-
-public class CT_PropertyNamerDashedLC {
-
- //====================================================================================================
- // test
- //====================================================================================================
- @Test
- public void test() throws Exception {
- PropertyNamer n = new PropertyNamerDashedLC();
-
- assertEquals("abc", n.getPropertyName("ABC"));
- assertEquals("abc", n.getPropertyName("abc"));
- assertEquals("foo-bar-baz", n.getPropertyName("FooBarBaz"));
- assertEquals("foo-bar-baz", n.getPropertyName("FooBarBAZ"));
- assertEquals("foo-bar-baz", n.getPropertyName("fooBarBAZ"));
- assertEquals("", n.getPropertyName(""));
- assertNull(n.getPropertyName(null));
- assertEquals("a", n.getPropertyName("A"));
- assertEquals("a", n.getPropertyName("A"));
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_Visibility.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_Visibility.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_Visibility.java
deleted file mode 100755
index d31fc62..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_Visibility.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/***************************************************************************************************************************
- * 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.BeanContext.*;
-import static org.apache.juneau.Visibility.*;
-import static org.junit.Assert.*;
-
-import org.apache.juneau.a.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_Visibility {
-
- //====================================================================================================
- // testVisibility
- //====================================================================================================
- @Test
- public void testClassDefault() throws Exception {
- JsonSerializer s1 = JsonSerializer.DEFAULT_LAX.clone().setProperty(BEAN_beansRequireSomeProperties, "false");
- JsonSerializer s2 = JsonSerializer.DEFAULT_LAX.clone().setProperty(BEAN_beansRequireSomeProperties, "false").setProperty(BEAN_beanClassVisibility, PROTECTED);
- JsonSerializer s3 = JsonSerializer.DEFAULT_LAX.clone().setProperty(BEAN_beansRequireSomeProperties, "false").setProperty(BEAN_beanClassVisibility, Visibility.DEFAULT);
- JsonSerializer s4 = JsonSerializer.DEFAULT_LAX.clone().setProperty(BEAN_beansRequireSomeProperties, "false").setProperty(BEAN_beanClassVisibility, PRIVATE);
-
- A1 a1 = A1.create();
- String r;
-
- s1.setProperty(BEAN_beanFieldVisibility, NONE);
- s2.setProperty(BEAN_beanFieldVisibility, NONE);
- s3.setProperty(BEAN_beanFieldVisibility, NONE);
- s4.setProperty(BEAN_beanFieldVisibility, NONE);
-
- r = s1.serialize(a1);
- assertEquals("{f5:5}", r);
-
- r = s2.serialize(a1);
- assertEquals("{f5:5}", r);
-
- r = s3.serialize(a1);
- assertEquals("{f5:5}", r);
-
- r = s4.serialize(a1);
- assertEquals("{f5:5}", r);
-
- s1.setProperty(BEAN_beanFieldVisibility, PUBLIC);
- s2.setProperty(BEAN_beanFieldVisibility, PUBLIC);
- s3.setProperty(BEAN_beanFieldVisibility, PUBLIC);
- s4.setProperty(BEAN_beanFieldVisibility, PUBLIC);
-
- r = s1.serialize(a1);
- assertEquals("{f1:1,f5:5,g2:{f1:1,f5:5},g3:'A3',g4:'A4',g5:'A5'}", r);
-
- r = s2.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);
- 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);
- 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.setProperty(BEAN_beanFieldVisibility, PROTECTED);
- s2.setProperty(BEAN_beanFieldVisibility, PROTECTED);
- s3.setProperty(BEAN_beanFieldVisibility, PROTECTED);
- s4.setProperty(BEAN_beanFieldVisibility, PROTECTED);
-
- r = s1.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);
- 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);
- 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);
- 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.setProperty(BEAN_beanFieldVisibility, Visibility.DEFAULT);
- s2.setProperty(BEAN_beanFieldVisibility, Visibility.DEFAULT);
- s3.setProperty(BEAN_beanFieldVisibility, Visibility.DEFAULT);
- s4.setProperty(BEAN_beanFieldVisibility, Visibility.DEFAULT);
-
- r = s1.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);
- 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);
- 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);
- 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.setProperty(BEAN_beanFieldVisibility, PRIVATE);
- s2.setProperty(BEAN_beanFieldVisibility, PRIVATE);
- s3.setProperty(BEAN_beanFieldVisibility, PRIVATE);
- s4.setProperty(BEAN_beanFieldVisibility, PRIVATE);
-
- r = s1.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);
- 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);
- 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);
- 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.setProperty(BEAN_methodVisibility, NONE);
- s2.setProperty(BEAN_methodVisibility, NONE);
- s3.setProperty(BEAN_methodVisibility, NONE);
- s4.setProperty(BEAN_methodVisibility, NONE);
-
- r = s1.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);
- 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);
- 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);
- 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.setProperty(BEAN_methodVisibility, PROTECTED);
- s2.setProperty(BEAN_methodVisibility, PROTECTED);
- s3.setProperty(BEAN_methodVisibility, PROTECTED);
- s4.setProperty(BEAN_methodVisibility, PROTECTED);
-
- r = s1.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);
- 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);
- 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);
- 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);
-
- }
-
- static class A {
- public int f1;
- public A(){}
-
- static A create() {
- A x = new A();
- x.f1 = 1;
- return x;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/ClassMetaTest.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/ClassMetaTest.java b/org.apache.juneau/src/test/java/org/apache/juneau/ClassMetaTest.java
new file mode 100755
index 0000000..cbd0eae
--- /dev/null
+++ b/org.apache.juneau/src/test/java/org/apache/juneau/ClassMetaTest.java
@@ -0,0 +1,281 @@
+/***************************************************************************************************************************
+ * 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.junit.Assert.*;
+
+import java.util.*;
+
+import org.apache.juneau.transform.*;
+import org.junit.*;
+
+@SuppressWarnings({"rawtypes","serial","hiding"})
+public class ClassMetaTest {
+
+ BeanContext bc = BeanContext.DEFAULT;
+
+ //====================================================================================================
+ // Map<String,String> field
+ //====================================================================================================
+ public Map<String,String> fa;
+
+ @Test
+ public void testMap() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("fa").getGenericType());
+ assertEquals("java.util.Map<java.lang.String,java.lang.String>", t.toString());
+ assertTrue(t.isMap());
+ assertFalse(t.isCollection());
+ assertNull(t.newInstance());
+ assertEquals(Map.class, t.getInnerClass());
+ assertEquals(String.class, t.getKeyType().getInnerClass());
+ assertEquals(String.class, t.getValueType().getInnerClass());
+ }
+
+ //====================================================================================================
+ // String field
+ //====================================================================================================
+ public String fb;
+
+ @Test
+ public void testString() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("fb").getGenericType());
+ assertEquals(String.class, t.getInnerClass());
+ t = bc.getClassMeta(this.getClass().getField("fb").getType());
+ assertEquals(String.class, t.getInnerClass());
+ }
+
+ //====================================================================================================
+ // Map<String,Map<String,Integer>> field
+ //====================================================================================================
+ public Map<String,Map<String,Integer>> fc;
+
+ @Test
+ public void testMapWithMapValues() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("fc").getGenericType());
+ assertEquals("java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Integer>>", t.toString());
+ t = bc.getClassMeta(this.getClass().getField("fc").getType());
+ assertEquals("java.util.Map", t.toString());
+ }
+
+ //====================================================================================================
+ // List<Map<String,List>> field
+ //====================================================================================================
+ public List<Map<String,List>> fd;
+
+ @Test
+ public void testListWithMapValues() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("fd").getGenericType());
+ assertEquals("java.util.List<java.util.Map<java.lang.String,java.util.List>>", t.toString());
+ }
+
+ //====================================================================================================
+ // List<? extends String> field, List<? super String> field
+ //====================================================================================================
+ public List<? extends String> fe1;
+ public List<? super String> fe2;
+
+ @Test
+ public void testListWithUpperBoundGenericEntryTypes() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("fe1").getGenericType());
+ assertEquals("java.util.List", t.toString());
+ t = bc.getClassMeta(this.getClass().getField("fe2").getGenericType());
+ assertEquals("java.util.List", t.toString());
+ }
+
+ //====================================================================================================
+ // Bean extends HashMap<String,Object> field
+ //====================================================================================================
+ public class G extends HashMap<String,Object> {}
+ public G g;
+
+ @Test
+ public void testBeanExtendsMap() throws Exception {
+ ClassMeta t = bc.getClassMeta(this.getClass().getField("g").getGenericType());
+ assertEquals("org.apache.juneau.ClassMetaTest$G<java.lang.String,java.lang.Object>", t.toString());
+ assertTrue(t.isMap());
+ assertFalse(t.isCollection());
+ }
+
+ //====================================================================================================
+ // testTransforms
+ // Ensure filters on parent and child classes are properly detected.
+ //====================================================================================================
+ @Test
+ public void testTransforms() throws Exception {
+ BeanContext bc;
+ ClassMeta<?> ooo, hi1, hc1, hi2, hc2;
+
+ bc = ContextFactory.create().getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertFalse(ooo.hasChildPojoTransforms());
+ assertFalse(hi1.hasChildPojoTransforms());
+ assertFalse(hc1.hasChildPojoTransforms());
+ assertFalse(hi2.hasChildPojoTransforms());
+ assertFalse(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertNull(hi1.getPojoTransform());
+ assertNull(hc1.getPojoTransform());
+ assertNull(hi2.getPojoTransform());
+ assertNull(hc2.getPojoTransform());
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), HC2.class);
+
+ bc = ContextFactory.create().addTransforms(HI1Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertFalse(hc1.hasChildPojoTransforms());
+ assertFalse(hi2.hasChildPojoTransforms());
+ assertFalse(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertEquals(hi1.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hc1.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hi2.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hc2.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+
+ bc = ContextFactory.create().addTransforms(HC1Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertTrue(hc1.hasChildPojoTransforms());
+ assertFalse(hi2.hasChildPojoTransforms());
+ assertFalse(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertNull(hi1.getPojoTransform());
+ assertEquals(hc1.getPojoTransform().getClass(), HC1Transform.class);
+ assertNull(hi2.getPojoTransform());
+ assertEquals(hc2.getPojoTransform().getClass(), HC1Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+
+ bc = ContextFactory.create().addTransforms(HI2Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertFalse(hc1.hasChildPojoTransforms());
+ assertTrue(hi2.hasChildPojoTransforms());
+ assertFalse(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertNull(hi1.getPojoTransform());
+ assertNull(hc1.getPojoTransform());
+ assertEquals(hi2.getPojoTransform().getClass(), HI2Transform.class);
+ assertEquals(hc2.getPojoTransform().getClass(), HI2Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+
+ bc = ContextFactory.create().addTransforms(HC2Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertTrue(hc1.hasChildPojoTransforms());
+ assertTrue(hi2.hasChildPojoTransforms());
+ assertTrue(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertNull(hi1.getPojoTransform());
+ assertNull(hc1.getPojoTransform());
+ assertNull(hi2.getPojoTransform());
+ assertEquals(hc2.getPojoTransform().getClass(), HC2Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+
+ bc = ContextFactory.create().addTransforms(HI1Transform.class,HC1Transform.class,HI2Transform.class,HC2Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertTrue(hc1.hasChildPojoTransforms());
+ assertTrue(hi2.hasChildPojoTransforms());
+ assertTrue(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertEquals(hi1.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hc1.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hi2.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hc2.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+
+ bc = ContextFactory.create().addTransforms(HC2Transform.class,HI2Transform.class,HC1Transform.class,HI1Transform.class).getBeanContext();
+ ooo = bc.getClassMeta(Object.class);
+ hi1 = bc.getClassMeta(HI1.class);
+ hc1 = bc.getClassMeta(HC1.class);
+ hi2 = bc.getClassMeta(HI2.class);
+ hc2 = bc.getClassMeta(HC2.class);
+ assertTrue(ooo.hasChildPojoTransforms());
+ assertTrue(hi1.hasChildPojoTransforms());
+ assertTrue(hc1.hasChildPojoTransforms());
+ assertTrue(hi2.hasChildPojoTransforms());
+ assertTrue(hc2.hasChildPojoTransforms());
+ assertNull(ooo.getPojoTransform());
+ assertEquals(hi1.getPojoTransform().getClass(), HI1Transform.class);
+ assertEquals(hc1.getPojoTransform().getClass(), HC1Transform.class);
+ assertEquals(hi2.getPojoTransform().getClass(), HI2Transform.class);
+ assertEquals(hc2.getPojoTransform().getClass(), HC2Transform.class);
+ assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class);
+ assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
+ assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
+ }
+
+ public interface HI1 {}
+ public class HC1 implements HI1 {}
+ public interface HI2 extends HI1 {}
+ public class HC2 extends HC1 implements HI2 {}
+ public static class HC1Transform extends PojoTransform<HC1,Map> {}
+ public static class HI1Transform extends PojoTransform<HI1,Map> {}
+ public static class HC2Transform extends PojoTransform<HC2,Map> {}
+ public static class HI2Transform extends PojoTransform<HI2,Map> {}
+}