001 package org.picocontainer.lifecycle; 002 003 import org.junit.Test; 004 import static org.junit.Assert.assertEquals; 005 import org.picocontainer.DefaultPicoContainer; 006 import static org.picocontainer.Characteristics.CACHE; 007 import org.picocontainer.containers.EmptyPicoContainer; 008 import org.picocontainer.monitors.NullComponentMonitor; 009 010 public class CompositeLifecycleStrategyTestCase { 011 012 @Test 013 public void testMixOfThirdPartyAndBuiltInStartableAndDisposable() { 014 DefaultPicoContainer pico = new DefaultPicoContainer(new CompositeLifecycleStrategy( 015 new MyStartableLifecycleStrategy(), 016 new StartableLifecycleStrategy(new NullComponentMonitor())), 017 new EmptyPicoContainer()); 018 StringBuilder sb = new StringBuilder(); 019 pico.addComponent(sb); 020 pico.as(CACHE).addComponent(ThirdPartyStartableComponent.class); 021 pico.as(CACHE).addComponent(BuiltInStartableComponent.class); 022 pico.start(); 023 pico.stop(); 024 pico.dispose(); 025 assertEquals("<<>>!!", sb.toString()); 026 } 027 028 }