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:51 UTC
[30/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_BeanMap.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanMap.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanMap.java
deleted file mode 100755
index 838e05b..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanMap.java
+++ /dev/null
@@ -1,1920 +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.TestUtils.*;
-import static org.junit.Assert.*;
-
-import java.util.*;
-
-import org.apache.juneau.annotation.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.json.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.transforms.*;
-import org.apache.juneau.urlencoding.*;
-import org.apache.juneau.utils.*;
-import org.apache.juneau.xml.*;
-import org.junit.*;
-
-@SuppressWarnings({"unchecked","rawtypes","hiding","serial","unused"})
-public class CT_BeanMap {
-
- JsonSerializer serializer = JsonSerializer.DEFAULT_LAX.clone().setClassLoader(CT_BeanMap.class.getClassLoader());
-
- //====================================================================================================
- // Primitive field properties
- //====================================================================================================
- @Test
- public void testPrimitiveFieldProperties() {
- A t = new A();
- Map m = BeanContext.DEFAULT.forBean(t);
-
- // Make sure setting primitive values to null causes them to get default values.
- m.put("i1", null);
- m.put("s1", null);
- m.put("l1", null);
- m.put("d1", null);
- m.put("f1", null);
- m.put("b1", null);
- assertEquals(new Integer(0), m.get("i1"));
- assertEquals(new Short((short)0), m.get("s1"));
- assertEquals(new Long(0l), m.get("l1"));
- assertEquals(new Double(0d), m.get("d1"));
- assertEquals(new Float(0f), m.get("f1"));
- assertEquals(new Boolean(false), m.get("b1"));
-
- // Make sure setting non-primitive values to null causes them to set to null.
- m.put("i2", null);
- m.put("s2", null);
- m.put("l2", null);
- m.put("d2", null);
- m.put("f2", null);
- m.put("b2", null);
- assertNull(m.get("i2"));
- assertNull(m.get("s2"));
- assertNull(m.get("l2"));
- assertNull(m.get("d2"));
- assertNull(m.get("f2"));
- assertNull(m.get("b2"));
-
- // Make sure setting them all to an integer is kosher.
- m.put("i1", 1);
- m.put("s1", 1);
- m.put("l1", 1);
- m.put("d1", 1);
- m.put("f1", 1);
- m.put("i2", 1);
- m.put("s2", 1);
- m.put("l2", 1);
- m.put("d2", 1);
- m.put("f2", 1);
- assertEquals(new Integer(1), m.get("i1"));
- assertEquals(new Integer(1), m.get("i2"));
- assertEquals(new Short((short)1), m.get("s1"));
- assertEquals(new Short((short)1), m.get("s2"));
- assertEquals(new Long(1), m.get("l1"));
- assertEquals(new Long(1), m.get("l2"));
- assertEquals(new Double(1), m.get("d1"));
- assertEquals(new Double(1), m.get("d2"));
- assertEquals(new Float(1), m.get("f1"));
- assertEquals(new Float(1), m.get("f2"));
-
- m.put("b1", true);
- m.put("b2", new Boolean(true));
- assertEquals(new Boolean(true), m.get("b1"));
- assertEquals(new Boolean(true), m.get("b2"));
- }
-
- public static class A {
- public int i1;
- public Integer i2;
- public short s1;
- public Short s2;
- public long l1;
- public Long l2;
- public double d1;
- public Double d2;
- public float f1;
- public Float f2;
- public boolean b1;
- public Boolean b2;
- }
-
- //====================================================================================================
- // Primitive method properties
- //====================================================================================================
- @Test
- public void testPrimitiveMethodProperties() {
- B t = new B();
- Map m = BeanContext.DEFAULT.forBean(t);
-
- // Make sure setting primitive values to null causes them to get default values.
- m.put("i1", null);
- m.put("s1", null);
- m.put("l1", null);
- m.put("d1", null);
- m.put("f1", null);
- m.put("b1", null);
- assertEquals(new Integer(0), m.get("i1"));
- assertEquals(new Short((short)0), m.get("s1"));
- assertEquals(new Long(0l), m.get("l1"));
- assertEquals(new Double(0d), m.get("d1"));
- assertEquals(new Float(0f), m.get("f1"));
- assertEquals(new Boolean(false), m.get("b1"));
-
- // Make sure setting non-primitive values to null causes them to set to null.
- m.put("i2", null);
- m.put("s2", null);
- m.put("l2", null);
- m.put("d2", null);
- m.put("f2", null);
- m.put("b2", null);
- assertNull(m.get("i2"));
- assertNull(m.get("s2"));
- assertNull(m.get("l2"));
- assertNull(m.get("d2"));
- assertNull(m.get("f2"));
- assertNull(m.get("b2"));
-
- // Make sure setting them all to an integer is kosher.
- m.put("i1", 1);
- m.put("s1", 1);
- m.put("l1", 1);
- m.put("d1", 1);
- m.put("f1", 1);
- m.put("i2", 1);
- m.put("s2", 1);
- m.put("l2", 1);
- m.put("d2", 1);
- m.put("f2", 1);
- assertEquals(new Integer(1), m.get("i1"));
- assertEquals(new Integer(1), m.get("i2"));
- assertEquals(new Short((short)1), m.get("s1"));
- assertEquals(new Short((short)1), m.get("s2"));
- assertEquals(new Long(1), m.get("l1"));
- assertEquals(new Long(1), m.get("l2"));
- assertEquals(new Double(1), m.get("d1"));
- assertEquals(new Double(1), m.get("d2"));
- assertEquals(new Float(1), m.get("f1"));
- assertEquals(new Float(1), m.get("f2"));
-
- m.put("b1", true);
- m.put("b2", true);
- assertEquals(new Boolean(true), m.get("b1"));
- assertEquals(new Boolean(true), m.get("b2"));
- }
-
- public static class B {
- private int i1;
- private Integer i2;
- private short s1;
- private Short s2;
- private long l1;
- private Long l2;
- private double d1;
- private Double d2;
- private float f1;
- private Float f2;
- private boolean b1;
- private Boolean b2;
-
- public int getI1() {return i1;}
- public void setI1(int i1) {this.i1 = i1;}
- public Integer getI2() {return i2;}
- public void setI2(Integer i2) {this.i2 = i2;}
-
- public short getS1() {return s1;}
- public void setS1(short s1) {this.s1 = s1;}
- public Short getS2() {return s2;}
- public void setS2(Short s2) {this.s2 = s2;}
-
- public long getL1() {return l1;}
- public void setL1(long l1) {this.l1 = l1;}
- public Long getL2() {return l2;}
- public void setL2(Long l2) {this.l2 = l2;}
-
- public double getD1() {return d1;}
- public void setD1(double d1) {this.d1 = d1;}
- public Double getD2() {return d2;}
- public void setD2(Double d2) {this.d2 = d2;}
-
- public float getF1() {return f1;}
- public void setF1(float f1) {this.f1 = f1;}
- public Float getF2() {return f2;}
- public void setF2(Float f2) {this.f2 = f2;}
-
- public boolean getB1() {return b1;}
- public void setB1(boolean b1) {this.b1 = b1;}
- public Boolean getB2() {return b2;}
- public void setB2(Boolean b2) {this.b2 = b2;}
- }
-
- //====================================================================================================
- // testCollectionFieldProperties
- //====================================================================================================
- @Test
- public void testCollectionFieldProperties() throws Exception {
- C t = new C();
- Map m = BeanContext.DEFAULT.forBean(t);
-
- // Non-initialized list fields.
- m.put("l1", new ObjectList("[1,2,3]"));
- m.put("al1", new ObjectList("[1,2,3]"));
- m.put("ll1", new ObjectList("[1,2,3]"));
- m.put("c1", new ObjectList("[1,2,3]"));
- m.put("jl1", new ObjectList("[1,2,3]"));
-
- // al1 should be initialized with an ArrayList, since it's not a superclass of ObjectList.
- assertEquals(ArrayList.class.getName(), m.get("al1").getClass().getName());
-
- // The rest are proper superclasses of ObjectList.
- assertEquals(ObjectList.class.getName(), m.get("l1").getClass().getName());
- assertEquals(LinkedList.class.getName(), m.get("ll1").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("c1").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("jl1").getClass().getName());
-
- // Non-initialized map fields.
- m.put("m1", new ObjectMap("{foo:'bar'}"));
- m.put("hm1", new ObjectMap("{foo:'bar'}"));
- m.put("jm1", new ObjectMap("{foo:'bar'}"));
- m.put("tm1", new ObjectMap("{foo:'bar'}"));
-
- // tm1 should be initialized with TreeMap, since it's not a superclass of ObjectMap.
- assertEquals(TreeMap.class.getName(), m.get("tm1").getClass().getName());
-
- // The rest are propert superclasses of ObjectMap
- assertEquals(ObjectMap.class.getName(), m.get("m1").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("hm1").getClass().getName());
- assertEquals(ObjectMap.class.getName(), m.get("jm1").getClass().getName());
-
- // Initialized fields should reuse existing field value.
- m.put("l2", new ObjectList("[1,2,3]"));
- m.put("al2", new ObjectList("[1,2,3]"));
- m.put("ll2", new ObjectList("[1,2,3]"));
- m.put("c2", new ObjectList("[1,2,3]"));
- m.put("m2", new ObjectMap("{foo:'bar'}"));
- m.put("hm2", new ObjectMap("{foo:'bar'}"));
- m.put("tm2", new ObjectMap("{foo:'bar'}"));
- m.put("jm2", new ObjectMap("{foo:'bar'}"));
- m.put("jl2", new ObjectList("[1,2,3]"));
-
- assertEquals(ArrayList.class.getName(), m.get("l2").getClass().getName());
- assertEquals(ArrayList.class.getName(), m.get("al2").getClass().getName());
- assertEquals(LinkedList.class.getName(), m.get("ll2").getClass().getName());
- assertEquals(ArrayList.class.getName(), m.get("c2").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("m2").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("hm2").getClass().getName());
- assertEquals(TreeMap.class.getName(), m.get("tm2").getClass().getName());
- assertEquals(ObjectMap.class.getName(), m.get("jm2").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("jl2").getClass().getName());
- }
-
- public static class C {
- public List l1;
- public ArrayList al1;
- public LinkedList ll1;
- public Collection c1;
- public Map m1;
- public HashMap hm1;
- public ObjectMap jm1;
- public TreeMap tm1;
- public ObjectList jl1;
- public List l2 = new ArrayList();
- public ArrayList al2 = new ArrayList();
- public LinkedList ll2 = new LinkedList();
- public Collection c2 = new ArrayList();
- public Map m2 = new HashMap();
- public HashMap hm2 = new HashMap();
- public TreeMap tm2 = new TreeMap();
- public ObjectMap jm2 = new ObjectMap();
- public ObjectList jl2 = new ObjectList();
- }
-
- //====================================================================================================
- // testCollectionMethodProperties
- //====================================================================================================
- @Test
- public void testCollectionMethodProperties() throws Exception {
- D t = new D();
- Map m = BeanContext.DEFAULT.forBean(t);
-
- // Non-initialized list fields.
- m.put("l1", new ObjectList("[1,2,3]"));
- m.put("al1", new ObjectList("[1,2,3]"));
- m.put("ll1", new ObjectList("[1,2,3]"));
- m.put("c1", new ObjectList("[1,2,3]"));
- m.put("jl1", new ObjectList("[1,2,3]"));
-
- // al1 should be initialized with an ArrayList, since it's not a superclass of ObjectList.
- assertEquals(ArrayList.class.getName(), m.get("al1").getClass().getName());
-
- // The rest are proper superclasses of ObjectList.
- assertEquals(ObjectList.class.getName(), m.get("l1").getClass().getName());
- assertEquals(LinkedList.class.getName(), m.get("ll1").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("c1").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("jl1").getClass().getName());
-
- // Non-initialized map fields.
- m.put("m1", new ObjectMap("{foo:'bar'}"));
- m.put("hm1", new ObjectMap("{foo:'bar'}"));
- m.put("jm1", new ObjectMap("{foo:'bar'}"));
- m.put("tm1", new ObjectMap("{foo:'bar'}"));
-
- // tm1 should be initialized with TreeMap, since it's not a superclass of ObjectMap.
- assertEquals(TreeMap.class.getName(), m.get("tm1").getClass().getName());
-
- // The rest are propert superclasses of ObjectMap
- assertEquals(ObjectMap.class.getName(), m.get("m1").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("hm1").getClass().getName());
- assertEquals(ObjectMap.class.getName(), m.get("jm1").getClass().getName());
-
- // Initialized fields should reuse existing field value.
- m.put("l2", new ObjectList("[1,2,3]"));
- m.put("al2", new ObjectList("[1,2,3]"));
- m.put("ll2", new ObjectList("[1,2,3]"));
- m.put("c2", new ObjectList("[1,2,3]"));
- m.put("m2", new ObjectMap("{foo:'bar'}"));
- m.put("hm2", new ObjectMap("{foo:'bar'}"));
- m.put("tm2", new ObjectMap("{foo:'bar'}"));
- m.put("jm2", new ObjectMap("{foo:'bar'}"));
- m.put("jl2", new ObjectList("[1,2,3]"));
-
- assertEquals(ArrayList.class.getName(), m.get("l2").getClass().getName());
- assertEquals(ArrayList.class.getName(), m.get("al2").getClass().getName());
- assertEquals(LinkedList.class.getName(), m.get("ll2").getClass().getName());
- assertEquals(ArrayList.class.getName(), m.get("c2").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("m2").getClass().getName());
- assertEquals(HashMap.class.getName(), m.get("hm2").getClass().getName());
- assertEquals(TreeMap.class.getName(), m.get("tm2").getClass().getName());
- assertEquals(ObjectMap.class.getName(), m.get("jm2").getClass().getName());
- assertEquals(ObjectList.class.getName(), m.get("jl2").getClass().getName());
- }
-
- public static class D {
- private List l1;
- public List getL1() {return l1;}
- public void setL1(List l1) {this.l1 = l1;}
-
- private ArrayList al1;
- public ArrayList getAl1() {return al1;}
- public void setAl1(ArrayList al1) {this.al1 = al1;}
-
- private LinkedList ll1;
- public LinkedList getLl1() {return ll1;}
- public void setLl1(LinkedList ll1) {this.ll1 = ll1;}
-
- private Collection c1;
- public Collection getC1() {return c1;}
- public void setC1(Collection c1) {this.c1 = c1;}
-
- private Map m1;
- public Map getM1() {return m1;}
- public void setM1(Map m1) {this.m1 = m1;}
-
- private HashMap hm1;
- public HashMap getHm1() {return hm1;}
- public void setHm1(HashMap hm1) {this.hm1 = hm1;}
-
- private ObjectMap jm1;
- public ObjectMap getJm1() {return jm1;}
- public void setJm1(ObjectMap jm1) {this.jm1 = jm1;}
-
- private TreeMap tm1;
- public TreeMap getTm1() {return tm1;}
- public void setTm1(TreeMap tm1) {this.tm1 = tm1;}
-
- private ObjectList jl1;
- public ObjectList getJl1() {return jl1;}
- public void setJl1(ObjectList jl1) {this.jl1 = jl1;}
-
- private List l2 = new ArrayList();
- public List getL2() {return l2;}
- public void setL2(List l2) {this.l2 = l2;}
-
- private ArrayList al2 = new ArrayList();
- public ArrayList getAl2() {return al2;}
- public void setAl2(ArrayList al2) {this.al2 = al2;}
-
- private LinkedList ll2 = new LinkedList();
- public LinkedList getLl2() {return ll2;}
- public void setLl2(LinkedList ll2) {this.ll2 = ll2;}
-
- private Collection c2 = new ArrayList();
- public Collection getC2() {return c2;}
- public void setC2(Collection c2) {this.c2 = c2;}
-
- private Map m2 = new HashMap();
- public Map getM2() {return m2;}
- public void setM2(Map m2) {this.m2 = m2;}
-
- private HashMap hm2 = new HashMap();
- public HashMap getHm2() {return hm2;}
- public void setHm2(HashMap hm2) {this.hm2 = hm2;}
-
- private TreeMap tm2 = new TreeMap();
- public TreeMap getTm2() {return tm2;}
- public void setTm2(TreeMap tm2) {this.tm2 = tm2;}
-
- private ObjectMap jm2 = new ObjectMap();
- public ObjectMap getJm2() {return jm2;}
- public void setJm2(ObjectMap jm2) {this.jm2 = jm2;}
-
- private ObjectList jl2 = new ObjectList();
- public ObjectList getJl2() {return jl2;}
- public void setJl2(ObjectList jl2) {this.jl2 = jl2;}
- }
-
- //====================================================================================================
- // testArrayProperties
- //====================================================================================================
- @Test
- public void testArrayProperties() throws Exception {
- D1 t = new D1();
- BeanContext bc = getBeanContext();
- Map m = bc.forBean(t);
- m.put("b", new ObjectMap("{s:'foo'}"));
- assertNotNull(t.b);
- assertEquals("foo", t.b.s);
-
- Map m2 = new TreeMap();
- m2.put("s", "bar");
- m.put("b", m2);
- assertNotNull(t.b);
- assertEquals("bar", t.b.s);
-
- m.put("b", new D2());
- assertEquals("default", t.b.s);
-
- JsonParser p = new JsonParser().setClassLoader(CT_BeanMap.class.getClassLoader());
- m.put("lb1", new ObjectList("[{_class:'"+D2.class.getName()+"',s:'foobar'}]", p));
- assertEquals(ObjectList.class.getName(), t.lb1.getClass().getName());
- assertEquals(D2.class.getName(), t.lb1.get(0).getClass().getName());
- assertEquals("foobar", (t.lb1.get(0)).s);
-
- m.put("lb2", new ObjectList("[{_class:'"+D2.class.getName()+"',s:'foobar'}]", p));
- assertEquals(ArrayList.class.getName(), t.lb2.getClass().getName());
- assertEquals(D2.class.getName(), t.lb2.get(0).getClass().getName());
- assertEquals("foobar", (t.lb2.get(0)).s);
-
- m.put("ab1", new ObjectList("[{_class:'"+D2.class.getName()+"',s:'foobar'}]", p));
- assertEquals("[L"+D2.class.getName()+";", t.ab1.getClass().getName());
- assertEquals(D2.class.getName(), t.ab1[0].getClass().getName());
- assertEquals("foobar", t.ab1[0].s);
-
- m.put("ab2", new ObjectList("[{_class:'"+D2.class.getName()+"',s:'foobar'}]", p));
- assertEquals("[L"+D2.class.getName()+";", t.ab2.getClass().getName());
- assertEquals(D2.class.getName(), t.ab2[0].getClass().getName());
- assertEquals("foobar", t.ab2[0].s);
- }
-
- public static class D1 {
- public D2 b;
- public List<D2> lb1;
- public List<D2> lb2 = new ArrayList<D2>();
- public D2[] ab1;
- public D2[] ab2 = new D2[0];
- }
-
- public static class D2 {
- public String s = "default";
- }
-
- //====================================================================================================
- // testArrayPropertiesInObjectList
- //====================================================================================================
- @Test
- public void testArrayPropertiesInObjectList() throws Exception {
- E t = new E();
- Map m = BeanContext.DEFAULT.forBean(t);
- m.put("s", new ObjectList("['foo']"));
- m.put("s2", new ObjectList("[['foo']]"));
- m.put("i", new ObjectList("[1,2,3]"));
- m.put("i2", new ObjectList("[[1,2,3],[4,5,6]]"));
- assertEquals("{s:['foo'],s2:[['foo']],i:[1,2,3],i2:[[1,2,3],[4,5,6]]}", JsonSerializer.DEFAULT_LAX.serialize(t));
- m.put("i", new ObjectList("[null,null,null]"));
- m.put("i2", new ObjectList("[[null,null,null],[null,null,null]]"));
- assertEquals("{s:['foo'],s2:[['foo']],i:[0,0,0],i2:[[0,0,0],[0,0,0]]}", JsonSerializer.DEFAULT_LAX.serialize(t));
- }
-
- public static class E {
- public String[] s;
- public String[][] s2;
- public int[] i;
- public int[][] i2;
- }
-
- //====================================================================================================
- // BeanMap.invokeMethod()
- //====================================================================================================
- @Test
- public void testInvokeMethod() throws Exception {
- F t5 = new F();
- ReaderParser p = JsonParser.DEFAULT;
- BeanMap m = BeanContext.DEFAULT.forBean(t5);
- new PojoIntrospector(t5, p).invokeMethod("doSetAProperty(java.lang.String)", "['baz']");
- assertEquals("baz", m.get("prop"));
- }
-
- public static class F {
- public String prop;
-
- public boolean doSetAProperty(String prop) {
- this.prop = prop;
- return true;
- }
- }
-
- //====================================================================================================
- // @BeanProperty tests
- //====================================================================================================
- @Test
- public void testBeanPropertyAnnotation() throws Exception {
- G1 t6 = new G1();
- BeanMap m = BeanContext.DEFAULT.forBean(t6);
-
- try {
- m.put("l1", "[{a:'a',i:1}]");
- throw new Exception("Expected exception on unsettable field.");
- } catch (Exception e) {
- // Good.
- }
-
- m.put("l2", "[{a:'a',i:1}]");
- assertEquals("java.util.LinkedList", m.get("l2").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("l2")).get(0).getClass().getName());
-
- m.put("l3", "[{a:'a',i:1}]");
- assertEquals("org.apache.juneau.ObjectList", m.get("l3").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("l3")).get(0).getClass().getName());
-
- m.put("l4", "[{a:'a',i:1}]");
- assertEquals("java.util.LinkedList", m.get("l4").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("l4")).get(0).getClass().getName());
-
- try {
- m.put("m1", "[{a:'a',i:1}]");
- throw new Exception("Expected exception on unsettable field.");
- } catch (Exception e) {
- // Good.
- }
-
- m.put("m2", "[{a:'a',i:1}]");
- assertEquals("java.util.LinkedList", m.get("m2").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("m2")).get(0).getClass().getName());
-
- m.put("m3", "[{a:'a',i:1}]");
- assertEquals("org.apache.juneau.ObjectList", m.get("m3").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("m3")).get(0).getClass().getName());
-
- m.put("m4", "[{a:'a',i:1}]");
- assertEquals("java.util.LinkedList", m.get("m4").getClass().getName());
- assertEquals("org.apache.juneau.CT_BeanMap$G", ((List)m.get("m4")).get(0).getClass().getName());
- }
-
- public static class G {
- public String a;
- public int i;
- }
-
- public static class G1 {
-
- public List<G> l1;
-
- public List<G> l2 = new LinkedList<G>();
-
- @BeanProperty(type=List.class,params={G.class})
- public List<G> l3;
-
- @BeanProperty(type=LinkedList.class,params={G.class})
- public List<G> l4;
-
- private List<G> m1;
- public List<G> getM1() { return m1; }
- public void setM1(List<G> m1) { this.m1 = m1; }
-
- private List<G> m2 = new LinkedList<G>();
- public List<G> getM2() { return m2; }
- public void setM2(List<G> m2) { this.m2 = m2; }
-
- private List<G> m3;
- @BeanProperty(type=List.class,params={G.class})
- public List<G> getM3() { return m3; }
- public void setM3(List<G> m3) { this.m3 = m3; }
-
- private List<G> m4;
- @BeanProperty(type=LinkedList.class,params={G.class})
- public List<G> getM4() { return m4; }
- public void setM4(List<G> m4) { this.m4 = m4; }
- }
-
- //====================================================================================================
- // Enum tests
- //====================================================================================================
- @Test
- public void testEnum() throws Exception {
- BeanContext bc = getBeanContext();
-
- // Initialize existing bean.
- H t7 = new H();
- BeanMap m = bc.forBean(t7);
- m.put("enum1", "ONE");
- m.put("enum2", "TWO");
- assertEquals("{enum1:'ONE',enum2:'TWO'}", serializer.serialize(t7));
- assertEquals(HEnum.ONE, t7.enum1);
- assertEquals(HEnum.TWO, t7.getEnum2());
-
- // Use BeanContext to create bean instance.
- m = BeanContext.DEFAULT.newBeanMap(H.class).load("{enum1:'TWO',enum2:'THREE'}");
- assertEquals("{enum1:'TWO',enum2:'THREE'}", serializer.serialize(m.getBean()));
- t7 = (H)m.getBean();
- assertEquals(HEnum.TWO, t7.enum1);
- assertEquals(HEnum.THREE, t7.getEnum2());
-
- // Create instance directly from JSON.
- JsonParser p = new JsonParser().setClassLoader(CT_BeanMap.class.getClassLoader());
- t7 = (H)p.parse("{_class:'"+H.class.getName()+"',enum1:'THREE',enum2:'ONE'}", Object.class);
- assertEquals("{enum1:'THREE',enum2:'ONE'}", serializer.serialize(t7));
- assertEquals(HEnum.THREE, t7.enum1);
- assertEquals(HEnum.ONE, t7.getEnum2());
- }
-
- public static enum HEnum {
- ONE, TWO, THREE
- }
-
- public static class H {
-
- public HEnum enum1;
-
- private HEnum enum2;
-
- public HEnum getEnum2() {
- return enum2;
- }
-
- public void setEnum2(HEnum enum2) {
- this.enum2 = enum2;
- }
- }
-
- //====================================================================================================
- // Automatic detection of generic types
- //====================================================================================================
- @Test
- public void testAutomaticDetectionOfGenericTypes() throws Exception {
- BeanMap bm = BeanContext.DEFAULT.newBeanMap(I.class);
- assertEquals(String.class, bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Integer.class, bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Object.class, bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Integer.class, bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Integer.class, bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(Object.class, bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Object.class, bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
- }
-
- public static class I {
-
- public List<String> p1;
-
- public List<Integer> getP2() {
- return null;
- }
-
- public List<? extends Integer> p3;
-
- public Map<String,Integer> p4;
-
- public Map<String,Integer> getP5() {
- return null;
- }
-
- public Map<String,? extends Integer> p6;
- }
-
- //====================================================================================================
- // Overriding detection of generic types.
- //====================================================================================================
- @Test
- public void testOverridingDetectionOfGenericTypes() throws Exception {
- BeanMap bm = BeanContext.DEFAULT.newBeanMap(J.class);
- assertEquals(Float.class, bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Object.class, bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(Object.class, bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
- }
-
- public static class J {
-
- @BeanProperty(params={Float.class})
- public List<String> p1;
-
- @BeanProperty(params={Float.class})
- public List<Integer> getP2() {
- return null;
- }
-
- @BeanProperty(params={Float.class})
- public List<? extends Integer> p3;
-
- @BeanProperty(params={Object.class, Float.class})
- public Map<String,Integer> p4;
-
- @BeanProperty(params={Object.class, Float.class})
- public Map<String,Integer> getP5() {
- return null;
- }
-
- @BeanProperty(params={String.class, Float.class})
- public Map<String,? extends Integer> p6;
- }
-
- //====================================================================================================
- // Overriding detection of generic types.
- //====================================================================================================
- @Test
- public void testOverridingDetectionOfGenericTypes2() throws Exception {
- BeanMap bm = BeanContext.DEFAULT.newBeanMap(K.class);
- assertEquals(Float.class, bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class, bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class, bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
- }
-
- public static class K {
-
- @BeanProperty(params=Float.class)
- public List<String> p1;
-
- @BeanProperty(params=Float.class)
- public List<Integer> getP2() {
- return null;
- }
-
- @BeanProperty(params=Float.class)
- public List<? extends Integer> p3;
-
- @BeanProperty(params={String.class,Float.class})
- public Map<String,Integer> p4;
-
- @BeanProperty(params={String.class,Float.class})
- public Map<String,Integer> getP5() {
- return null;
- }
-
- @BeanProperty(params={String.class,Float.class})
- public Map<String,? extends Integer> p6;
- }
-
- //====================================================================================================
- // List<E> subclass properties
- //====================================================================================================
- @Test
- public void testGenericListSubclass() throws Exception {
- BeanMap<L> bm = BeanContext.DEFAULT.newBeanMap(L.class);
- bm.put("list", "[{name:'1',value:'1'},{name:'2',value:'2'}]");
- L b = bm.getBean();
- assertEquals("1", b.list.get(0).name);
- }
-
- public static class L {
- public L1 list;
- }
-
- public static class L1 extends LinkedList<L2> {
- }
-
- public static class L2 {
- public String name, value;
- public L2(){}
- public L2(String name, String value) {
- this.name = name;
- this.value = value;
- }
- }
-
- //====================================================================================================
- // Generic fields.
- //====================================================================================================
- @Test
- public void testGenericFields() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- M2 t1 = new M2();
- BeanMap<M2> bm = bc.forBean(t1);
- assertEquals(1, bm.get("x"));
-
- M3 t2 = new M3();
- BeanMap<M3> cm = bc.forBean(t2);
- assertEquals(2, cm.get("x"));
-
- M4 t3 = new M4();
- BeanMap<M4> dm = bc.forBean(t3);
- assertEquals(3, dm.get("x"));
-
- M5 t4 = new M5();
- BeanMap<M5> em = bc.forBean(t4);
- assertEquals(4, em.get("x"));
- }
-
- public static class M1<T> {
- public T x;
- }
-
- public static class M2 extends M1<Integer> {
- public M2() {
- this.x = 1;
- }
- }
-
- public static class M3 extends M2 {
- public M3() {
- this.x = 2;
- }
- }
-
- public static class M4<T extends Number> extends M1<T> {
- public M4() {
- this.x = (T)new Integer(3);
- }
- }
-
- public static class M5 extends M4<Integer> {
- public M5() {
- this.x = new Integer(4);
- }
- }
-
- //====================================================================================================
- // Generic methods
- //====================================================================================================
- @Test
- public void testGenericMethods() throws Exception {
- N2 t1 = new N2();
- BeanMap<N2> bm = BeanContext.DEFAULT.forBean(t1);
- assertEquals(1, bm.get("x"));
-
- N3 t2 = new N3();
- BeanMap<N3> cm = BeanContext.DEFAULT.forBean(t2);
- assertEquals(2, cm.get("x"));
-
- N4 t3 = new N4();
- BeanMap<N4> dm = BeanContext.DEFAULT.forBean(t3);
- assertEquals(3, dm.get("x"));
-
- N5 t4 = new N5();
- BeanMap<N5> em = BeanContext.DEFAULT.forBean(t4);
- assertEquals(4, em.get("x"));
- }
-
- public static class N1<T> {
- private T x;
- public void setX(T x) {
- this.x = x;
- }
- public T getX() {
- return x;
- }
- }
-
- public static class N2 extends N1<Integer> {
- public N2() {
- setX(1);
- }
- }
-
- public static class N3 extends N2 {
- public N3() {
- setX(2);
- }
- }
-
- public static class N4<T extends Number> extends N1<T> {
- public N4() {
- setX((T)new Integer(3));
- }
- }
-
- public static class N5 extends N4<Integer> {
- public N5() {
- setX(4);
- }
- }
-
- //====================================================================================================
- // Test ignoreUnknownBeanProperties setting
- //====================================================================================================
- @Test
- public void testIgnoreUnknownBeanPropertiesSetting() throws Exception {
- ReaderParser p = null;
- O t;
-
- // JSON
- String json = "{baz:789,foo:123,bar:456}";
- p = new JsonParser().setProperty(BEAN_ignoreUnknownBeanProperties, true);
- t = p.parse(json, O.class);
- assertEquals(123, t.foo);
-
- try {
- p = JsonParser.DEFAULT;
- t = p.parse(json, O.class);
- fail("Expected exception never occurred");
- } catch (Exception e) {
- // Good.
- }
-
- // XML
- String xml = "<object><baz type='number'>789</baz><foo type='number'>123</foo><bar type='number'>456</bar></object>";
- p = new XmlParser().setProperty(BEAN_ignoreUnknownBeanProperties, true);
- t = p.parse(xml, O.class);
- assertEquals(123, t.foo);
-
- try {
- p = XmlParser.DEFAULT;
- t = p.parse(json, O.class);
- fail("Expected exception never occurred");
- } catch (Exception e) {
- // Good.
- }
-
- // HTML
- String html = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>baz</string></td><td><number>789</number></td></tr><tr><td><string>foo</string></td><td><number>123</number></td></tr><tr><td><string>bar</string></td><td><number>456</number></td></tr></table>";
- p = new HtmlParser().setProperty(BEAN_ignoreUnknownBeanProperties, true);
- t = p.parse(html, O.class);
- assertEquals(123, t.foo);
-
- try {
- p = HtmlParser.DEFAULT;
- t = p.parse(json, O.class);
- fail("Expected exception never occurred");
- } catch (Exception e) {
- // Good.
- }
-
- // UON
- String uon = "(baz=789,foo=123,bar=456)";
- p = new UonParser().setProperty(BEAN_ignoreUnknownBeanProperties, true);
- t = p.parse(uon, O.class);
- assertEquals(123, t.foo);
-
- try {
- p = new UonParser();
- t = p.parse(json, O.class);
- fail("Expected exception never occurred");
- } catch (Exception e) {
- // Good.
- }
-
- // URL-Encoding
- String urlencoding = "baz=789&foo=123&bar=456";
- p = new UrlEncodingParser().setProperty(BEAN_ignoreUnknownBeanProperties, true);
- t = p.parse(urlencoding, O.class);
- assertEquals(123, t.foo);
-
- try {
- p = new UrlEncodingParser();
- t = p.parse(json, O.class);
- fail("Expected exception never occurred");
- } catch (Exception e) {
- // Good.
- }
-
- }
-
- public static class O {
- public int foo;
- }
-
- //====================================================================================================
- // testPropertyNameFactoryDashedLC1
- //====================================================================================================
- @Test
- public void testPropertyNameFactoryDashedLC1() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
- BeanMap<P1> m = bc.newBeanMap(P1.class).load("{'foo':1,'bar-baz':2,'bing-boo-url':3}");
- assertEquals(1, m.get("foo"));
- assertEquals(2, m.get("bar-baz"));
- assertEquals(3, m.get("bing-boo-url"));
- P1 b = m.getBean();
- assertEquals(1, b.foo);
- assertEquals(2, b.barBaz);
- assertEquals(3, b.bingBooURL);
- m.put("foo", 4);
- m.put("bar-baz", 5);
- m.put("bing-boo-url", 6);
- assertEquals(4, b.foo);
- assertEquals(5, b.barBaz);
- assertEquals(6, b.bingBooURL);
- }
-
- @Bean(propertyNamer=PropertyNamerDashedLC.class)
- public static class P1 {
- public int foo, barBaz, bingBooURL;
- }
-
- //====================================================================================================
- // testPropertyNameFactoryDashedLC2
- //====================================================================================================
- @Test
- public void testPropertyNameFactoryDashedLC2() throws Exception {
- BeanContext bc = BeanContext.DEFAULT_SORTED;
- BeanMap<P2> m = bc.newBeanMap(P2.class).load("{'foo-bar':1,'baz-bing':2}");
- assertEquals(1, m.get("foo-bar"));
- assertEquals(2, m.get("baz-bing"));
- P2 b = m.getBean();
- assertEquals(1, b.getFooBar());
- assertEquals(2, b.getBazBING());
- m.put("foo-bar", 3);
- m.put("baz-bing", 4);
- assertEquals(3, b.getFooBar());
- assertEquals(4, b.getBazBING());
- }
-
- @Bean(propertyNamer=PropertyNamerDashedLC.class)
- public static class P2 {
- private int fooBar, bazBING;
- public int getFooBar() {
- return fooBar;
- }
- public void setFooBar(int fooBar) {
- this.fooBar = fooBar;
- }
- public int getBazBING() {
- return bazBING;
- }
- public void setBazBING(int bazBING) {
- this.bazBING = bazBING;
- }
- }
-
- //====================================================================================================
- // testBeanWithFluentStyleSetters
- //====================================================================================================
- @Test
- public void testBeanWithFluentStyleSetters() throws Exception {
- Q2 t = new Q2();
- BeanMap m = BeanContext.DEFAULT_SORTED.forBean(t);
- m.put("f1", 1);
- m.put("f2", 2);
- m.put("f3", 3);
-
- assertSortedObjectEquals("{f1:1,f2:2,f3:0}", m);
- }
-
- public static class Q1 {}
-
- public static class Q2 extends Q1 {
- private int f1, f2, f3;
-
- public Q1 setF1(int f1) {
- this.f1 = f1;
- return this;
- }
-
- public Q2 setF2(int f2) {
- this.f2 = f2;
- return this;
- }
-
- // Shouldn't be detected as a setter.
- public String setF3(int f3) {
- this.f3 = f3;
- return null;
- }
-
- public int getF1() { return f1; }
- public int getF2() { return f2; }
- public int getF3() { return f3; }
- }
-
- //====================================================================================================
- // testCastWithNormalBean
- //====================================================================================================
- @Test
- public void testCastWithNormalBean() throws Exception {
- BeanContext bc = getBeanContext();
-
- // With _class
- ObjectMap m = new ObjectMap(bc);
- m.put("_class", R2.class.getName());
- m.put("f1", 1);
- m.put("f2", "2");
-
- R2 t = (R2)m.cast();
- assertEquals(1, t.f1);
-
- t = (R2)m.cast(R1.class);
- assertEquals(1, t.f1);
- assertEquals(2, t.f2);
-
- t = (R2)m.cast(bc.getClassMeta(R1.class));
- assertEquals(1, t.f1);
- assertEquals(2, t.f2);
-
- // Without _class
- m = new ObjectMap(bc);
- m.put("f1", 1);
- m.put("f2", "2");
-
- m = (ObjectMap)m.cast();
- assertEquals(1, t.f1);
- assertEquals(2, t.f2);
-
- t = m.cast(R2.class);
- assertEquals(1, t.f1);
- assertEquals(2, t.f2);
-
- t = m.cast(bc.getClassMeta(R2.class));
- assertEquals(1, t.f1);
- assertEquals(2, t.f2);
- }
-
- // Bean with no properties
- public static class R1 {
- public int f1;
- }
-
- public static class R2 extends R1 {
- public int f2;
- }
-
- //====================================================================================================
- // testCastWithNestedBean
- //====================================================================================================
- @Test
- public void testCastWithNestedBean() throws Exception {
- BeanContext bc = getBeanContext();
-
- // With _class
- ObjectMap m = new ObjectMap(bc);
- m.put("_class", S.class.getName());
- m.put("f1", new ObjectMap(bc).append("_class", R1.class.getName()).append("f1", 1));
-
- S t = (S)m.cast();
- assertEquals(1, t.f1.f1);
-
- t = m.cast(S.class);
- assertEquals(1, t.f1.f1);
-
- t = m.cast(bc.getClassMeta(S.class));
- assertEquals(1, t.f1.f1);
-
- // Without _class
- m = new ObjectMap(bc);
- m.put("f1", new ObjectMap(bc).append("_class", R1.class.getName()).append("f1", 1));
-
- m = (ObjectMap)m.cast();
- assertEquals(1, t.f1.f1);
-
- t = m.cast(S.class);
- assertEquals(1, t.f1.f1);
-
- t = m.cast(bc.getClassMeta(S.class));
- assertEquals(1, t.f1.f1);
- }
-
- public static class S {
- public R1 f1;
- }
-
- //====================================================================================================
- // testCastToAnotherMapType
- //====================================================================================================
- @Test
- public void testCastToAnotherMapType() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
- Map m2;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", TreeMap.class.getName());
- m.put("1", "ONE");
-
- m2 = (Map)m.cast();
- assertTrue(m2 instanceof TreeMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = m.cast(Map.class);
- assertTrue(m2 instanceof TreeMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = m.cast(bc.getClassMeta(TreeMap.class));
- assertTrue(m2 instanceof TreeMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = (Map)m.cast(bc.getMapClassMeta(TreeMap.class, Integer.class, TEnum.class));
- assertTrue(m2 instanceof TreeMap);
- Map.Entry e = (Map.Entry)m2.entrySet().iterator().next();
- assertTrue(e.getKey() instanceof Integer);
- assertTrue(e.getValue() instanceof TEnum);
- assertEquals(TEnum.ONE, m2.get(1));
-
- m2 = m.cast(bc.getClassMeta(TreeMap.class));
- assertTrue(m2 instanceof TreeMap);
- e = (Map.Entry)m2.entrySet().iterator().next();
- assertTrue(e.getKey() instanceof String);
- assertTrue(e.getValue() instanceof String);
- assertEquals("ONE", m2.get("1"));
-
- m2 = (Map)m.cast(bc.getMapClassMeta(HashMap.class, Integer.class, TEnum.class));
- assertTrue(m2 instanceof HashMap);
- e = (Map.Entry)m2.entrySet().iterator().next();
- assertTrue(e.getKey() instanceof Integer);
- assertTrue(e.getValue() instanceof TEnum);
- assertEquals(TEnum.ONE, m2.get(1));
-
- // Without _class
- m = new ObjectMap();
- m.put("1", "ONE");
-
- m2 = (ObjectMap)m.cast();
- assertTrue(m2 instanceof ObjectMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = m.cast(Map.class);
- assertTrue(m2 instanceof ObjectMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = m.cast(bc.getClassMeta(TreeMap.class));
- assertTrue(m2 instanceof TreeMap);
- assertEquals("ONE", m2.get("1"));
-
- m2 = (Map)m.cast(bc.getMapClassMeta(TreeMap.class, Integer.class, TEnum.class));
- assertTrue(m2 instanceof TreeMap);
- e = (Map.Entry)m2.entrySet().iterator().next();
- assertTrue(e.getKey() instanceof Integer);
- assertTrue(e.getValue() instanceof TEnum);
- assertEquals(TEnum.ONE, m2.get(1));
-
- m2 = m.cast(bc.getClassMeta(TreeMap.class));
- assertTrue(m2 instanceof TreeMap);
- e = (Map.Entry)m2.entrySet().iterator().next();
- assertTrue(e.getKey() instanceof String);
- assertTrue(e.getValue() instanceof String);
- assertEquals("ONE", m2.get("1"));
- }
-
- public static enum TEnum {
- ONE, TWO, THREE;
- }
-
- //====================================================================================================
- // testCastToLinkedList
- //====================================================================================================
- @Test
- public void testCastToLinkedList() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", LinkedList.class.getName());
- m.put("items", new ObjectList().append("1").append("2"));
-
- List l = (List)m.cast();
- assertTrue(l instanceof LinkedList);
- assertEquals("1", l.get(0));
-
- l = m.cast(List.class);
- assertTrue(l instanceof LinkedList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof LinkedList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertEquals("1", l.get(0));
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append("1").append("2"));
-
- l = m.cast(List.class);
- assertTrue(l instanceof ObjectList);
- assertEquals("1", l.get(0));
-
- l = m.cast(LinkedList.class);
- assertTrue(l instanceof LinkedList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof ObjectList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertEquals("1", l.get(0));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, Integer.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof Integer);
- assertEquals(1, l.get(0));
- }
-
- //====================================================================================================
- // testToLinkedListInteger - cast() to LinkedList<Integer>
- //====================================================================================================
- @Test
- public void testToLinkedListInteger() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", LinkedList.class.getName() + "<java.lang.Integer>");
- m.put("items", new ObjectList().append("1").append("2"));
-
- List l = (List)m.cast();
- assertTrue(l instanceof LinkedList);
- assertEquals(1, l.get(0));
-
- l = m.cast(List.class);
- assertTrue(l instanceof LinkedList);
- assertEquals(1, l.get(0));
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
- assertEquals(1, l.get(0));
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof LinkedList);
- assertEquals(1, l.get(0));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertEquals(1, l.get(0));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, String.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("1", l.get(0));
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append("1").append("2"));
-
- l = m.cast(List.class);
- assertTrue(l instanceof ObjectList);
- assertEquals("1", l.get(0));
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof ObjectList);
- assertEquals("1", l.get(0));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertEquals("1", l.get(0));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, Integer.class));
- assertTrue(l instanceof ObjectList);
- assertTrue(l.get(0) instanceof Integer);
- assertEquals(1, l.get(0));
- }
-
- //====================================================================================================
- // testCastToLinkedListBean - cast() to LinkedList<R1>
- //====================================================================================================
- @Test
- public void testCastToLinkedListBean() throws Exception {
- BeanContext bc = getBeanContext();
-
- // With _class
- ObjectMap m = new ObjectMap(bc);
- m.put("_class", LinkedList.class.getName() + "<"+R1.class.getName()+">");
- m.put("items", new ObjectList(bc).append("{f1:1}"));
-
- List l = (List)m.cast();
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = m.cast(List.class);
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, HashMap.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof HashMap);
- assertEquals(1, ((Map)l.get(0)).get("f1"));
-
- // Without _class
- m = new ObjectMap(bc);
- m.put("items", new ObjectList(bc).append("{f1:1}"));
-
- l = m.cast(List.class);
- assertTrue(l instanceof ObjectList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("{f1:1}", l.get(0));
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("{f1:1}", l.get(0));
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof ObjectList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("{f1:1}", l.get(0));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("{f1:1}", l.get(0));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, R1.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof R1);
- assertEquals(1, ((R1)l.get(0)).f1);
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, HashMap.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof HashMap);
- assertEquals(1, ((Map)l.get(0)).get("f1"));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, Map.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof ObjectMap);
- assertEquals(1, ((Map)l.get(0)).get("f1"));
- }
-
- //====================================================================================================
- // testCastToLinkedListUsingTransform - cast() to LinkedList<Calendar> using CalendarTransform
- //====================================================================================================
- @Test
- public void testCastToLinkedListUsingTransform() throws Exception {
- BeanContext bc = ContextFactory.create().addTransforms(CalendarTransform.ISO8601DTZ.class).getBeanContext();
-
- // With _class
- ObjectMap m = new ObjectMap(bc);
- m.put("_class", LinkedList.class.getName() + "<"+Calendar.class.getName()+">");
- m.put("items", new ObjectList().append("2001-07-04T15:30:45Z"));
-
- List l = (List)m.cast();
- assertTrue(l instanceof LinkedList);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
-
- l = m.cast(List.class);
- assertTrue(l instanceof LinkedList);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
-
- m.cast(HashSet.class);
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof LinkedList);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, String.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof String);
- assertEquals("2001-07-04T15:30:45Z", l.get(0));
-
- // Without _class
- m = new ObjectMap().setBeanContext(bc);
- m.put("items", new ObjectList().append("2001-07-04T15:30:45Z"));
-
- l = m.cast(List.class);
- assertTrue(l instanceof LinkedList);
-
- l = m.cast(ArrayList.class);
- assertTrue(l instanceof ArrayList);
-
- m.cast(HashSet.class);
-
- l = m.cast(bc.getClassMeta(List.class));
- assertTrue(l instanceof LinkedList);
-
- l = m.cast(bc.getClassMeta(ArrayList.class));
- assertTrue(l instanceof ArrayList);
-
- l = (List)m.cast(bc.getCollectionClassMeta(List.class, Calendar.class));
- assertTrue(l instanceof LinkedList);
- assertTrue(l.get(0) instanceof Calendar);
- assertEquals(2001, ((Calendar)l.get(0)).get(Calendar.YEAR));
- }
-
- //====================================================================================================
- // testCastToStringArray - cast() to String[]
- //====================================================================================================
- @Test
- public void testCastToStringArray() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", String[].class.getName());
- m.put("items", new ObjectList().append("1").append("2"));
-
- String[] l = (String[])m.cast();
- assertEquals("1", l[0]);
-
- l = m.cast(String[].class);
- assertEquals("1", l[0]);
-
- StringBuffer[] l2 = m.cast(StringBuffer[].class);
- assertEquals("1", l2[0].toString());
-
- int[] l3 = m.cast(int[].class);
- assertEquals(1, l3[0]);
-
- l = m.cast(bc.getClassMeta(String[].class));
- assertEquals("1", l[0]);
-
- l2 = m.cast(bc.getClassMeta(StringBuffer[].class));
- assertEquals("1", l2[0].toString());
-
- l3 = m.cast(bc.getClassMeta(int[].class));
- assertEquals("1", l2[0].toString());
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append("1").append("2"));
-
- l = m.cast(String[].class);
- assertEquals("1", l[0]);
-
- l = m.cast(bc.getClassMeta(String[].class));
- assertEquals("1", l[0]);
-
- l2 = m.cast(bc.getClassMeta(StringBuffer[].class));
- assertEquals("1", l[0].toString());
- }
-
- //====================================================================================================
- // testCastToIntArray - cast() to int[]
- //====================================================================================================
- @Test
- public void testCastToIntArray() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", int[].class.getName());
- m.put("items", new ObjectList().append("1").append("2"));
-
- int[] l = (int[])m.cast();
- assertEquals(1, l[0]);
-
- l = m.cast(int[].class);
- assertEquals(1, l[0]);
-
- l = m.cast(bc.getClassMeta(int[].class));
- assertEquals(1, l[0]);
-
- long[] l2;
-
- l2 = m.cast(long[].class);
- assertEquals(1, l2[0]);
-
- l2 = m.cast(bc.getClassMeta(long[].class));
- assertEquals(1, l2[0]);
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append("1").append("2"));
-
- l = m.cast(int[].class);
- assertEquals(1, l[0]);
-
- l = m.cast(bc.getClassMeta(int[].class));
- assertEquals(1, l[0]);
-
- l2 = m.cast(long[].class);
- assertEquals(1, l2[0]);
-
- l2 = m.cast(bc.getClassMeta(long[].class));
- assertEquals(1, l2[0]);
- }
-
- //====================================================================================================
- // testCastToString2dArray - cast() to String[][]
- //====================================================================================================
- @Test
- public void testCastToString2dArray() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", String[][].class.getName());
- m.put("items", new ObjectList().append(new ObjectList().append("1")).append(new ObjectList().append("2")));
-
- String[][] l = (String[][])m.cast();
- assertEquals("1", l[0][0]);
- assertEquals("2", l[1][0]);
-
- l = m.cast(String[][].class);
- assertEquals("1", l[0][0]);
-
- l = m.cast(bc.getClassMeta(String[][].class));
- assertEquals("2", l[1][0]);
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append(new ObjectList().append("1")).append(new ObjectList().append("2")));
-
- l = m.cast(String[][].class);
- assertEquals("1", l[0][0]);
-
- l = m.cast(bc.getClassMeta(String[][].class));
- assertEquals("2", l[1][0]);
- }
-
- //====================================================================================================
- // testCastToInt2dArray - cast() to int[][]
- //====================================================================================================
- @Test
- public void testCastToInt2dArray() throws Exception {
- BeanContext bc = BeanContext.DEFAULT;
-
- // With _class
- ObjectMap m = new ObjectMap();
- m.put("_class", int[][].class.getName());
- m.put("items", new ObjectList().append(new ObjectList().append("1")).append(new ObjectList().append("2")));
-
- int[][] l = (int[][])m.cast();
- assertEquals(1, l[0][0]);
- assertEquals(2, l[1][0]);
-
- l = m.cast(int[][].class);
- assertEquals(1, l[0][0]);
-
- l = m.cast(bc.getClassMeta(int[][].class));
- assertEquals(2, l[1][0]);
-
- // Without _class
- m = new ObjectMap();
- m.put("items", new ObjectList().append(new ObjectList().append("1")).append(new ObjectList().append("2")));
-
- l = m.cast(int[][].class);
- assertEquals(1, l[0][0]);
-
- l = m.cast(bc.getClassMeta(int[][].class));
- assertEquals(2, l[1][0]);
- }
-
- //====================================================================================================
- // testHiddenProperties
- //====================================================================================================
- @Test
- public void testHiddenProperties() throws Exception {
- JsonSerializer s = JsonSerializer.DEFAULT_LAX;
- BeanMeta bm = s.getBeanContext().getBeanMeta(U.class);
- assertNotNull(bm.getPropertyMeta("a"));
- assertNotNull(bm.getPropertyMeta("b"));
- assertNull(bm.getPropertyMeta("c"));
- assertNull(bm.getPropertyMeta("d"));
-
- U t = new U();
- t.a = "a";
- t.b = "b";
- String r = s.serialize(t);
- assertEquals("{a:'a',b:'b'}", r);
-
- // Make sure setters are used if present.
- t = JsonParser.DEFAULT.parse(r, U.class);
- assertEquals("b(setter)", t.b);
- }
-
- public static class U {
- public String a, b;
-
- public String getA() {
- return a;
- }
-
- public void setA(String a) {
- this.a = a;
- }
-
- @BeanIgnore
- public String getB() {
- return b;
- }
-
- public void setB(String b) {
- this.b = b+"(setter)";
- }
-
- @BeanIgnore
- public String c;
-
- @BeanIgnore
- public String getD() {
- return null;
- }
-
- @BeanIgnore
- public void setD(String d) {
- }
- }
-
- //====================================================================================================
- // testBeanPropertyOrder
- //====================================================================================================
- @Test
- public void testBeanPropertyOrder() throws Exception {
- assertObjectEquals("{a1:'1',a2:'2',a3:'3',a4:'4'}", new V2());
- assertObjectEquals("{a3:'3',a4:'4',a5:'5',a6:'6'}", new V3());
- }
-
- public static class V {
- public String a1="1", a2="2";
- }
-
- public static class V2 extends V {
- public String a3="3", a4="4";
- }
-
- @Bean(stopClass=V.class)
- public static class V3 extends V2 {
- public String a5="5", a6="6";
- }
-
- //====================================================================================================
- // testBeanMethodOrder
- //====================================================================================================
- @Test
- public void testBeanMethodOrder() throws Exception {
- assertSortedObjectEquals("{a1:'1',a2:'2',a3:'3',a4:'4'}", new W2());
- assertSortedObjectEquals("{a3:'3',a4:'4',a5:'5',a6:'6'}", new W3());
- }
-
- public static class W {
- public String getA1() {return "1";}
- public String getA2() {return "2";}
- }
-
- public static class W2 extends W {
- public String getA3() {return "3";}
- public String getA4() {return "4";}
- }
-
- @Bean(stopClass=W.class)
- public static class W3 extends W2 {
- public String getA5() {return "5";}
- public String getA6() {return "6";}
- }
-
- //====================================================================================================
- // testResourceDescription
- //====================================================================================================
- @Test
- public void testOverriddenPropertyTypes() throws Exception {
- JsonSerializer s = JsonSerializer.DEFAULT_LAX;
- JsonParser p = JsonParser.DEFAULT;
- String r;
-
- X1 t1 = X1.create();
- r = s.serialize(t1);
- assertEquals("{f1:'1',f2:'2'}", r);
- t1 = p.parse(r, X1.class);
- assertEquals("1", t1.f1);
- assertEquals("2", t1.getF2());
-
- X2 t2 = X2.create();
- r = s.serialize(t2);
- assertEquals("{f1:1,f2:2}", r);
- t2 = p.parse(r, X2.class);
- assertEquals(1, t2.f1.intValue());
- assertEquals(2, t2.getF2().intValue());
- }
-
- public static class X1 {
- public Object f1;
- private Object f2;
-
- static X1 create() {
- X1 x = new X1();
- x.f1 = "1";
- x.f2 = "2";
- return x;
- }
-
- public Object getF2() {
- return f2;
- }
-
- public void setF2(Object f2) {
- this.f2 = f2;
- }
- }
-
- public static class X2 extends X1 {
- public Integer f1;
- private Integer f2;
-
- static X2 create() {
- X2 x = new X2();
- x.f1 = 1;
- x.f2 = 2;
- return x;
- }
-
- @Override /* X1 */
- public Integer getF2() {
- return f2;
- }
-
- public void setF2(Integer f2) {
- this.f2 = f2;
- }
- }
-
- private BeanContext getBeanContext() {
- return ContextFactory.create().setClassLoader(this.getClass().getClassLoader()).getBeanContext();
- }
-
- @Test
- public void testSettingCollectionPropertyMultipleTimes() throws Exception {
-
- BeanMap m = BeanContext.DEFAULT.newBeanMap(Y.class);
- m.put("f1", new ObjectList().append("a"));
- m.put("f1", new ObjectList().append("b"));
- assertEquals("{f1=[b]}", m.toString());
- }
-
- public static class Y {
- public List<String> f1 = new LinkedList<String>();
- }
-
- //====================================================================================================
- // entrySet(false).
- //====================================================================================================
- @Test
- public void testIgnoreNulls() {
- Z z = new Z();
- BeanMap<Z> bm = BeanContext.DEFAULT.forBean(z);
-
- Iterator i = bm.getValues(false, true).iterator();
- assertFalse(i.hasNext());
-
- z.b = "";
- i = bm.getValues(false, true).iterator();
- assertTrue(i.hasNext());
- i.next();
- assertFalse(i.hasNext());
-
- i = bm.getValues(false, false).iterator();
- assertTrue(i.hasNext());
- i.next();
- assertTrue(i.hasNext());
- i.next();
- assertTrue(i.hasNext());
- i.next();
- assertFalse(i.hasNext());
- }
-
- public static class Z {
- public String a, b, c;
- }
-}
\ 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_BeanTransform.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanTransform.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanTransform.java
deleted file mode 100755
index 86eeb77..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_BeanTransform.java
+++ /dev/null
@@ -1,144 +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.annotation.*;
-import org.apache.juneau.json.*;
-import org.junit.*;
-
-public class CT_BeanTransform {
-
- //====================================================================================================
- // Test sub types
- //====================================================================================================
- @Test
- public void testSubTypes() throws Exception {
- JsonSerializer s = JsonSerializer.DEFAULT_LAX;
- JsonParser p = JsonParser.DEFAULT;
-
- A1 a1 = new A1();
- a1.f1 = "f1";
- a1.fb = new B2();
- ((B2)a1.fb).f2 = "f2";
- String r = s.serialize(a1);
- assertEquals("{subType:'A1',f0:'f0',fb:{subType:'B2',f0b:'f0b',f2:'f2'},f1:'f1'}", r);
-
- A a = p.parse(r, A.class);
- assertTrue(a instanceof A1);
- assertTrue(a.fb instanceof B2);
- assertEquals("f1", ((A1)a).f1);
- assertEquals("f2", ((B2)a.fb).f2);
-
- // Try out-of-order creation.
- r = "{f0:'f0',f1:'f1',subType:'A1',fb:{f0b:'f0b',f2:'f2',subType:'B2'}}";
- a = p.parse(r, A.class);
- assertTrue(a instanceof A1);
- assertTrue(a.fb instanceof B2);
- assertEquals("f1", ((A1)a).f1);
- assertEquals("f2", ((B2)a.fb).f2);
- }
-
- @Bean(
- subTypeProperty="subType",
- subTypes={
- @BeanSubType(type=A1.class, id="A1"),
- @BeanSubType(type=A2.class, id="A2")
- }
- )
- public static abstract class A {
- public String f0 = "f0";
- public B fb;
- }
-
- public static class A1 extends A {
- public String f1;
- }
-
- public static class A2 extends A {
- public String f2;
- }
-
- @Bean(
- subTypeProperty="subType",
- subTypes={
- @BeanSubType(type=B1.class, id="B1"),
- @BeanSubType(type=B2.class, id="B2")
- }
- )
- public static abstract class B {
- public String f0b = "f0b";
- }
-
- public static class B1 extends B {
- public String f1;
- }
-
- public static class B2 extends B {
- public String f2;
- }
-
- //====================================================================================================
- // Test parent class used as transform
- //====================================================================================================
- @Test
- public void testParentClassTransform() throws Exception {
- JsonSerializer s = new JsonSerializer.Simple().addTransforms(C1.class);
-
- C1 c1 = new C2();
- String r = s.serialize(c1);
- assertEquals("{f0:'f0'}", r);
-
- List<C1> l = new LinkedList<C1>();
- l.add(new C2());
- r = s.serialize(l);
- assertEquals("[{f0:'f0'}]", r);
- }
-
- public static class C1 {
- public String f0 = "f0";
- }
-
- public static class C2 extends C1 {
- public String f1 = "f1";
- }
-
- //====================================================================================================
- // Test non-static parent class used as transform
- //====================================================================================================
- @Test
- public void testParentClassTransform2() throws Exception {
- JsonSerializer s = new JsonSerializer.Simple().addTransforms(D1.class);
-
- D1 d1 = new D2();
- String r = s.serialize(d1);
- assertEquals("{f0:'f0'}", r);
-
- List<D1> l = new LinkedList<D1>();
- l.add(new D2());
- r = s.serialize(l);
- assertEquals("[{f0:'f0'}]", r);
- }
-
- public class D1 {
- public String f0 = "f0";
- }
-
- public class D2 extends D1 {
- public String f1 = "f1";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/df0f8689/org.apache.juneau/src/test/java/org/apache/juneau/CT_ClassMeta.java
----------------------------------------------------------------------
diff --git a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ClassMeta.java b/org.apache.juneau/src/test/java/org/apache/juneau/CT_ClassMeta.java
deleted file mode 100755
index f10a0e4..0000000
--- a/org.apache.juneau/src/test/java/org/apache/juneau/CT_ClassMeta.java
+++ /dev/null
@@ -1,281 +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.transform.*;
-import org.junit.*;
-
-@SuppressWarnings({"rawtypes","serial","hiding"})
-public class CT_ClassMeta {
-
- 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.CT_ClassMeta$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> {}
-}