001 /***************************************************************************** 002 * Copyright (C) PicoContainer Organization. All rights reserved. * 003 * ------------------------------------------------------------------------- * 004 * The software in this package is published under the terms of the BSD * 005 * style license a copy of which has been included with this distribution in * 006 * the LICENSE.txt file. * 007 * * 008 * Original code by * 009 *****************************************************************************/ 010 package org.picocontainer.tck; 011 012 import junit.framework.TestCase; 013 import org.picocontainer.ComponentAdapter; 014 import org.picocontainer.PicoIntrospectionException; 015 import org.picocontainer.PicoRegistrationException; 016 import org.picocontainer.defaults.AssignabilityRegistrationException; 017 import org.picocontainer.defaults.ComponentAdapterFactory; 018 import org.picocontainer.defaults.DefaultPicoContainer; 019 import org.picocontainer.defaults.NotConcreteRegistrationException; 020 import org.picocontainer.testmodel.SimpleTouchable; 021 import org.picocontainer.testmodel.Touchable; 022 023 /** 024 * @author Aslak Hellesøy 025 * @version $Revision: 1234 $ 026 */ 027 public abstract class AbstractComponentAdapterFactoryTestCase extends TestCase { 028 protected DefaultPicoContainer picoContainer; 029 030 protected abstract ComponentAdapterFactory createComponentAdapterFactory(); 031 032 protected void setUp() throws Exception { 033 picoContainer = new DefaultPicoContainer(); 034 } 035 036 public void testEquals() throws PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException { 037 ComponentAdapter componentAdapter = createComponentAdapterFactory().createComponentAdapter(Touchable.class, SimpleTouchable.class, null); 038 039 assertEquals(componentAdapter, componentAdapter); 040 assertTrue(!componentAdapter.equals("blah")); 041 } 042 043 public void testRegisterComponent() throws PicoRegistrationException, AssignabilityRegistrationException { 044 ComponentAdapter componentAdapter = 045 createComponentAdapterFactory().createComponentAdapter(Touchable.class, SimpleTouchable.class, null); 046 047 picoContainer.registerComponent(componentAdapter); 048 049 assertTrue(picoContainer.getComponentAdapters().contains(componentAdapter)); 050 } 051 052 public void testUnregisterComponent() throws PicoRegistrationException, AssignabilityRegistrationException { 053 ComponentAdapter componentAdapter = 054 createComponentAdapterFactory().createComponentAdapter(Touchable.class, SimpleTouchable.class, null); 055 056 picoContainer.registerComponent(componentAdapter); 057 picoContainer.unregisterComponent(Touchable.class); 058 059 assertFalse(picoContainer.getComponentAdapters().contains(componentAdapter)); 060 } 061 }