    001    package org.picocontainer.behaviors;
    002
    003    import static org.junit.Assert.assertNotNull;
    004    import static org.junit.Assert.assertNull;
    005    import static org.picocontainer.Characteristics.LOCK;
    006    import static org.picocontainer.Characteristics.NO_LOCK;
    007
    008    import org.junit.Test;
    009    import org.picocontainer.ComponentFactory;
    010    import org.picocontainer.MutablePicoContainer;
    011    import org.picocontainer.PicoBuilder;
    012    import org.picocontainer.injectors.AdaptingInjection;
    013    import org.picocontainer.tck.AbstractComponentFactoryTest;
    014
    015
    016    public class LockingTestCase extends AbstractComponentFactoryTest {
    017
    018            private final ComponentFactory locking = new Locking().wrap(new AdaptingInjection());
    019
    020
    021            @Test
    022            public void testPicocontainerPropertiesIntegration() {
    023                    MutablePicoContainer mpc = new PicoBuilder().withBehaviors(new Locking()).build();
    024                    mpc.as(LOCK).addComponent("locked","It is locked");
    025                    mpc.as(NO_LOCK).addComponent("not locked", "It is not locked");
    026
    027                    assertNotNull(mpc.getComponentAdapter("locked").findAdapterOfType(Locked.class));
    028                    assertNull(mpc.getComponentAdapter("not locked").findAdapterOfType(Locked.class));
    029
    030            }
    031
    032            @Override
    033            protected ComponentFactory createComponentFactory() {
    034                    return locking;
    035            }
    036
    037    }