You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/06/08 05:40:30 UTC
svn commit: r412641 [8/32] - in
/incubator/harmony/enhanced/classlib/trunk/modules/beans/src:
main/java/java/beans/ main/java/java/beans/beancontext/
test/java-internal/java/beans/beancontext/
test/java/org/apache/harmony/beans/tests/ test/java/org/apa...
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EncoderTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EncoderTest.java?rev=412641&r1=412640&r2=412641&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EncoderTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EncoderTest.java Wed Jun 7 20:40:24 2006
@@ -1,491 +1,491 @@
-/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed 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.harmony.beans.tests.java.beans;
-
-import java.beans.DefaultPersistenceDelegate;
-import java.beans.Encoder;
-import java.beans.ExceptionListener;
-import java.beans.Expression;
-import java.beans.PersistenceDelegate;
-import java.beans.Statement;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.Proxy;
-import java.util.List;
-
-import junit.framework.TestCase;
-import org.apache.harmony.beans.tests.java.beans.mock.MockBean4Codec;
-import org.apache.harmony.beans.tests.java.beans.mock.MockBean4CodecBadGetter;
-import org.apache.harmony.beans.tests.java.beans.mock.MockExceptionListener;
-import org.apache.harmony.beans.tests.java.beans.mock.MockFooLiYang;
-
-public class EncoderTest extends TestCase {
-
- public static void main(String[] args) throws Exception {
- // VerboseEncoder enc = new VerboseEncoder();
- // SampleBean b = new SampleBean();
- // b.setI(3);
- // b.setMyid("new name");
- // enc.writeObject(b);
- // enc.remove(b);
- // enc.writeObject(null);
-
- junit.textui.TestRunner.run(EncoderTest.class);
- }
-
- public static class VerboseEncoder extends Encoder {
-
- private PrintWriter out;
-
- private boolean ident;
-
- public VerboseEncoder() {
- this(new PrintWriter(System.out, true), true);
- }
-
- public VerboseEncoder(PrintWriter out, boolean ident) {
- this.out = out;
- this.ident = ident;
- }
-
- public Object get(Object arg0) {
- String identStr = ident ? ident() : "";
- out.println(identStr + "get()> " + arg0);
- Object result = super.get(arg0);
- out.println(identStr + "get()< " + result);
- return result;
- }
-
- public PersistenceDelegate getPersistenceDelegate(Class type) {
- PersistenceDelegate result = super.getPersistenceDelegate(type);
- return result;
- }
-
- public Object remove(Object arg0) {
- String identStr = ident ? ident() : "";
- out.println(identStr + "remove()> " + arg0);
- Object result = super.remove(arg0);
- out.println(identStr + "remove()< " + result);
- return result;
- }
-
- public void writeExpression(Expression arg0) {
- String identStr = ident ? ident() : "";
- out.println(identStr + "writeExpression()> " + string(arg0));
- super.writeExpression(arg0);
- out.println(identStr + "writeExpression()< ");
- }
-
- public void writeStatement(Statement arg0) {
- String identStr = ident ? ident() : "";
- out.println(identStr
- + new Exception().getStackTrace()[1].getClassName()
- + ".writeStatement()> " + string(arg0));
- super.writeStatement(arg0);
- out.println(identStr + "writeStatement()< ");
- }
-
- public void writeObject(Object arg0) {
- String identStr = ident ? ident() : "";
- out.println(identStr + "writeObject()> " + arg0);
- super.writeObject(arg0);
- out.println(identStr + "writeObject()< ");
- }
- }
-
- public static class VerbosePD extends DefaultPersistenceDelegate {
-
- protected void initialize(Class arg0, Object arg1, Object arg2,
- Encoder arg3) {
- System.out.println(ident() + "PDinitialize()> " + arg0 + ", "
- + arg1 + ", " + arg2);
- super.initialize(arg0, arg1, arg2, arg3);
- System.out.println(ident() + "PDinitialize()< ");
- }
-
- protected Expression instantiate(Object arg0, Encoder arg1) {
- System.out.println(ident() + "PDinstantiate()> " + arg0);
- Expression result = super.instantiate(arg0, arg1);
- System.out.println(ident() + "PDinstantiate()< " + result);
- return result;
- }
-
- protected boolean mutatesTo(Object arg0, Object arg1) {
- System.out
- .println(ident() + "PDmutatesTo()> " + arg0 + ", " + arg1);
- boolean result = super.mutatesTo(arg0, arg1);
- System.out.println(ident() + "PDmutatesTo()< " + result);
- return result;
- }
-
- public void writeObject(Object arg0, Encoder arg1) {
- System.out.println(ident() + "PDwriteObject()> " + arg0);
- super.writeObject(arg0, arg1);
- System.out.println(ident() + "PDwriteObject()< ");
- }
- }
-
- public static class SampleBean {
- String myid = "default ID";
-
- int i = 1;
-
- SampleBean ref;
-
- public String getMyid() {
- return myid;
- }
-
- public void setMyid(String myid) {
- this.myid = myid;
- }
-
- public int getI() {
- return i;
- }
-
- public void setI(int i) {
- this.i = i;
- }
-
- public SampleBean getRef() {
- return ref;
- }
-
- public void setRef(SampleBean ref) {
- this.ref = ref;
- }
-
- public String toString() {
- String superResult = super.toString();
- String addr = superResult.substring(superResult.indexOf("@"));
- return "myid=" + myid;
- }
- }
-
- public static String ident() {
- Exception ex = new Exception();
- int level = ex.getStackTrace().length;
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < level; i++) {
- buf.append(" ");
- }
- return buf.toString();
- }
-
- public static String string(Statement stat) {
- String str = "(" + stat.getTarget() + ")." + stat.getMethodName() + "(";
- Object args[] = stat.getArguments();
- for (int i = 0; i < args.length; i++) {
- if (i > 0) {
- str += ", ";
- }
- str += args[i];
- }
- str = str + ")";
- return str;
- }
-
- public static String string(Expression exp) {
- String str = "";
- try {
- str += str + exp.getValue();
- } catch (Exception e) {
- e.printStackTrace();
- }
- str += "=" + string((Statement) exp);
- return str;
- }
-
- public static class MockEncoder extends Encoder {
-
- public void writeObject(Object o) {
- super.writeObject(o);
- }
- }
-
- public void testGetExceptionListener() {
- MockEncoder enc = new MockEncoder();
- assertNotNull(enc.getExceptionListener());
-
- MockExceptionListener l = new MockExceptionListener();
- enc.setExceptionListener(l);
- assertSame(l, enc.getExceptionListener());
-
- enc.writeObject(new MockBean4CodecBadGetter());
- assertTrue(l.size() > 0);
- }
-
- public void testSetExceptionListener_Null() {
- MockEncoder enc = new MockEncoder();
- ExceptionListener l = enc.getExceptionListener();
- enc.setExceptionListener(null);
- assertSame(l, enc.getExceptionListener());
-
- ExceptionListener l2 = new MockExceptionListener();
- enc.setExceptionListener(l2);
- enc.setExceptionListener(null);
- assertSame(l.getClass(), enc.getExceptionListener().getClass());
- }
-
- public void testSetExceptionListener() {
- MockEncoder enc = new MockEncoder();
- assertNotNull(enc.getExceptionListener());
-
- MockExceptionListener l = new MockExceptionListener();
- enc.setExceptionListener(l);
- assertSame(l, enc.getExceptionListener());
-
- enc.writeObject(new MockBean4CodecBadGetter());
- assertTrue(l.size() > 0);
- }
-
- public void testWriteExpression() {
- // covered by testWriteObject()
- }
-
- public void testWriteExpression_Null() {
- MockEncoder enc = new MockEncoder();
- try {
- enc.writeExpression(null);
- fail();
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- public void testWriteStatement() {
- // covered by testWriteObject()
- }
-
- public void testWriteStatement_Null() {
- MockEncoder enc = new MockEncoder();
- try {
- enc.writeStatement(null);
- fail();
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- public void testWriteObject_Null() {
- StringWriter sbwriter = new StringWriter();
- VerboseEncoder enc = new VerboseEncoder(
- new PrintWriter(sbwriter, true), false);
- enc.writeObject(null);
- String trace = sbwriter.toString();
-
- final String LS = System.getProperty("line.separator");
- assertEquals("writeObject()> null" + LS + "writeObject()< " + LS, trace);
- }
-
- public void testWriteObject() {
- StringWriter sbwriter = new StringWriter();
- VerboseEncoder enc = new VerboseEncoder(
- new PrintWriter(sbwriter, true), false);
- SampleBean b = new SampleBean();
- b.setI(3);
- b.setMyid("new name");
- enc.writeObject(b);
- String trace = sbwriter.toString();
-
- final String LS = System.getProperty("line.separator");
- int lastIndex = 0, index = 0;
-
- index = trace
- .indexOf(
- "writeObject()> myid=new name"
- + LS
- + "get()> myid=new name"
- + LS
- + "get()< null"
- + LS
- + "remove()> myid=new name"
- + LS
- + "remove()< null"
- + LS
- + "writeExpression()> myid=new name=(class org.apache.harmony.beans.tests.java.beans.EncoderTest$SampleBean).new()"
- + LS, lastIndex);
- assertTrue(lastIndex <= index);
- lastIndex = index;
-
- index = trace
- .indexOf("writeObject()> myid=new name" + LS
- + "get()> myid=new name" + LS
- + "get()< myid=default ID" + LS
- + "writeExpression()> 3=(myid=new name).getI()" + LS,
- lastIndex);
- assertTrue(lastIndex <= index);
- lastIndex = index;
-
- index = trace.indexOf("get()> 3" + LS + "get()< 1" + LS, lastIndex);
- assertTrue(lastIndex <= index);
- lastIndex = index;
-
- index = trace.indexOf(
- "writeExpression()> new name=(myid=new name).getMyid()" + LS
- + "get()> new name" + LS + "get()< new name" + LS
- + "writeExpression()< " + LS, lastIndex);
- assertTrue(lastIndex <= index);
- lastIndex = index;
-
- index = trace.indexOf(
- "writeStatement()> (myid=new name).setMyid(new name)" + LS
- + "get()> myid=new name" + LS
- + "get()< myid=default ID" + LS + "get()> new name"
- + LS + "get()< new name" + LS + "writeStatement()< "
- + LS, lastIndex);
- assertTrue(lastIndex <= index);
- lastIndex = index;
- }
-
- public void testGetPersistenceDelegate_Null() {
- // TODO different behavior
- // MockEncoder enc = new MockEncoder();
- // PersistenceDelegate pd = enc.getPersistenceDelegate(null);
- // assertNotNull(pd);
- }
-
- public void testGetPersistenceDelegate_ArrayClass() {
- MockEncoder enc = new MockEncoder();
- PersistenceDelegate pd = enc.getPersistenceDelegate(int[].class);
- assertFalse(pd instanceof DefaultPersistenceDelegate);
- }
-
- public void testGetPersistenceDelegate_ProxyClass() {
- MockEncoder enc = new MockEncoder();
- PersistenceDelegate pd = enc.getPersistenceDelegate(Proxy
- .getProxyClass(ClassLoader.getSystemClassLoader(),
- new Class[] { List.class }));
- }
-
- public void testGetPersistenceDelegate_BeanInfo() {
- MockEncoder enc = new MockEncoder();
- PersistenceDelegate pd = enc
- .getPersistenceDelegate(MockFooLiYang.class);
- assertTrue(pd instanceof VerbosePD);
- }
-
- public void testGetPersistenceDelegate_Default() {
- MockEncoder enc = new MockEncoder();
- MockEncoder enc2 = new MockEncoder();
-
- PersistenceDelegate pd1 = enc.getPersistenceDelegate(SampleBean.class);
- assertTrue(pd1 instanceof DefaultPersistenceDelegate);
-
- PersistenceDelegate pd2 = enc.getPersistenceDelegate(SampleBean.class);
- assertTrue(pd2 instanceof DefaultPersistenceDelegate);
-
- PersistenceDelegate pd3 = enc2
- .getPersistenceDelegate(MockBean4Codec.class);
- assertTrue(pd3 instanceof DefaultPersistenceDelegate);
-
- assertSame(pd1, pd2);
- assertSame(pd1, pd3);
- }
-
- public void testSetPersistenceDelegate_Null() {
- MockEncoder enc = new MockEncoder();
- PersistenceDelegate pd = enc.getPersistenceDelegate(EncoderTest.class);
-
- try {
- enc.setPersistenceDelegate(null, pd);
- fail();
- } catch (NullPointerException e) {
- // expected
- }
-
- try {
- enc.setPersistenceDelegate(EncoderTest.class, null);
- fail();
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- public void testSetPersistenceDelegate() {
- MockEncoder enc = new MockEncoder();
- PersistenceDelegate pd = enc.getPersistenceDelegate(EncoderTest.class);
- assertTrue(pd instanceof DefaultPersistenceDelegate);
-
- enc.setPersistenceDelegate(EncoderTest.class, new VerbosePD());
- assertTrue(enc.getPersistenceDelegate(EncoderTest.class) instanceof VerbosePD);
-
- MockEncoder enc2 = new MockEncoder();
- assertTrue(enc.getPersistenceDelegate(EncoderTest.class) instanceof VerbosePD);
- }
-
- public void testGet_NullParam() {
- MockEncoder enc = new MockEncoder();
-
- assertNull(enc.get(null));
- }
-
- public void testGet_String() {
- MockEncoder enc = new MockEncoder();
-
- String str = "string";
- assertSame(str, enc.get(str));
- }
-
- public void testGet_Integer() {
- MockEncoder enc = new MockEncoder();
-
- Integer integer = new Integer(8);
- assertNull(enc.get(integer));
- enc.writeObject(integer);
- assertEquals(integer, enc.get(integer));
- assertNull(enc.get(new Integer(integer.intValue())));
-
- Double d = new Double(8);
- assertNull(enc.get(d));
- enc.writeObject(d);
- assertEquals(d, enc.get(d));
- }
-
- public void testRemove_Null() {
- MockEncoder enc = new MockEncoder();
-
- assertNull(enc.remove(null));
- }
-
- public void testRemove_String() {
- MockEncoder enc = new MockEncoder();
-
- String str = "string";
- assertSame(str, enc.get(str));
- assertNull(enc.remove(str));
-
- enc.writeObject(str);
- assertSame(str, enc.get(str));
- assertNull(enc.remove(str));
- }
-
- public void testRemove_Integer() {
- MockEncoder enc = new MockEncoder();
-
- Integer integer = new Integer(8);
- assertNull(enc.remove(integer));
-
- enc.writeObject(integer);
- assertEquals(integer, enc.get(integer));
- assertEquals(integer, enc.remove(integer));
-
- assertNull(enc.get(integer));
- assertNull(enc.remove(integer));
- }
-
-}
+/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed 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.harmony.beans.tests.java.beans;
+
+import java.beans.DefaultPersistenceDelegate;
+import java.beans.Encoder;
+import java.beans.ExceptionListener;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+import java.beans.Statement;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.reflect.Proxy;
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.harmony.beans.tests.java.beans.mock.MockBean4Codec;
+import org.apache.harmony.beans.tests.java.beans.mock.MockBean4CodecBadGetter;
+import org.apache.harmony.beans.tests.java.beans.mock.MockExceptionListener;
+import org.apache.harmony.beans.tests.java.beans.mock.MockFooLiYang;
+
+public class EncoderTest extends TestCase {
+
+ public static void main(String[] args) throws Exception {
+ // VerboseEncoder enc = new VerboseEncoder();
+ // SampleBean b = new SampleBean();
+ // b.setI(3);
+ // b.setMyid("new name");
+ // enc.writeObject(b);
+ // enc.remove(b);
+ // enc.writeObject(null);
+
+ junit.textui.TestRunner.run(EncoderTest.class);
+ }
+
+ public static class VerboseEncoder extends Encoder {
+
+ private PrintWriter out;
+
+ private boolean ident;
+
+ public VerboseEncoder() {
+ this(new PrintWriter(System.out, true), true);
+ }
+
+ public VerboseEncoder(PrintWriter out, boolean ident) {
+ this.out = out;
+ this.ident = ident;
+ }
+
+ public Object get(Object arg0) {
+ String identStr = ident ? ident() : "";
+ out.println(identStr + "get()> " + arg0);
+ Object result = super.get(arg0);
+ out.println(identStr + "get()< " + result);
+ return result;
+ }
+
+ public PersistenceDelegate getPersistenceDelegate(Class type) {
+ PersistenceDelegate result = super.getPersistenceDelegate(type);
+ return result;
+ }
+
+ public Object remove(Object arg0) {
+ String identStr = ident ? ident() : "";
+ out.println(identStr + "remove()> " + arg0);
+ Object result = super.remove(arg0);
+ out.println(identStr + "remove()< " + result);
+ return result;
+ }
+
+ public void writeExpression(Expression arg0) {
+ String identStr = ident ? ident() : "";
+ out.println(identStr + "writeExpression()> " + string(arg0));
+ super.writeExpression(arg0);
+ out.println(identStr + "writeExpression()< ");
+ }
+
+ public void writeStatement(Statement arg0) {
+ String identStr = ident ? ident() : "";
+ out.println(identStr
+ + new Exception().getStackTrace()[1].getClassName()
+ + ".writeStatement()> " + string(arg0));
+ super.writeStatement(arg0);
+ out.println(identStr + "writeStatement()< ");
+ }
+
+ public void writeObject(Object arg0) {
+ String identStr = ident ? ident() : "";
+ out.println(identStr + "writeObject()> " + arg0);
+ super.writeObject(arg0);
+ out.println(identStr + "writeObject()< ");
+ }
+ }
+
+ public static class VerbosePD extends DefaultPersistenceDelegate {
+
+ protected void initialize(Class arg0, Object arg1, Object arg2,
+ Encoder arg3) {
+ System.out.println(ident() + "PDinitialize()> " + arg0 + ", "
+ + arg1 + ", " + arg2);
+ super.initialize(arg0, arg1, arg2, arg3);
+ System.out.println(ident() + "PDinitialize()< ");
+ }
+
+ protected Expression instantiate(Object arg0, Encoder arg1) {
+ System.out.println(ident() + "PDinstantiate()> " + arg0);
+ Expression result = super.instantiate(arg0, arg1);
+ System.out.println(ident() + "PDinstantiate()< " + result);
+ return result;
+ }
+
+ protected boolean mutatesTo(Object arg0, Object arg1) {
+ System.out
+ .println(ident() + "PDmutatesTo()> " + arg0 + ", " + arg1);
+ boolean result = super.mutatesTo(arg0, arg1);
+ System.out.println(ident() + "PDmutatesTo()< " + result);
+ return result;
+ }
+
+ public void writeObject(Object arg0, Encoder arg1) {
+ System.out.println(ident() + "PDwriteObject()> " + arg0);
+ super.writeObject(arg0, arg1);
+ System.out.println(ident() + "PDwriteObject()< ");
+ }
+ }
+
+ public static class SampleBean {
+ String myid = "default ID";
+
+ int i = 1;
+
+ SampleBean ref;
+
+ public String getMyid() {
+ return myid;
+ }
+
+ public void setMyid(String myid) {
+ this.myid = myid;
+ }
+
+ public int getI() {
+ return i;
+ }
+
+ public void setI(int i) {
+ this.i = i;
+ }
+
+ public SampleBean getRef() {
+ return ref;
+ }
+
+ public void setRef(SampleBean ref) {
+ this.ref = ref;
+ }
+
+ public String toString() {
+ String superResult = super.toString();
+ String addr = superResult.substring(superResult.indexOf("@"));
+ return "myid=" + myid;
+ }
+ }
+
+ public static String ident() {
+ Exception ex = new Exception();
+ int level = ex.getStackTrace().length;
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < level; i++) {
+ buf.append(" ");
+ }
+ return buf.toString();
+ }
+
+ public static String string(Statement stat) {
+ String str = "(" + stat.getTarget() + ")." + stat.getMethodName() + "(";
+ Object args[] = stat.getArguments();
+ for (int i = 0; i < args.length; i++) {
+ if (i > 0) {
+ str += ", ";
+ }
+ str += args[i];
+ }
+ str = str + ")";
+ return str;
+ }
+
+ public static String string(Expression exp) {
+ String str = "";
+ try {
+ str += str + exp.getValue();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ str += "=" + string((Statement) exp);
+ return str;
+ }
+
+ public static class MockEncoder extends Encoder {
+
+ public void writeObject(Object o) {
+ super.writeObject(o);
+ }
+ }
+
+ public void testGetExceptionListener() {
+ MockEncoder enc = new MockEncoder();
+ assertNotNull(enc.getExceptionListener());
+
+ MockExceptionListener l = new MockExceptionListener();
+ enc.setExceptionListener(l);
+ assertSame(l, enc.getExceptionListener());
+
+ enc.writeObject(new MockBean4CodecBadGetter());
+ assertTrue(l.size() > 0);
+ }
+
+ public void testSetExceptionListener_Null() {
+ MockEncoder enc = new MockEncoder();
+ ExceptionListener l = enc.getExceptionListener();
+ enc.setExceptionListener(null);
+ assertSame(l, enc.getExceptionListener());
+
+ ExceptionListener l2 = new MockExceptionListener();
+ enc.setExceptionListener(l2);
+ enc.setExceptionListener(null);
+ assertSame(l.getClass(), enc.getExceptionListener().getClass());
+ }
+
+ public void testSetExceptionListener() {
+ MockEncoder enc = new MockEncoder();
+ assertNotNull(enc.getExceptionListener());
+
+ MockExceptionListener l = new MockExceptionListener();
+ enc.setExceptionListener(l);
+ assertSame(l, enc.getExceptionListener());
+
+ enc.writeObject(new MockBean4CodecBadGetter());
+ assertTrue(l.size() > 0);
+ }
+
+ public void testWriteExpression() {
+ // covered by testWriteObject()
+ }
+
+ public void testWriteExpression_Null() {
+ MockEncoder enc = new MockEncoder();
+ try {
+ enc.writeExpression(null);
+ fail();
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ public void testWriteStatement() {
+ // covered by testWriteObject()
+ }
+
+ public void testWriteStatement_Null() {
+ MockEncoder enc = new MockEncoder();
+ try {
+ enc.writeStatement(null);
+ fail();
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ public void testWriteObject_Null() {
+ StringWriter sbwriter = new StringWriter();
+ VerboseEncoder enc = new VerboseEncoder(
+ new PrintWriter(sbwriter, true), false);
+ enc.writeObject(null);
+ String trace = sbwriter.toString();
+
+ final String LS = System.getProperty("line.separator");
+ assertEquals("writeObject()> null" + LS + "writeObject()< " + LS, trace);
+ }
+
+ public void testWriteObject() {
+ StringWriter sbwriter = new StringWriter();
+ VerboseEncoder enc = new VerboseEncoder(
+ new PrintWriter(sbwriter, true), false);
+ SampleBean b = new SampleBean();
+ b.setI(3);
+ b.setMyid("new name");
+ enc.writeObject(b);
+ String trace = sbwriter.toString();
+
+ final String LS = System.getProperty("line.separator");
+ int lastIndex = 0, index = 0;
+
+ index = trace
+ .indexOf(
+ "writeObject()> myid=new name"
+ + LS
+ + "get()> myid=new name"
+ + LS
+ + "get()< null"
+ + LS
+ + "remove()> myid=new name"
+ + LS
+ + "remove()< null"
+ + LS
+ + "writeExpression()> myid=new name=(class org.apache.harmony.beans.tests.java.beans.EncoderTest$SampleBean).new()"
+ + LS, lastIndex);
+ assertTrue(lastIndex <= index);
+ lastIndex = index;
+
+ index = trace
+ .indexOf("writeObject()> myid=new name" + LS
+ + "get()> myid=new name" + LS
+ + "get()< myid=default ID" + LS
+ + "writeExpression()> 3=(myid=new name).getI()" + LS,
+ lastIndex);
+ assertTrue(lastIndex <= index);
+ lastIndex = index;
+
+ index = trace.indexOf("get()> 3" + LS + "get()< 1" + LS, lastIndex);
+ assertTrue(lastIndex <= index);
+ lastIndex = index;
+
+ index = trace.indexOf(
+ "writeExpression()> new name=(myid=new name).getMyid()" + LS
+ + "get()> new name" + LS + "get()< new name" + LS
+ + "writeExpression()< " + LS, lastIndex);
+ assertTrue(lastIndex <= index);
+ lastIndex = index;
+
+ index = trace.indexOf(
+ "writeStatement()> (myid=new name).setMyid(new name)" + LS
+ + "get()> myid=new name" + LS
+ + "get()< myid=default ID" + LS + "get()> new name"
+ + LS + "get()< new name" + LS + "writeStatement()< "
+ + LS, lastIndex);
+ assertTrue(lastIndex <= index);
+ lastIndex = index;
+ }
+
+ public void testGetPersistenceDelegate_Null() {
+ // TODO different behavior
+ // MockEncoder enc = new MockEncoder();
+ // PersistenceDelegate pd = enc.getPersistenceDelegate(null);
+ // assertNotNull(pd);
+ }
+
+ public void testGetPersistenceDelegate_ArrayClass() {
+ MockEncoder enc = new MockEncoder();
+ PersistenceDelegate pd = enc.getPersistenceDelegate(int[].class);
+ assertFalse(pd instanceof DefaultPersistenceDelegate);
+ }
+
+ public void testGetPersistenceDelegate_ProxyClass() {
+ MockEncoder enc = new MockEncoder();
+ PersistenceDelegate pd = enc.getPersistenceDelegate(Proxy
+ .getProxyClass(ClassLoader.getSystemClassLoader(),
+ new Class[] { List.class }));
+ }
+
+ public void testGetPersistenceDelegate_BeanInfo() {
+ MockEncoder enc = new MockEncoder();
+ PersistenceDelegate pd = enc
+ .getPersistenceDelegate(MockFooLiYang.class);
+ assertTrue(pd instanceof VerbosePD);
+ }
+
+ public void testGetPersistenceDelegate_Default() {
+ MockEncoder enc = new MockEncoder();
+ MockEncoder enc2 = new MockEncoder();
+
+ PersistenceDelegate pd1 = enc.getPersistenceDelegate(SampleBean.class);
+ assertTrue(pd1 instanceof DefaultPersistenceDelegate);
+
+ PersistenceDelegate pd2 = enc.getPersistenceDelegate(SampleBean.class);
+ assertTrue(pd2 instanceof DefaultPersistenceDelegate);
+
+ PersistenceDelegate pd3 = enc2
+ .getPersistenceDelegate(MockBean4Codec.class);
+ assertTrue(pd3 instanceof DefaultPersistenceDelegate);
+
+ assertSame(pd1, pd2);
+ assertSame(pd1, pd3);
+ }
+
+ public void testSetPersistenceDelegate_Null() {
+ MockEncoder enc = new MockEncoder();
+ PersistenceDelegate pd = enc.getPersistenceDelegate(EncoderTest.class);
+
+ try {
+ enc.setPersistenceDelegate(null, pd);
+ fail();
+ } catch (NullPointerException e) {
+ // expected
+ }
+
+ try {
+ enc.setPersistenceDelegate(EncoderTest.class, null);
+ fail();
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ public void testSetPersistenceDelegate() {
+ MockEncoder enc = new MockEncoder();
+ PersistenceDelegate pd = enc.getPersistenceDelegate(EncoderTest.class);
+ assertTrue(pd instanceof DefaultPersistenceDelegate);
+
+ enc.setPersistenceDelegate(EncoderTest.class, new VerbosePD());
+ assertTrue(enc.getPersistenceDelegate(EncoderTest.class) instanceof VerbosePD);
+
+ MockEncoder enc2 = new MockEncoder();
+ assertTrue(enc.getPersistenceDelegate(EncoderTest.class) instanceof VerbosePD);
+ }
+
+ public void testGet_NullParam() {
+ MockEncoder enc = new MockEncoder();
+
+ assertNull(enc.get(null));
+ }
+
+ public void testGet_String() {
+ MockEncoder enc = new MockEncoder();
+
+ String str = "string";
+ assertSame(str, enc.get(str));
+ }
+
+ public void testGet_Integer() {
+ MockEncoder enc = new MockEncoder();
+
+ Integer integer = new Integer(8);
+ assertNull(enc.get(integer));
+ enc.writeObject(integer);
+ assertEquals(integer, enc.get(integer));
+ assertNull(enc.get(new Integer(integer.intValue())));
+
+ Double d = new Double(8);
+ assertNull(enc.get(d));
+ enc.writeObject(d);
+ assertEquals(d, enc.get(d));
+ }
+
+ public void testRemove_Null() {
+ MockEncoder enc = new MockEncoder();
+
+ assertNull(enc.remove(null));
+ }
+
+ public void testRemove_String() {
+ MockEncoder enc = new MockEncoder();
+
+ String str = "string";
+ assertSame(str, enc.get(str));
+ assertNull(enc.remove(str));
+
+ enc.writeObject(str);
+ assertSame(str, enc.get(str));
+ assertNull(enc.remove(str));
+ }
+
+ public void testRemove_Integer() {
+ MockEncoder enc = new MockEncoder();
+
+ Integer integer = new Integer(8);
+ assertNull(enc.remove(integer));
+
+ enc.writeObject(integer);
+ assertEquals(integer, enc.get(integer));
+ assertEquals(integer, enc.remove(integer));
+
+ assertNull(enc.get(integer));
+ assertNull(enc.remove(integer));
+ }
+
+}