001package org.picocontainer.containers;
002
003import static org.junit.Assert.assertSame;
004import static org.junit.Assert.assertEquals;
005
006import org.junit.Test;
007import org.picocontainer.DefaultPicoContainer;
008
009/**
010 * test capabilities of system properties providing container. 
011 * @author Konstantin Pribluda
012 *
013 */
014public class SystemPropertiesPicoContainerTestCase {
015
016        
017        /**
018         * all the content of system properties shall be made available
019         *  through this contaienr. 
020         */
021        @Test public void testThatAllSystemPropertiesAreCopied() {
022                SystemPropertiesPicoContainer container = new SystemPropertiesPicoContainer();          
023                for(Object key: System.getProperties().keySet()) {
024                        assertSame(System.getProperties().get(key),container.getComponent(key));
025                }
026        }
027
028    @Test public void testRepresentationOfContainerTree() {
029        SystemPropertiesPicoContainer parent = new SystemPropertiesPicoContainer();
030        parent.setName("parent");
031        DefaultPicoContainer child = new DefaultPicoContainer(parent);
032        child.setName("child");
033                child.addComponent("hello", "goodbye");
034        child.addComponent("bonjour", "aurevior");
035        int num = System.getProperties().size(); 
036        assertEquals("child:2<[Immutable]:[SysProps]:parent:"+num+"<|", child.toString());
037    }
038
039
040}