Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 82427 invoked from network); 28 Jun 2006 07:23:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 28 Jun 2006 07:23:53 -0000 Received: (qmail 57673 invoked by uid 500); 28 Jun 2006 07:23:51 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 57523 invoked by uid 500); 28 Jun 2006 07:23:50 -0000 Mailing-List: contact harmony-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-commits@incubator.apache.org Received: (qmail 57357 invoked by uid 99); 28 Jun 2006 07:23:49 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Jun 2006 00:23:49 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Jun 2006 00:23:38 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id D4BDB1A984D; Wed, 28 Jun 2006 00:22:55 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r417685 [13/15] - in /incubator/harmony/enhanced/classlib/trunk/modules/beans: ./ make/ src/test/java/org/apache/harmony/beans/tests/java/beans/ src/test/java/org/apache/harmony/beans/tests/java/beans/auxiliary/ src/test/java/org/apache/har... Date: Wed, 28 Jun 2006 07:22:23 -0000 To: harmony-commits@incubator.apache.org From: mloenko@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060628072255.D4BDB1A984D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java?rev=417685&r1=417684&r2=417685&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java Wed Jun 28 00:22:12 2006 @@ -15,8 +15,6 @@ package org.apache.harmony.beans.tests.java.beans.beancontext; -import java.awt.Component; -import java.awt.Container; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; @@ -24,7 +22,6 @@ import java.beans.Visibility; import java.beans.beancontext.BeanContext; import java.beans.beancontext.BeanContextChild; -import java.beans.beancontext.BeanContextChildSupport; import java.beans.beancontext.BeanContextMembershipEvent; import java.beans.beancontext.BeanContextMembershipListener; import java.beans.beancontext.BeanContextProxy; @@ -49,18 +46,22 @@ import java.util.Locale; import junit.framework.TestCase; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContext; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextChild; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextChildS; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextDelegateS; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextMembershipListener; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextMembershipListenerS; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextProxy; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextProxyS; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockPropertyChangeListener; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockVetoChangeListener; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockVetoableChangeListener; -import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockVisibility; + +import org.apache.harmony.beans.tests.support.beancontext.MethodInvocationRecords; +import org.apache.harmony.beans.tests.support.beancontext.Utils; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContext; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextChild; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextChildS; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextDelegateS; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextMembershipListener; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextMembershipListenerS; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextProxy; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockBeanContextProxyS; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockPropertyChangeListener; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockVetoChangeListener; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockVetoableChangeListener; +import org.apache.harmony.beans.tests.support.beancontext.mock.MockVisibility; + import tests.util.SerializationTester; /** @@ -68,2074 +69,2048 @@ */ public class BeanContextSupportTest extends TestCase { - private static class MockBeanContextSupport extends BeanContextSupport { + private static class MockBeanContextSupport extends BeanContextSupport { - public transient MethodInvocationRecords records; + public transient MethodInvocationRecords records; - public transient boolean vetoAddRemove = false; + public transient boolean vetoAddRemove = false; - /** - * - */ - public MockBeanContextSupport() { - super(); - } - - /** - * @param peer - */ - public MockBeanContextSupport(BeanContext peer) { - super(peer); - } - - /** - * @param peer - * @param lcle - */ - public MockBeanContextSupport(BeanContext peer, Locale lcle) { - super(peer, lcle); - } - - /** - * @param peer - * @param lcle - * @param dtime - */ - public MockBeanContextSupport(BeanContext peer, Locale lcle, - boolean dtime) { - super(peer, lcle, dtime); - } - - /** - * @param peer - * @param lcle - * @param dTime - * @param visible - */ - public MockBeanContextSupport(BeanContext peer, Locale lcle, - boolean dTime, boolean visible) { - super(peer, lcle, dTime, visible); - } - - public ArrayList bcmListeners() { - return bcmListeners; - } - - public Iterator publicBcsChildren() { - return this.bcsChildren(); - } - - public static boolean publicClassEquals(Class c1, Class c2) { - return classEquals(c1, c2); - } - - public Object[] publicCopyChildren() { - return copyChildren(); - } - - public static BeanContextChild publicGetChildBeanContextChild( - Object child) { - return getChildBeanContextChild(child); - } - - public static BeanContextMembershipListener publicGetChildBeanContextMembershipListener( - Object child) { - return getChildBeanContextMembershipListener(child); - } - - public static PropertyChangeListener publicGetChildPropertyChangeListener( - Object child) { - return getChildPropertyChangeListener(child); - } - - public static Serializable publicGetChildSerializable(Object child) { - return getChildSerializable(child); - } - - public static VetoableChangeListener publicGetChildVetoableChangeListener( - Object child) { - return getChildVetoableChangeListener(child); - } - - public static Visibility publicGetChildVisibility(Object child) { - return getChildVisibility(child); - } - - public boolean publicRemove(Object targetChild, boolean callChildBC) { - return remove(targetChild, callChildBC); - } - - public HashMap children() { - return children; - } - - public boolean designTime() { - return designTime; - } - - public Locale locale() { - return locale; - } - - public boolean isOkToUseGui() { - return okToUseGui; - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#bcsPreDeserializationHook(java.io.ObjectInputStream) - */ - protected void bcsPreDeserializationHook(ObjectInputStream ois) - throws IOException, ClassNotFoundException { - super.bcsPreDeserializationHook(ois); - if (records == null) { - records = new MethodInvocationRecords(); - } - records.add("bcsPreDeserializationHook", ois, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#bcsPreSerializationHook(java.io.ObjectOutputStream) - */ - protected void bcsPreSerializationHook(ObjectOutputStream oos) - throws IOException { - super.bcsPreSerializationHook(oos); - records.add("bcsPreSerializationHook", oos, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#childDeserializedHook(java.lang.Object, - * java.beans.beancontext.BeanContextSupport.BCSChild) - */ - protected void childDeserializedHook(Object child, BCSChild bcsc) { - super.childDeserializedHook(child, bcsc); - records.add("childDeserializedHook", child, bcsc, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#childJustAddedHook(java.lang.Object, - * java.beans.beancontext.BeanContextSupport.BCSChild) - */ - protected void childJustAddedHook(Object child, BCSChild bcsc) { - // check lock - try { - child.wait(1); - } catch (InterruptedException e) { - // never occur - } - super.childJustAddedHook(child, bcsc); - records.add("childJustAddedHook", child, bcsc, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#childJustRemovedHook(java.lang.Object, - * java.beans.beancontext.BeanContextSupport.BCSChild) - */ - protected void childJustRemovedHook(Object child, BCSChild bcsc) { - // check lock - try { - child.wait(1); - } catch (InterruptedException e) { - // never occur - } - super.childJustRemovedHook(child, bcsc); - records.add("childJustRemovedHook", child, bcsc, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#createBCSChild(java.lang.Object, - * java.lang.Object) - */ - protected BCSChild createBCSChild(Object targetChild, Object peer) { - BCSChild result = super.createBCSChild(targetChild, peer); - records.add("createBCSChild", targetChild, peer, result); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#initialize() - */ - protected void initialize() { - super.initialize(); - if (records == null) { - records = new MethodInvocationRecords(); - } - records.add("initialize", null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent pce) { - super.propertyChange(pce); - records.add("propertyChange", pce, null); - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#validatePendingAdd(java.lang.Object) - */ - protected boolean validatePendingAdd(Object targetChild) { - boolean result = vetoAddRemove ? false : super - .validatePendingAdd(targetChild); - records.add("validatePendingAdd", targetChild, Boolean - .valueOf(result)); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.beans.beancontext.BeanContextSupport#validatePendingRemove(java.lang.Object) - */ - protected boolean validatePendingRemove(Object targetChild) { - boolean result = vetoAddRemove ? false : super - .validatePendingRemove(targetChild); - records.add("validatePendingRemove", targetChild, Boolean - .valueOf(result)); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.beans.VetoableChangeListener#vetoableChange(java.beans.PropertyChangeEvent) - */ - public void vetoableChange(PropertyChangeEvent pce) - throws PropertyVetoException { - super.vetoableChange(pce); - records.add("vetoableChange", pce, null); - } - } - - private static class BadChild implements BeanContextChild, BeanContextProxy { - - public void setBeanContext(BeanContext bc) throws PropertyVetoException { - // Auto-generated method stub - } - - public BeanContext getBeanContext() { - // Auto-generated method stub - return null; - } - - public void addPropertyChangeListener(String name, - PropertyChangeListener pcl) { - // Auto-generated method stub - } - - public void removePropertyChangeListener(String name, - PropertyChangeListener pcl) { - // Auto-generated method stub - } - - public void addVetoableChangeListener(String name, - VetoableChangeListener vcl) { - // Auto-generated method stub - } - - public void removeVetoableChangeListener(String name, - VetoableChangeListener vcl) { - // Auto-generated method stub - } - - public BeanContextChild getBeanContextProxy() { - // Auto-generated method stub - return null; - } - } - - public static void main(String[] args) { - junit.textui.TestRunner.run(BeanContextSupportTest.class); - - // MockBeanContextSupport support = new MockBeanContextSupport(); - // BeanContextChild childPeer = new MockBeanContextChild(); - // BeanContextProxy child = new MockBeanContextProxy(childPeer); - // support.add(child); - // System.out.println(support.records); - // System.out.println(support.children()); - } - - public void testAdd_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - try { - support.add(null); - fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - public void testAdd_NonBCC() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockPropertyChangeListener l2 = new MockPropertyChangeListener(); - MockVetoableChangeListener l3 = new MockVetoableChangeListener(); - support.addBeanContextMembershipListener(l1); - support.addPropertyChangeListener("children", l2); - support.addVetoableChangeListener("children", l3); - - Integer child = new Integer(1000); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - assertNull(l2.lastEvent); - assertNull(l3.lastEvent); - } - - public void testAdd_BCC() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockPropertyChangeListener l2 = new MockPropertyChangeListener(); - MockVetoableChangeListener l3 = new MockVetoableChangeListener(); - support.addBeanContextMembershipListener(l1); - support.addPropertyChangeListener("children", l2); - support.addVetoableChangeListener("children", l3); - - BeanContextChild child = new MockBeanContextChild(); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - assertNull(l2.lastEvent); - assertNull(l3.lastEvent); - - assertSame(support, child.getBeanContext()); - } - - public void testAdd_BCP() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockPropertyChangeListener l2 = new MockPropertyChangeListener(); - MockVetoableChangeListener l3 = new MockVetoableChangeListener(); - support.addBeanContextMembershipListener(l1); - support.addPropertyChangeListener("children", l2); - support.addVetoableChangeListener("children", l3); - - BeanContextChild childPeer = new MockBeanContextChild(); - BeanContextProxy child = new MockBeanContextProxy(childPeer); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, childPeer, - support.children().get(child)); - support.records.assertRecord("createBCSChild", childPeer, child, - support.children().get(childPeer)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertRecord("childJustAddedHook", childPeer, support - .children().get(childPeer), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, Arrays - .asList(new Object[] { child, childPeer })); - assertNull(l2.lastEvent); - assertNull(l3.lastEvent); - - assertSame(support, childPeer.getBeanContext()); - assertEquals(2, support.size()); - } - - public void testAdd_Exist() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - Integer child = new Integer(1000); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - support.records.clear(); - l1.clearLastEvent(); - - support.add(child); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - } - - public void testAdd_Veto() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockPropertyChangeListener l2 = new MockPropertyChangeListener(); - MockVetoableChangeListener l3 = new MockVetoableChangeListener(); - support.addBeanContextMembershipListener(l1); - support.addPropertyChangeListener("children", l2); - support.addVetoableChangeListener("children", l3); - - support.vetoAddRemove = true; - BeanContextChild child = new MockBeanContextChild(); - try { - support.add(child); - fail(); - } catch (IllegalStateException e) { - // expected - } - support.records.assertRecord("initialize", null); - support.records - .assertRecord("validatePendingAdd", child, Boolean.FALSE); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - assertNull(l2.lastEvent); - assertNull(l3.lastEvent); - - assertNull(child.getBeanContext()); - } - - public void testAddAll() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockPropertyChangeListener l2 = new MockPropertyChangeListener(); - MockVetoableChangeListener l3 = new MockVetoableChangeListener(); - support.addBeanContextMembershipListener(l1); - support.addPropertyChangeListener("children", l2); - support.addVetoableChangeListener("children", l3); - support.records.assertRecord("initialize", null); - - try { - support.addAll(Collections.EMPTY_LIST); - fail(); - } catch (UnsupportedOperationException e) { - // expected - } - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - assertNull(l2.lastEvent); - assertNull(l3.lastEvent); - } - - public void testAddBeanContextMembershipListener_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - try { - support.addBeanContextMembershipListener(null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - public void testAddBeanContextMembershipListener() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockBeanContextMembershipListener l2 = new MockBeanContextMembershipListener(); - - support.addBeanContextMembershipListener(l1); - support.addBeanContextMembershipListener(l2); - - l1.clearLastEvent(); - l2.clearLastEvent(); - Object child = new MockBeanContextChild(); - support.add(child); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - assertTrue(l2.lastEventAdd); - assertMembershipEvent(l2.lastEvent, support, null, child); - - l1.clearLastEvent(); - l2.clearLastEvent(); - support.add(child); - assertNull(l1.lastEvent); - assertNull(l2.lastEvent); - - support.removeBeanContextMembershipListener(l1); - l1.clearLastEvent(); - l2.clearLastEvent(); - support.remove(child); - assertNull(l1.lastEvent); - assertTrue(l2.lastEventRemove); - assertMembershipEvent(l2.lastEvent, support, null, child); - } - - public void testAvoidingGui() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertTrue(support.isOkToUseGui()); - assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - - support.dontUseGui(); - assertFalse(support.isOkToUseGui()); - // assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - - support.okToUseGui(); - assertTrue(support.isOkToUseGui()); - assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - } - - public void testAvoidingGui_VisibleChild() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add(new MockVisibility(true, false)); - assertFalse(support.avoidingGui()); - } - - public void testBcsChildren() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add(new Integer(1)); - support.add(new MockBeanContextChild()); - - Collection expectedChildren = support.children().values(); - Iterator it = support.publicBcsChildren(); - int count = 0; - while (it.hasNext()) { - count++; - assertTrue(expectedChildren.contains(it.next())); - } - assertEquals(count, expectedChildren.size()); - } - - public void testBcsPreDeserializationHook() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("string value"); - support.add(new Integer(129)); - support.add(Locale.CHINESE); - support.records.clear(); - - byte bytes[] = serialize(support); - support.records.assertRecord("bcsPreSerializationHook", - MethodInvocationRecords.IGNORE, null); - support.records.assertEndOfRecords(); - - MockBeanContextSupport copy = (MockBeanContextSupport) deserialize(bytes); - copy.records.assertRecord("initialize", null); - copy.records.assertRecord("bcsPreDeserializationHook", - MethodInvocationRecords.IGNORE, null); - Iterator it = support.iterator(); - while (it.hasNext()) { - Object expectedChild = it.next(); - assertTrue(copy.contains(expectedChild)); - copy.records.assertRecord("childDeserializedHook", expectedChild, - MethodInvocationRecords.IGNORE, null); - } - copy.records.assertEndOfRecords(); - } - - public void testBcsPreSerializationHook() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("string value"); - support.add(new Integer(129)); - support.add(Locale.CHINESE); - support.records.clear(); - - byte bytes[] = serialize(support); - support.records.assertRecord("bcsPreSerializationHook", - MethodInvocationRecords.IGNORE, null); - support.records.assertEndOfRecords(); - } - - /* - * Class under test for void BeanContextSupport() - */ - public void testBeanContextSupport() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertSame(support, support.getBeanContextPeer()); - assertTrue(support.bcmListeners().isEmpty()); - assertTrue(support.children().isEmpty()); - assertFalse(support.designTime()); - assertEquals(Locale.getDefault(), support.locale()); - assertTrue(support.isOkToUseGui()); - - assertTrue(support instanceof BeanContextChildSupport); - assertTrue(support instanceof BeanContext); - assertTrue(support instanceof Serializable); - assertTrue(support instanceof PropertyChangeListener); - assertTrue(support instanceof VetoableChangeListener); - } - - /* - * Class under test for void - * BeanContextSupport(java.beans.beancontext.BeanContext) - */ - public void testBeanContextSupportBeanContext() { - BeanContext ctx = new MockBeanContext(); - MockBeanContextSupport support = new MockBeanContextSupport(ctx); - - assertSame(ctx, support.getBeanContextPeer()); - assertTrue(support.bcmListeners().isEmpty()); - assertTrue(support.children().isEmpty()); - assertFalse(support.designTime()); - assertEquals(Locale.getDefault(), support.locale()); - assertTrue(support.isOkToUseGui()); - - assertTrue(support instanceof BeanContextChildSupport); - assertTrue(support instanceof BeanContext); - assertTrue(support instanceof Serializable); - assertTrue(support instanceof PropertyChangeListener); - assertTrue(support instanceof VetoableChangeListener); - } - - /* - * Class under test for void - * BeanContextSupport(java.beans.beancontext.BeanContext, java.util.Locale) - */ - public void testBeanContextSupportBeanContextLocale() { - BeanContext ctx = new MockBeanContext(); - MockBeanContextSupport support = new MockBeanContextSupport(ctx, - Locale.CANADA_FRENCH); - - assertSame(ctx, support.getBeanContextPeer()); - assertTrue(support.bcmListeners().isEmpty()); - assertTrue(support.children().isEmpty()); - assertFalse(support.designTime()); - assertEquals(Locale.CANADA_FRENCH, support.locale()); - assertTrue(support.isOkToUseGui()); - - assertTrue(support instanceof BeanContextChildSupport); - assertTrue(support instanceof BeanContext); - assertTrue(support instanceof Serializable); - assertTrue(support instanceof PropertyChangeListener); - assertTrue(support instanceof VetoableChangeListener); - } - - /* - * Class under test for void - * BeanContextSupport(java.beans.beancontext.BeanContext, java.util.Locale, - * boolean) - */ - public void testBeanContextSupportBeanContextLocaleboolean() { - BeanContext ctx = new MockBeanContext(); - MockBeanContextSupport support = new MockBeanContextSupport(ctx, - Locale.CANADA_FRENCH, true); - - assertSame(ctx, support.getBeanContextPeer()); - assertTrue(support.bcmListeners().isEmpty()); - assertTrue(support.children().isEmpty()); - assertTrue(support.designTime()); - assertEquals(Locale.CANADA_FRENCH, support.locale()); - assertTrue(support.isOkToUseGui()); - - assertTrue(support instanceof BeanContextChildSupport); - assertTrue(support instanceof BeanContext); - assertTrue(support instanceof Serializable); - assertTrue(support instanceof PropertyChangeListener); - assertTrue(support instanceof VetoableChangeListener); - } - - /* - * Class under test for void - * BeanContextSupport(java.beans.beancontext.BeanContext, java.util.Locale, - * boolean, boolean) - */ - public void testBeanContextSupportBeanContextLocalebooleanboolean() { - BeanContext ctx = new MockBeanContext(); - MockBeanContextSupport support = new MockBeanContextSupport(ctx, - Locale.CANADA_FRENCH, true, false); - - assertSame(ctx, support.getBeanContextPeer()); - assertTrue(support.bcmListeners().isEmpty()); - assertTrue(support.children().isEmpty()); - assertTrue(support.designTime()); - assertEquals(Locale.CANADA_FRENCH, support.locale()); - assertFalse(support.isOkToUseGui()); - - assertTrue(support instanceof BeanContextChildSupport); - assertTrue(support instanceof BeanContext); - assertTrue(support instanceof Serializable); - assertTrue(support instanceof PropertyChangeListener); - assertTrue(support instanceof VetoableChangeListener); - } - - public void testBeanContextSupport_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(null, null, - true, true); - assertSame(support, support.getBeanContextPeer()); - assertTrue(support.children().isEmpty()); - assertTrue(support.designTime()); - assertEquals(Locale.getDefault(), support.locale()); - assertTrue(support.isOkToUseGui()); - } - - public void testChildDeserializedHook() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("string value"); - support.add(new Integer(129)); - support.add(Locale.CHINESE); - support.records.clear(); - - byte bytes[] = serialize(support); - support.records.assertRecord("bcsPreSerializationHook", - MethodInvocationRecords.IGNORE, null); - support.records.assertEndOfRecords(); - - MockBeanContextSupport copy = (MockBeanContextSupport) deserialize(bytes); - copy.records.assertRecord("initialize", null); - copy.records.assertRecord("bcsPreDeserializationHook", - MethodInvocationRecords.IGNORE, null); - Iterator it = support.iterator(); - while (it.hasNext()) { - Object expectedChild = it.next(); - assertTrue(copy.contains(expectedChild)); - copy.records.assertRecord("childDeserializedHook", expectedChild, - MethodInvocationRecords.IGNORE, null); - } - copy.records.assertEndOfRecords(); - } - - public void testChildJustAddedHook() { - // covered by testAdd - } - - public void testChildJustRemovedHook() { - // covered by testRemove - } - - public void testClassEquals() { - assertTrue(MockBeanContextSupport.publicClassEquals(Integer.class, - Integer.class)); - assertFalse(MockBeanContextSupport.publicClassEquals(Integer.class, - Double.class)); - } - - public void testClear() { - MockBeanContextSupport support = new MockBeanContextSupport(); - try { - support.clear(); - fail(); - } catch (UnsupportedOperationException e) { - // expected - } - } - - public void testContains() { - MockBeanContextSupport support = new MockBeanContextSupport(); - Object c1 = "string value"; - Object c2 = new Integer(129); - Object c3 = new MockBeanContextChild(); - support.add(c1); - support.add(c2); - support.add(c3); - - assertTrue(support.children().containsKey(c1)); - assertTrue(support.children().containsKey(c2)); - assertTrue(support.children().containsKey(c3)); - assertFalse(support.children().containsKey(null)); - assertFalse(support.children().containsKey("xxx")); - assertEquals(3, support.children().size()); - - assertTrue(support.contains(c1)); - assertTrue(support.contains(c2)); - assertTrue(support.contains(c3)); - assertFalse(support.contains(null)); - assertFalse(support.contains("xxx")); - assertEquals(3, support.size()); - } - - public void testContainsAll() { - MockBeanContextSupport support = new MockBeanContextSupport(); - Object c1 = "string value"; - Object c2 = new Integer(129); - Object c3 = new MockBeanContextChild(); - support.add(c1); - support.add(c2); - support.add(c3); - ArrayList l = new ArrayList(); - l.add(c1); - l.add(c2); - l.add(c3); - - assertTrue(support.containsAll(l)); - l.add(null); - assertFalse(support.containsAll(l)); - } - - public void testContainsKey() { - MockBeanContextSupport support = new MockBeanContextSupport(); - Object c1 = "string value"; - Object c2 = new Integer(129); - Object c3 = new MockBeanContextChild(); - support.add(c1); - support.add(c2); - support.add(c3); - - assertTrue(support.children().containsKey(c1)); - assertTrue(support.children().containsKey(c2)); - assertTrue(support.children().containsKey(c3)); - assertFalse(support.children().containsKey(null)); - assertFalse(support.children().containsKey("xxx")); - assertEquals(3, support.children().size()); - - assertTrue(support.containsKey(c1)); - assertTrue(support.containsKey(c2)); - assertTrue(support.containsKey(c3)); - assertFalse(support.containsKey(null)); - assertFalse(support.containsKey("xxx")); - assertEquals(3, support.size()); - } - - public void testCopyChildren() { - MockBeanContextSupport support = new MockBeanContextSupport(); - Object c1 = "string value"; - Object c2 = new Integer(129); - Object c3 = new MockBeanContextChild(); - support.add(c1); - support.add(c2); - support.add(c3); - - Object children[] = support.publicCopyChildren(); - List childrenList = Arrays.asList(children); - assertEquals(3, childrenList.size()); - assertTrue(childrenList.contains(c1)); - assertTrue(childrenList.contains(c2)); - assertTrue(childrenList.contains(c3)); - } - - public void testCreateBCSChild() { - // covered by testAdd - } - - public void testDeserialize() { - // covered by testBcsPreDeserializationHook() - } - - public void testDontUseGui() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertTrue(support.isOkToUseGui()); - assertFalse(support.avoidingGui()); // always false - assertFalse(support.needsGui()); // always false - - support.dontUseGui(); - assertFalse(support.isOkToUseGui()); - // assertFalse(support.avoidingGui()); // always false? - assertFalse(support.needsGui()); // always false - } - - public void testFireChildrenAdded() { - // covered by testAdd - } - - public void testFireChildrenRemoved() { - // covered by testRemove - } - - public void testGetBeanContextPeer() { - // covered by testConstructor - } - - public void testGetChildBeanContextChild_NullParam() { - BeanContextChild result = MockBeanContextSupport - .publicGetChildBeanContextChild(null); - assertNull(result); - } - - public void testGetChildBeanContextChild_BeanContextChild() { - MockBeanContextChild child = new MockBeanContextChild(); - BeanContextChild result = MockBeanContextSupport - .publicGetChildBeanContextChild(child); - assertSame(child, result); - } - - public void testGetChildBeanContextChild_BeanContextProxy() { - MockBeanContextChild child = new MockBeanContextChild(); - MockBeanContextProxy proxy = new MockBeanContextProxy(child); - BeanContextChild result = MockBeanContextSupport - .publicGetChildBeanContextChild(proxy); - assertSame(child, result); - } - - public void testGetChildBeanContextChild_Neither() { - Integer child = new Integer(129); - BeanContextChild result = MockBeanContextSupport - .publicGetChildBeanContextChild(child); - assertNull(result); - } - - public void testGetChildBeanContextChild_Both() { - try { - MockBeanContextSupport - .publicGetChildBeanContextChild(new BadChild()); - fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - public void testGetChildBeanContextMembershipListener_NullParam() { - BeanContextMembershipListener result = MockBeanContextSupport - .publicGetChildBeanContextMembershipListener(null); - assertNull(result); - } - - public void testGetChildBeanContextMembershipListener() { - MockBeanContextMembershipListener child = new MockBeanContextMembershipListener(); - BeanContextMembershipListener result = MockBeanContextSupport - .publicGetChildBeanContextMembershipListener(child); - assertSame(child, result); - } - - public void testGetChildBeanContextMembershipListener_WrongClass() { - BeanContextMembershipListener result = MockBeanContextSupport - .publicGetChildBeanContextMembershipListener(new Integer(129)); - assertNull(result); - } - - public void testGetChildPropertyChangeListener_NullParam() { - PropertyChangeListener result = MockBeanContextSupport - .publicGetChildPropertyChangeListener(null); - assertNull(result); - } - - public void testGetChildPropertyChangeListener() { - MockBeanContextSupport child = new MockBeanContextSupport(); - PropertyChangeListener result = MockBeanContextSupport - .publicGetChildPropertyChangeListener(child); - assertSame(child, result); - } - - public void testGetChildPropertyChangeListener_WrongClass() { - PropertyChangeListener result = MockBeanContextSupport - .publicGetChildPropertyChangeListener(new Integer(129)); - assertNull(result); - } - - public void testGetChildSerializable_NullParam() { - Serializable result = MockBeanContextSupport - .publicGetChildSerializable(null); - assertNull(result); - } - - public void testGetChildSerializable() { - MockBeanContextSupport child = new MockBeanContextSupport(); - Serializable result = MockBeanContextSupport - .publicGetChildSerializable(child); - assertSame(child, result); - } - - public void testGetChildSerializable_WrongClass() { - Serializable result = MockBeanContextSupport - .publicGetChildSerializable(new BadChild()); - assertNull(result); - } - - public void testGetChildVetoableChangeListener_NullParam() { - VetoableChangeListener result = MockBeanContextSupport - .publicGetChildVetoableChangeListener(null); - assertNull(result); - } - - public void testGetChildVetoableChangeListener() { - MockBeanContextSupport child = new MockBeanContextSupport(); - VetoableChangeListener result = MockBeanContextSupport - .publicGetChildVetoableChangeListener(child); - assertSame(child, result); - } - - public void testGetChildVetoableChangeListener_WrongClass() { - VetoableChangeListener result = MockBeanContextSupport - .publicGetChildVetoableChangeListener(new Integer(129)); - assertNull(result); - } - - public void testGetChildVisibility_NullParam() { - Visibility result = MockBeanContextSupport - .publicGetChildVisibility(null); - assertNull(result); - } - - public void testGetChildVisibility() { - MockBeanContextSupport child = new MockBeanContextSupport(); - Visibility result = MockBeanContextSupport - .publicGetChildVisibility(child); - assertSame(child, result); - } - - public void testGetChildVisibility_WrongClass() { - Visibility result = MockBeanContextSupport - .publicGetChildVisibility(new Integer(129)); - assertNull(result); - } - - public void testGetLocale() throws PropertyVetoException { - BeanContext ctx = new MockBeanContext(); - MockBeanContextSupport support = new MockBeanContextSupport(ctx, - Locale.CANADA_FRENCH); - - assertSame(Locale.CANADA_FRENCH, support.getLocale()); - - support.setLocale(Locale.CHINA); - assertSame(Locale.CHINA, support.getLocale()); - } - - public void testGetResource_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - try { - support.getResource(null, child); - fail(); - } catch (NullPointerException e) { - // expected - } - - try { - support.getResource("", null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - public void testGetResource_NonChild() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - - try { - URL url = support.getResource("", child); - fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - public void testGetResource_NotExist() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - URL url = support.getResource( - "org/apache/harmony/beans/tests/java/beans/beancontext/mock/nonexist", child); - assertNull(url); - } - - public void testGetResource() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - final String RESOURCE_NAME = "org/apache/harmony/beans/tests/java/beans/beancontext/mock/mockdata.txt"; - URL url = support.getResource(RESOURCE_NAME, child); - assertTrue(url.toString().endsWith(RESOURCE_NAME)); - } - - public void testGetResourceAsStream_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - try { - support.getResourceAsStream(null, child); - fail(); - } catch (NullPointerException e) { - // expected - } - - try { - support.getResourceAsStream("", null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - public void testGetResourceAsStream_NonChild() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - - try { - InputStream ins = support.getResourceAsStream("", child); - fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - public void testGetResourceAsStream_NotExist() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - InputStream ins = support.getResourceAsStream( - "org/apache/harmony/beans/tests/java/beans/beancontext/mock/nonexist", child); - assertNull(ins); - } - - public void testGetResourceAsStream() throws IOException { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextChild child = new MockBeanContextChild(); - support.add(child); - - final String RESOURCE_NAME = "org/apache/harmony/beans/tests/java/beans/beancontext/mock/mockdata.txt"; - InputStream ins = support.getResourceAsStream(RESOURCE_NAME, child); - assertEquals("mockdata", new BufferedReader(new InputStreamReader(ins)) - .readLine()); - ins.close(); - } - - public void testInitialize() { - // covered by other testcases - } - - public void testInstantiateChild_NullParam() throws IOException, - ClassNotFoundException { - MockBeanContextSupport support = new MockBeanContextSupport(); - - try { - support.instantiateChild(null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - public void testInstantiateChild() throws IOException, - ClassNotFoundException { - MockBeanContextSupport support = new MockBeanContextSupport(); - - MockBeanContextChild child = (MockBeanContextChild) support - .instantiateChild("org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockBeanContextChild"); - assertTrue(support.contains(child)); - assertEquals(1, support.size()); - } - - public void testIsDesignTime() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertFalse(support.isDesignTime()); - - support.setDesignTime(true); - assertTrue(support.isDesignTime()); - } - - public void testIsEmpty() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertTrue(support.isEmpty()); - - support.add("a child"); - assertFalse(support.isEmpty()); - } - - public void testIsSerializing() { - MockBeanContextSupport support = new MockBeanContextSupport(); - assertFalse(support.isSerializing()); - } - - public void testIterator() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("string value"); - support.add(new Integer(129)); - support.add(Locale.CHINESE); - - Iterator iter = support.iterator(); - for (int i = 0; i < 3; i++) { - assertTrue(support.contains(iter.next())); - iter.remove(); - } - assertFalse(iter.hasNext()); - assertEquals(3, support.size()); - } - - public void testNeedsGui_NoVisibleChild() { - MockBeanContextSupport support = new MockBeanContextSupport(); - assertFalse(support.needsGui()); - - support.add("a child"); - assertFalse(support.needsGui()); - - support.add(new MockBeanContextChild()); - assertFalse(support.needsGui()); - } - - public void testNeedsGui_ComponentChild() { - /* - * MockBeanContextSupport support = new MockBeanContextSupport(); - * assertFalse(support.needsGui()); - * - * Component child = new Component() {/* mock - */ - // }; - /* - * support.add(child); assertTrue(support.needsGui()); - */ - } - - public void testNeedsGui_ContainerChild() { - // MockBeanContextSupport support = new MockBeanContextSupport(); - // assertFalse(support.needsGui()); - // - // Container child = new Container() {/* mock */ - // }; - // support.add(child); - // assertTrue(support.needsGui()); - } - - public void testNeedsGui_VisibilityChild() { - MockBeanContextSupport support = new MockBeanContextSupport(); - assertFalse(support.needsGui()); - - Visibility child = new MockVisibility(false, true); - support.add(child); - assertTrue(support.needsGui()); - } - - public void testNeedsGui_VisiblePeer() { - // MockBeanContextSupport peer = new MockBeanContextSupport(); - // peer.add(new Container() {/* mock */ - // }); - // MockBeanContextSupport support = new MockBeanContextSupport(peer); - // - // assertTrue(support.needsGui()); - } - - public void testOkToUseGui() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - assertTrue(support.isOkToUseGui()); - assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - - support.dontUseGui(); - assertFalse(support.isOkToUseGui()); - // assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - - support.okToUseGui(); - assertTrue(support.isOkToUseGui()); - assertFalse(support.avoidingGui()); - assertFalse(support.needsGui()); - } - - public void testPropertyChange() throws PropertyVetoException { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockPropertyChangeListener l1 = new MockPropertyChangeListener(); - support.addPropertyChangeListener("locale", l1); - support.records.assertRecord("initialize", null); - - support.setLocale(Locale.ITALY); - support.records.assertEndOfRecords(); - assertSame(support, l1.lastEvent.getSource()); - assertSame(Locale.getDefault(), l1.lastEvent.getOldValue()); - assertSame(Locale.ITALY, l1.lastEvent.getNewValue()); - - support.addPropertyChangeListener("locale", support); - support.setLocale(Locale.CANADA); - PropertyChangeEvent evt = (PropertyChangeEvent) support.records - .getArg(0); - assertSame(support, evt.getSource()); - assertSame(Locale.ITALY, l1.lastEvent.getOldValue()); - assertSame(Locale.CANADA, l1.lastEvent.getNewValue()); - support.records.assertRecord("propertyChange", evt, null); - support.records.assertEndOfRecords(); - } - - public void testReadChildren() throws PropertyVetoException, IOException, - ClassNotFoundException { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.setLocale(Locale.ITALY); - support.add("string value"); - support.add(new Integer(129)); - support.add(Locale.CHINESE); - - byte data[] = null; - ByteArrayOutputStream bout = new ByteArrayOutputStream(); - ObjectOutputStream oout = new ObjectOutputStream(bout); - support.writeChildren(oout); - oout.close(); - data = bout.toByteArray(); - support.records.clear(); - - ByteArrayInputStream bin = new ByteArrayInputStream(data); - ObjectInputStream oin = new ObjectInputStream(bin); - support.readChildren(oin); - oin.close(); - - Iterator it = support.iterator(); - while (it.hasNext()) { - Object expectedChild = it.next(); - support.records.assertRecord("childDeserializedHook", - expectedChild, MethodInvocationRecords.IGNORE, null); - } - assertEquals(3, support.size()); - support.records.assertEndOfRecords(); - } - - public void testRemoveAll() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.records.assertRecord("initialize", null); - try { - support.removeAll(Collections.EMPTY_LIST); - } catch (UnsupportedOperationException e) { - // expected - } - support.records.assertEndOfRecords(); - } - - public void testRemoveBeanContextMembershipListener_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - try { - support.removeBeanContextMembershipListener(null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - public void testRemoveBeanContextMembershipListener() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - MockBeanContextMembershipListener l2 = new MockBeanContextMembershipListener(); - - support.addBeanContextMembershipListener(l1); - support.addBeanContextMembershipListener(l2); - - l1.clearLastEvent(); - l2.clearLastEvent(); - Object child = new MockBeanContextChild(); - support.add(child); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - assertTrue(l2.lastEventAdd); - assertMembershipEvent(l2.lastEvent, support, null, child); - - support.removeBeanContextMembershipListener(l1); - l1.clearLastEvent(); - l2.clearLastEvent(); - support.remove(child); - assertNull(l1.lastEvent); - assertTrue(l2.lastEventRemove); - assertMembershipEvent(l2.lastEvent, support, null, child); - - support.removeBeanContextMembershipListener(l1); - l1.clearLastEvent(); - l2.clearLastEvent(); - support.remove(child); - assertNull(l1.lastEvent); - assertNull(l2.lastEvent); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - try { - support.remove(null); - fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_NonBCC() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - Integer child = new Integer(1000); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - support.remove(child); - support.records.assertRecord("validatePendingRemove", child, - Boolean.TRUE); - support.records.assertRecord("childJustRemovedHook", child, bcsChild, - null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventRemove); - assertMembershipEvent(l1.lastEvent, support, null, child); - - assertEquals(0, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_BCC() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - BeanContextChild child = new MockBeanContextChild(); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - support.remove(child); - support.records.assertRecord("validatePendingRemove", child, - Boolean.TRUE); - support.records.assertRecord("childJustRemovedHook", child, bcsChild, - null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventRemove); - assertMembershipEvent(l1.lastEvent, support, null, child); - - assertNull(child.getBeanContext()); - assertEquals(0, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_BCP() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - BeanContextChild childPeer = new MockBeanContextChild(); - BeanContextProxy child = new MockBeanContextProxy(childPeer); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, childPeer, - support.children().get(child)); - support.records.assertRecord("createBCSChild", childPeer, child, - support.children().get(childPeer)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertRecord("childJustAddedHook", childPeer, support - .children().get(childPeer), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, Arrays - .asList(new Object[] { child, childPeer })); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - Object bcsChildPeer = support.children().get(childPeer); - support.remove(child); - support.records.assertRecord("validatePendingRemove", child, - Boolean.TRUE); - support.records.assertRecord("childJustRemovedHook", child, bcsChild, - null); - support.records.assertRecord("childJustRemovedHook", childPeer, - bcsChildPeer, null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventRemove); - assertMembershipEvent(l1.lastEvent, support, null, Arrays - .asList(new Object[] { child, childPeer })); - - assertNull(childPeer.getBeanContext()); - assertEquals(0, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_BCP2() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - BeanContextChild childPeer = new MockBeanContextChild(); - BeanContextProxy child = new MockBeanContextProxy(childPeer); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, childPeer, - support.children().get(child)); - support.records.assertRecord("createBCSChild", childPeer, child, - support.children().get(childPeer)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertRecord("childJustAddedHook", childPeer, support - .children().get(childPeer), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, Arrays - .asList(new Object[] { child, childPeer })); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - Object bcsChildPeer = support.children().get(childPeer); - support.remove(childPeer); - support.records.assertRecord("validatePendingRemove", childPeer, - Boolean.TRUE); - support.records.assertRecord("childJustRemovedHook", childPeer, - bcsChildPeer, null); - support.records.assertRecord("childJustRemovedHook", child, bcsChild, - null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventRemove); - assertMembershipEvent(l1.lastEvent, support, null, Arrays - .asList(new Object[] { child, childPeer })); - - assertNull(childPeer.getBeanContext()); - assertEquals(0, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_NonExist() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - support.remove(new MockBeanContextChild()); - support.records.assertRecord("initialize", null); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - - assertEquals(0, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object) - */ - public void testRemoveObject_Veto() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - BeanContextChild child = new MockBeanContextChild(); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - support.vetoAddRemove = true; - try { - support.remove(child); - fail(); - } catch (IllegalStateException e) { - // expected - } - support.records.assertRecord("validatePendingRemove", child, - Boolean.FALSE); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - - assertSame(support, child.getBeanContext()); - assertEquals(1, support.size()); - } - - /* - * Class under test for boolean remove(java.lang.Object, boolean) - */ - public void testRemoveObjectboolean() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); - support.addBeanContextMembershipListener(l1); - - BeanContextChild child = new MockBeanContextChild(); - support.add(child); - support.records.assertRecord("initialize", null); - support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); - support.records.assertRecord("createBCSChild", child, null, support - .children().get(child)); - support.records.assertRecord("childJustAddedHook", child, support - .children().get(child), null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventAdd); - assertMembershipEvent(l1.lastEvent, support, null, child); - support.records.clear(); - l1.clearLastEvent(); - - Object bcsChild = support.children().get(child); - support.publicRemove(child, false); // don't call child's setBeanContext - support.records.assertRecord("validatePendingRemove", child, - Boolean.TRUE); - support.records.assertRecord("childJustRemovedHook", child, bcsChild, - null); - support.records.assertEndOfRecords(); - assertTrue(l1.lastEventRemove); - assertMembershipEvent(l1.lastEvent, support, null, child); - - assertSame(support, child.getBeanContext()); - assertEquals(0, support.size()); - } - - public void testRetainAll() { - MockBeanContextSupport support = new MockBeanContextSupport(); - try { - support.retainAll(Collections.EMPTY_LIST); - fail(); - } catch (UnsupportedOperationException e) { - // expected - } - } - - public void testSerialize() { - // covered by testBcsPreSerializationHook - } - - public void testSetDesignTime() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockPropertyChangeListener l1 = new MockPropertyChangeListener(); - MockVetoableChangeListener l2 = new MockVetoableChangeListener(); - support.addPropertyChangeListener("designTime", l1); - support.addVetoableChangeListener("designTime", l2); - assertFalse(support.isDesignTime()); - support.records.assertRecord("initialize", null); - support.records.assertEndOfRecords(); - - support.setDesignTime(true); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - assertNull(l2.lastEvent); - } - - public void testSetLocale_NullParam() throws PropertyVetoException { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.setLocale(Locale.ITALY); - assertSame(Locale.ITALY, support.getLocale()); - support.records.assertRecord("initialize", null); - support.records.assertEndOfRecords(); - - support.setLocale(null); - assertSame(Locale.ITALY, support.getLocale()); - support.records.assertEndOfRecords(); - } - - public void testSetLocale() throws PropertyVetoException { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockPropertyChangeListener l1 = new MockPropertyChangeListener(); - MockVetoableChangeListener l2 = new MockVetoableChangeListener(); - support.addPropertyChangeListener("locale", l1); - support.addVetoableChangeListener("locale", l2); - assertSame(Locale.getDefault(), support.getLocale()); - support.records.assertRecord("initialize", null); - support.records.assertEndOfRecords(); - - support.setLocale(Locale.ITALY); - assertSame(Locale.ITALY, support.getLocale()); - support.records.assertEndOfRecords(); - assertSame(support, l1.lastEvent.getSource()); - assertEquals("locale", l1.lastEvent.getPropertyName()); - assertEquals(Locale.getDefault(), l1.lastEvent.getOldValue()); - assertEquals(Locale.ITALY, l1.lastEvent.getNewValue()); - assertSame(support, l2.lastEvent.getSource()); - assertEquals("locale", l2.lastEvent.getPropertyName()); - assertEquals(Locale.getDefault(), l2.lastEvent.getOldValue()); - assertEquals(Locale.ITALY, l2.lastEvent.getNewValue()); - } - - public void testSetLocale_Veto() { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockPropertyChangeListener l1 = new MockPropertyChangeListener(); - MockVetoChangeListener l2 = new MockVetoChangeListener(); - support.addPropertyChangeListener("locale", l1); - support.addVetoableChangeListener("locale", l2); - assertSame(Locale.getDefault(), support.getLocale()); - support.records.assertRecord("initialize", null); - support.records.assertEndOfRecords(); - - try { - support.setLocale(Locale.ITALY); - fail(); - } catch (PropertyVetoException e) { - // expected - } - assertSame(Locale.getDefault(), support.getLocale()); - support.records.assertEndOfRecords(); - assertNull(l1.lastEvent); - assertSame(support, l2.lastEvent.getSource()); - assertEquals("locale", l2.lastEvent.getPropertyName()); - assertEquals(Locale.getDefault(), l2.lastEvent.getNewValue()); - assertEquals(Locale.ITALY, l2.lastEvent.getOldValue()); - } - - public void testSize() { - // covered by other testcases - } - - /* - * Class under test for java.lang.Object[] toArray() - */ - public void testToArray() { - MockBeanContextSupport support = new MockBeanContextSupport(); - - Object[] array = support.toArray(); - assertEquals(0, array.length); - - support.add(new Integer(1000)); - support.add("a child"); - support.add(new MockBeanContextChild()); - array = support.toArray(); - assertEquals(3, array.length); - int count = 0; - for (int i = 0; i < array.length; i++) { - if (array[i] instanceof Integer) { - assertEquals(new Integer(1000), array[i]); - count += 1; - } - if (array[i] instanceof String) { - assertEquals("a child", array[i]); - count += 2; - } - if (array[i] instanceof MockBeanContextChild) { - count += 4; - } - } - assertEquals(7, count); - } - - /* - * Class under test for java.lang.Object[] toArray(java.lang.Object[]) - */ - public void testToArrayObjectArray_NullParam() { - MockBeanContextSupport support = new MockBeanContextSupport(); - try { - support.toArray(null); - fail(); - } catch (NullPointerException e) { - // expected - } - } - - /* - * Class under test for java.lang.Object[] toArray(java.lang.Object[]) - */ - public void testToArrayObjectArray_WrongType() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("a"); - support.add("b"); - support.add("c"); - try { - support.toArray(new Integer[0]); - fail(); - } catch (ArrayStoreException e) { - // expected - } - } - - /* - * Class under test for java.lang.Object[] toArray(java.lang.Object[]) - */ - public void testToArrayObjectArray_LesserLength() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("a"); - support.add("b"); - support.add("c"); - String in[] = new String[] { "1" }; - String out[] = (String[]) support.toArray(in); - assertNotSame(in, out); - List expected = Arrays.asList(new String[] { "a", "b", "c" }); - assertEquals(expected.size(), out.length); - for (int i = 0; i < out.length; i++) { - assertTrue(expected.contains(out[i])); - } - } - - /* - * Class under test for java.lang.Object[] toArray(java.lang.Object[]) - */ - public void testToArrayObjectArray_RightLength() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("a"); - support.add("b"); - support.add("c"); - String in[] = new String[3]; - String out[] = (String[]) support.toArray(in); - assertSame(in, out); - List expected = Arrays.asList(new String[] { "a", "b", "c" }); - assertEquals(expected.size(), out.length); - for (int i = 0; i < out.length; i++) { - assertTrue(expected.contains(out[i])); - } - } - - /* - * Class under test for java.lang.Object[] toArray(java.lang.Object[]) - */ - public void testToArrayObjectArray_GreaterLength() { - MockBeanContextSupport support = new MockBeanContextSupport(); - support.add("a"); - support.add("b"); - support.add("c"); - String in[] = new String[5]; - String out[] = (String[]) support.toArray(in); - assertSame(in, out); - List expected = Arrays.asList(new String[] { "a", "b", "c" }); - for (int i = 0; i < expected.size(); i++) { - assertTrue(expected.contains(out[i])); - } - assertNull(out[3]); - assertNull(out[4]); - } - - public void testValidatePendingAdd() { - // coverd by testAdd - } - - public void testValidatePendingRemove() { - // coverd by testRemove - } - - public void testVetoableChange() throws PropertyVetoException { - MockBeanContextSupport support = new MockBeanContextSupport(); - MockVetoableChangeListener l1 = new MockVetoableChangeListener(); - support.addVetoableChangeListener("locale", l1); - support.records.assertRecord("initialize", null); - - support.setLocale(Locale.ITALY); - support.records.assertEndOfRecords(); - assertSame(support, l1.lastEvent.getSource()); - assertSame(Locale.getDefault(), l1.lastEvent.getOldValue()); - assertSame(Locale.ITALY, l1.lastEvent.getNewValue()); - - support.addVetoableChangeListener("locale", support); - support.setLocale(Locale.CANADA); - PropertyChangeEvent evt = (PropertyChangeEvent) support.records - .getArg(0); - assertSame(support, evt.getSource()); - assertEquals("locale", evt.getPropertyName()); - assertSame(Locale.ITALY, l1.lastEvent.getOldValue()); - assertSame(Locale.CANADA, l1.lastEvent.getNewValue()); - support.records.assertRecord("vetoableChange", evt, null); - support.records.assertEndOfRecords(); - } - - public void testWriteChildren() { - // covered by testReadChildren() - } - - public void testSerialization_NoPeer() throws IOException, - ClassNotFoundException { - BeanContextSupport support = new BeanContextSupport(null, Locale.ITALY, - true, true); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l2")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l3")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support.add("abcd"); - support.add(new MockBeanContextChild()); - support.add(new MockBeanContextChildS("a child")); - support.add(new MockBeanContextChild()); - support.add("1234"); - support.add(new MockBeanContextProxyS("proxy", - new MockBeanContextChildS("b child"))); - - assertEqualsSerially(support, (BeanContextSupport) SerializationTester - .getDeserilizedObject(support)); - } - - public void testSerialization_Peer() throws IOException, - ClassNotFoundException { - MockBeanContextDelegateS mock = new MockBeanContextDelegateS("main id"); - BeanContextSupport support = mock.support; - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l2")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l3")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support.add("abcd"); - support.add(new MockBeanContextChild()); - support.add(new MockBeanContextChildS("a child")); - support.add(new MockBeanContextChild()); - support.add("1234"); - support.add(new MockBeanContextProxyS("proxy", - new MockBeanContextChildS("b child"))); - - MockBeanContextDelegateS serMock = (MockBeanContextDelegateS) SerializationTester - .getDeserilizedObject(mock); - assertEquals(mock.id, serMock.id); - assertSame(mock, mock.support.beanContextChildPeer); - assertSame(serMock, serMock.support.beanContextChildPeer); - assertEqualsSerially(mock.support, serMock.support); - } - - public void testSerialization_Compatibility() throws Exception { - MockBeanContextDelegateS mock = new MockBeanContextDelegateS("main id"); - BeanContextSupport support = mock.support; - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l2")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListenerS( - "l3")); - support - .addBeanContextMembershipListener(new MockBeanContextMembershipListener()); - support.add("abcd"); - support.add(new MockBeanContextChild()); - support.add(new MockBeanContextChildS("a child")); - support.add(new MockBeanContextChild()); - support.add("1234"); - - MockBeanContextDelegateS serMock = (MockBeanContextDelegateS) SerializationTester - .readObject(mock, - "serialization/java/beans/beancontext/BeanContextSupport.ser"); - assertEquals(mock.id, serMock.id); - assertSame(mock, mock.support.beanContextChildPeer); - assertSame(serMock, serMock.support.beanContextChildPeer); - assertEqualsSerially(mock.support, serMock.support); - } - - private byte[] serialize(Serializable obj) { - try { - ByteArrayOutputStream bout = new ByteArrayOutputStream(); - ObjectOutputStream oout = new ObjectOutputStream(bout); - oout.writeObject(obj); - oout.close(); - return bout.toByteArray(); - } catch (IOException e) { - e.printStackTrace(); - throw new RuntimeException(); - } - } - - private Object deserialize(byte[] bytes) { - try { - ByteArrayInputStream bin = new ByteArrayInputStream(bytes); - ObjectInputStream oin = new ObjectInputStream(bin); - Object result = oin.readObject(); - oin.close(); - return result; - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(); - } - } - - private void assertMembershipEvent(BeanContextMembershipEvent evt, - BeanContext ctx, BeanContext pFrom, Object changes) { - assertSame(ctx, evt.getSource()); - assertSame(ctx, evt.getBeanContext()); - assertSame(pFrom, evt.getPropagatedFrom()); - if (changes instanceof Collection) { - Collection changeCollection = (Collection) changes; - assertEquals(changeCollection.size(), evt.size()); - for (Iterator iter = changeCollection.iterator(); iter.hasNext();) { - assertTrue(evt.contains(iter.next())); - } - } else { - assertEquals(1, evt.size()); - assertTrue(evt.contains(changes)); - } - } - - public static void assertEqualsSerially(BeanContextSupport orig, - BeanContextSupport ser) { - - // check bcmListeners - ArrayList origBcmListeners = (ArrayList) Utils.getField(orig, - "bcmListeners"); - ArrayList serBcmListeners = (ArrayList) Utils.getField(ser, - "bcmListeners"); - int i = 0, j = 0; - while (i < origBcmListeners.size()) { - Object l1 = origBcmListeners.get(i); - if (l1 instanceof Serializable) { - Object l2 = serBcmListeners.get(j); - assertSame(l1.getClass(), l2.getClass()); - if (l1 instanceof MockBeanContextMembershipListenerS) { - assertEquals(((MockBeanContextMembershipListenerS) l1).id, - ((MockBeanContextMembershipListenerS) l2).id); - } - j++; - } - i++; - } - assertEquals(j, serBcmListeners.size()); - - // check children - HashMap origChildren = (HashMap) Utils.getField(orig, "children"); - HashMap serChildren = (HashMap) Utils.getField(ser, "children"); - int count = 0; - for (Iterator iter = origChildren.keySet().iterator(); iter.hasNext();) { - Object child = iter.next(); - if (child instanceof Serializable) { - if (child instanceof String) { - assertTrue(serChildren.containsKey(child)); - } - if (child instanceof MockBeanContextChildS) { - assertTrue(serChildren.containsKey(child)); - MockBeanContextChildS serChild = (MockBeanContextChildS) Utils - .getField(serChildren.get(child), "child"); - assertSame(ser.getBeanContextPeer(), serChild - .getBeanContext()); - } - if (child instanceof MockBeanContextProxyS) { - assertTrue(serChildren.containsKey(child)); - } - count++; - } - } - assertEquals(count, serChildren.size()); - - // check other fields - assertEquals(Utils.getField(orig, "locale"), Utils.getField(ser, - "locale")); - assertEquals(Utils.getField(orig, "okToUseGui"), Utils.getField(ser, - "okToUseGui")); - assertEquals(Utils.getField(orig, "designTime"), Utils.getField(ser, - "designTime")); - } + /** + * + */ + public MockBeanContextSupport() { + super(); + } + + /** + * @param peer + */ + public MockBeanContextSupport(BeanContext peer) { + super(peer); + } + + /** + * @param peer + * @param lcle + */ + public MockBeanContextSupport(BeanContext peer, Locale lcle) { + super(peer, lcle); + } + + /** + * @param peer + * @param lcle + * @param dtime + */ + public MockBeanContextSupport(BeanContext peer, Locale lcle, + boolean dtime) { + super(peer, lcle, dtime); + } + + /** + * @param peer + * @param lcle + * @param dTime + * @param visible + */ + public MockBeanContextSupport(BeanContext peer, Locale lcle, + boolean dTime, boolean visible) { + super(peer, lcle, dTime, visible); + } + + public ArrayList bcmListeners() { + return bcmListeners; + } + + public Iterator publicBcsChildren() { + return this.bcsChildren(); + } + + public static boolean publicClassEquals(Class c1, Class c2) { + return classEquals(c1, c2); + } + + public Object[] publicCopyChildren() { + return copyChildren(); + } + + public static BeanContextChild publicGetChildBeanContextChild( + Object child) { + return getChildBeanContextChild(child); + } + + public static BeanContextMembershipListener publicGetChildBeanContextMembershipListener( + Object child) { + return getChildBeanContextMembershipListener(child); + } + + public static PropertyChangeListener publicGetChildPropertyChangeListener( + Object child) { + return getChildPropertyChangeListener(child); + } + + public static Serializable publicGetChildSerializable(Object child) { + return getChildSerializable(child); + } + + public static VetoableChangeListener publicGetChildVetoableChangeListener( + Object child) { + return getChildVetoableChangeListener(child); + } + + public static Visibility publicGetChildVisibility(Object child) { + return getChildVisibility(child); + } + + public boolean publicRemove(Object targetChild, boolean callChildBC) { + return remove(targetChild, callChildBC); + } + + public HashMap children() { + return children; + } + + public boolean designTime() { + return designTime; + } + + public Locale locale() { + return locale; + } + + public boolean isOkToUseGui() { + return okToUseGui; + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#bcsPreDeserializationHook(java.io.ObjectInputStream) + */ + protected void bcsPreDeserializationHook(ObjectInputStream ois) + throws IOException, ClassNotFoundException { + super.bcsPreDeserializationHook(ois); + if (records == null) { + records = new MethodInvocationRecords(); + } + records.add("bcsPreDeserializationHook", ois, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#bcsPreSerializationHook(java.io.ObjectOutputStream) + */ + protected void bcsPreSerializationHook(ObjectOutputStream oos) + throws IOException { + super.bcsPreSerializationHook(oos); + records.add("bcsPreSerializationHook", oos, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#childDeserializedHook(java.lang.Object, + * java.beans.beancontext.BeanContextSupport.BCSChild) + */ + protected void childDeserializedHook(Object child, BCSChild bcsc) { + super.childDeserializedHook(child, bcsc); + records.add("childDeserializedHook", child, bcsc, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#childJustAddedHook(java.lang.Object, + * java.beans.beancontext.BeanContextSupport.BCSChild) + */ + protected void childJustAddedHook(Object child, BCSChild bcsc) { + // check lock + try { + child.wait(1); + } catch (InterruptedException e) { + // never occur + } + super.childJustAddedHook(child, bcsc); + records.add("childJustAddedHook", child, bcsc, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#childJustRemovedHook(java.lang.Object, + * java.beans.beancontext.BeanContextSupport.BCSChild) + */ + protected void childJustRemovedHook(Object child, BCSChild bcsc) { + // check lock + try { + child.wait(1); + } catch (InterruptedException e) { + // never occur + } + super.childJustRemovedHook(child, bcsc); + records.add("childJustRemovedHook", child, bcsc, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#createBCSChild(java.lang.Object, + * java.lang.Object) + */ + protected BCSChild createBCSChild(Object targetChild, Object peer) { + BCSChild result = super.createBCSChild(targetChild, peer); + records.add("createBCSChild", targetChild, peer, result); + return result; + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#initialize() + */ + protected void initialize() { + super.initialize(); + if (records == null) { + records = new MethodInvocationRecords(); + } + records.add("initialize", null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) + */ + public void propertyChange(PropertyChangeEvent pce) { + super.propertyChange(pce); + records.add("propertyChange", pce, null); + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#validatePendingAdd(java.lang.Object) + */ + protected boolean validatePendingAdd(Object targetChild) { + boolean result = vetoAddRemove ? false : super + .validatePendingAdd(targetChild); + records.add("validatePendingAdd", targetChild, Boolean + .valueOf(result)); + return result; + } + + /* + * (non-Javadoc) + * + * @see java.beans.beancontext.BeanContextSupport#validatePendingRemove(java.lang.Object) + */ + protected boolean validatePendingRemove(Object targetChild) { + boolean result = vetoAddRemove ? false : super + .validatePendingRemove(targetChild); + records.add("validatePendingRemove", targetChild, Boolean + .valueOf(result)); + return result; + } + + /* + * (non-Javadoc) + * + * @see java.beans.VetoableChangeListener#vetoableChange(java.beans.PropertyChangeEvent) + */ + public void vetoableChange(PropertyChangeEvent pce) + throws PropertyVetoException { + super.vetoableChange(pce); + records.add("vetoableChange", pce, null); + } + } + + private static class BadChild implements BeanContextChild, BeanContextProxy { + + public void setBeanContext(BeanContext bc) throws PropertyVetoException { + // Auto-generated method stub + } + + public BeanContext getBeanContext() { + // Auto-generated method stub + return null; + } + + public void addPropertyChangeListener(String name, + PropertyChangeListener pcl) { + // Auto-generated method stub + } + + public void removePropertyChangeListener(String name, + PropertyChangeListener pcl) { + // Auto-generated method stub + } + + public void addVetoableChangeListener(String name, + VetoableChangeListener vcl) { + // Auto-generated method stub + } + + public void removeVetoableChangeListener(String name, + VetoableChangeListener vcl) { + // Auto-generated method stub + } + + public BeanContextChild getBeanContextProxy() { + // Auto-generated method stub + return null; + } + } + + public static void main(String[] args) { + junit.textui.TestRunner.run(BeanContextSupportTest.class); + + // MockBeanContextSupport support = new MockBeanContextSupport(); + // BeanContextChild childPeer = new MockBeanContextChild(); + // BeanContextProxy child = new MockBeanContextProxy(childPeer); + // support.add(child); + // System.out.println(support.records); + // System.out.println(support.children()); + } + + public void testAdd_NullParam() { + MockBeanContextSupport support = new MockBeanContextSupport(); + + try { + support.add(null); + fail(); + } catch (IllegalArgumentException e) { + // expected + } + } + + public void testAdd_NonBCC() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + MockPropertyChangeListener l2 = new MockPropertyChangeListener(); + MockVetoableChangeListener l3 = new MockVetoableChangeListener(); + support.addBeanContextMembershipListener(l1); + support.addPropertyChangeListener("children", l2); + support.addVetoableChangeListener("children", l3); + + Integer child = new Integer(1000); + support.add(child); + support.records.assertRecord("initialize", null); + support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); + support.records.assertRecord("createBCSChild", child, null, support + .children().get(child)); + support.records.assertRecord("childJustAddedHook", child, support + .children().get(child), null); + support.records.assertEndOfRecords(); + assertTrue(l1.lastEventAdd); + assertMembershipEvent(l1.lastEvent, support, null, child); + assertNull(l2.lastEvent); + assertNull(l3.lastEvent); + } + + public void testAdd_BCC() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + MockPropertyChangeListener l2 = new MockPropertyChangeListener(); + MockVetoableChangeListener l3 = new MockVetoableChangeListener(); + support.addBeanContextMembershipListener(l1); + support.addPropertyChangeListener("children", l2); + support.addVetoableChangeListener("children", l3); + + BeanContextChild child = new MockBeanContextChild(); + support.add(child); + support.records.assertRecord("initialize", null); + support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); + support.records.assertRecord("createBCSChild", child, null, support + .children().get(child)); + support.records.assertRecord("childJustAddedHook", child, support + .children().get(child), null); + support.records.assertEndOfRecords(); + assertTrue(l1.lastEventAdd); + assertMembershipEvent(l1.lastEvent, support, null, child); + assertNull(l2.lastEvent); + assertNull(l3.lastEvent); + + assertSame(support, child.getBeanContext()); + } + + public void testAdd_BCP() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + MockPropertyChangeListener l2 = new MockPropertyChangeListener(); + MockVetoableChangeListener l3 = new MockVetoableChangeListener(); + support.addBeanContextMembershipListener(l1); + support.addPropertyChangeListener("children", l2); + support.addVetoableChangeListener("children", l3); + + BeanContextChild childPeer = new MockBeanContextChild(); + BeanContextProxy child = new MockBeanContextProxy(childPeer); + support.add(child); + support.records.assertRecord("initialize", null); + support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); + support.records.assertRecord("createBCSChild", child, childPeer, + support.children().get(child)); + support.records.assertRecord("createBCSChild", childPeer, child, + support.children().get(childPeer)); + support.records.assertRecord("childJustAddedHook", child, support + .children().get(child), null); + support.records.assertRecord("childJustAddedHook", childPeer, support + .children().get(childPeer), null); + support.records.assertEndOfRecords(); + assertTrue(l1.lastEventAdd); + assertMembershipEvent(l1.lastEvent, support, null, Arrays + .asList(new Object[] { child, childPeer })); + assertNull(l2.lastEvent); + assertNull(l3.lastEvent); + + assertSame(support, childPeer.getBeanContext()); + assertEquals(2, support.size()); + } + + public void testAdd_Exist() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + support.addBeanContextMembershipListener(l1); + Integer child = new Integer(1000); + support.add(child); + support.records.assertRecord("initialize", null); + support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE); + support.records.assertRecord("createBCSChild", child, null, support + .children().get(child)); + support.records.assertRecord("childJustAddedHook", child, support + .children().get(child), null); + support.records.assertEndOfRecords(); + assertTrue(l1.lastEventAdd); + assertMembershipEvent(l1.lastEvent, support, null, child); + support.records.clear(); + l1.clearLastEvent(); + + support.add(child); + support.records.assertEndOfRecords(); + assertNull(l1.lastEvent); + } + + public void testAdd_Veto() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + MockPropertyChangeListener l2 = new MockPropertyChangeListener(); + MockVetoableChangeListener l3 = new MockVetoableChangeListener(); + support.addBeanContextMembershipListener(l1); + support.addPropertyChangeListener("children", l2); + support.addVetoableChangeListener("children", l3); + + support.vetoAddRemove = true; + BeanContextChild child = new MockBeanContextChild(); + try { + support.add(child); + fail(); + } catch (IllegalStateException e) { + // expected + } + support.records.assertRecord("initialize", null); + support.records + .assertRecord("validatePendingAdd", child, Boolean.FALSE); + support.records.assertEndOfRecords(); + assertNull(l1.lastEvent); + assertNull(l2.lastEvent); + assertNull(l3.lastEvent); + + assertNull(child.getBeanContext()); + } + + public void testAddAll() { + MockBeanContextSupport support = new MockBeanContextSupport(); + MockBeanContextMembershipListener l1 = new MockBeanContextMembershipListener(); + MockPropertyChangeListener l2 = new MockPropertyChangeListener(); + MockVetoableChangeListener l3 = new MockVetoableChangeListener(); + support.addBeanContextMembershipListener(l1); + support.addPropertyChangeListener("children", l2); + support.addVetoableChangeListener("children", l3); + support.records.assertRecord("initialize", null); + + try { + support.addAll(Collections.EMPTY_LIST); + fail(); [... 1584 lines stripped ...]