    001    package org.picocontainer.defaults.issues;
    002
    003    import org.junit.Test;import static org.junit.Assert.assertFalse;
    004    import org.picocontainer.Startable;
    005    import org.picocontainer.DefaultPicoContainer;
    006    import org.picocontainer.ComponentAdapter;
    007    import org.picocontainer.Characteristics;
    008    import org.picocontainer.behaviors.Cached;
    009
    010    public class Issue0353TestCase {
    011
    012        public static class FooStartable implements Startable {
    013            @Override
    014                    public void start() {
    015                            // empty
    016                    }
    017
    018                    @Override
    019                    public void stop() {
    020                            // empty
    021                    }
    022            }
    023
    024            @Test
    025            public void testIsStartedShouldNotThrowOnNonStartedComponent() {
    026                    DefaultPicoContainer cont = new DefaultPicoContainer();
    027                    cont.as(Characteristics.CACHE).addComponent(FooStartable.class);
    028                    ComponentAdapter<?> adapter = cont.getComponentAdapter(FooStartable.class);
    029                    Cached cached = adapter.findAdapterOfType(Cached.class);
    030
    031                   // this line throws - instead of returning false
    032                    assertFalse(cached.isStarted());
    033            }
    034
    035    }