001package org.picocontainer.lifecycle; 002 003import org.junit.Test; 004import static org.junit.Assert.assertEquals; 005import org.picocontainer.DefaultPicoContainer; 006import static org.picocontainer.Characteristics.CACHE; 007import org.picocontainer.containers.EmptyPicoContainer; 008import org.picocontainer.monitors.NullComponentMonitor; 009 010public 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}