public void testGetComponentForArgDef() throws Exception {
   S2Container container = new S2ContainerImpl();
   ComponentDefImpl cd = new ComponentDefImpl(BigDecimal.class, "num");
   cd.addArgDef(new ArgDefImpl("123"));
   container.register(cd);
   assertEquals("1", new BigDecimal(123), container.getComponent("num"));
 }
 public void testGetComponentForExpression() throws Exception {
   S2Container container = new S2ContainerImpl();
   container.register(Object.class, "obj");
   ComponentDefImpl cd = new ComponentDefImpl(null, "hash");
   cd.setExpression("obj.hashCode()");
   container.register(cd);
   assertNotNull("1", container.getComponent("hash"));
 }
 public void testGetComponentForProperyDef() throws Exception {
   S2Container container = new S2ContainerImpl();
   ComponentDefImpl cd = new ComponentDefImpl(A2.class);
   cd.addPropertyDef(new PropertyDefImpl("hoge", new B()));
   container.register(cd);
   A2 a2 = (A2) container.getComponent(A2.class);
   assertEquals("1", "B", a2.getHogeName());
 }
 public void testInitForHotswap() throws Exception {
   S2Container container = new S2ContainerImpl();
   container.setHotswapMode(true);
   ComponentDefImpl cd = new ComponentDefImpl(FooImpl.class);
   container.register(cd);
   container.init();
   assertNotNull("1", cd.getHotswap());
 }
 public void testGetComponentForAspectDef() throws Exception {
   S2Container container = new S2ContainerImpl();
   ComponentDefImpl cd = new ComponentDefImpl(A.class);
   cd.addAspectDef(new AspectDefImpl(new TraceInterceptor()));
   container.register(cd);
   container.register(B.class);
   A a = (A) container.getComponent(A.class);
   assertEquals("1", "B", a.getHogeName());
 }
 public void testInjectDependency() throws Exception {
   ComponentDefImpl cd = new ComponentDefImpl(HashMap.class);
   InitMethodDef md = new InitMethodDefImpl("put");
   md.addArgDef(new ArgDefImpl("aaa"));
   md.addArgDef(new ArgDefImpl("hoge"));
   cd.addInitMethodDef(md);
   ComponentDeployer deployer = new OuterComponentDeployer(cd);
   HashMap myMap = new HashMap();
   deployer.injectDependency(myMap);
   assertEquals("1", "hoge", myMap.get("aaa"));
 }
 public void testGetComponentForMethodDef() throws Exception {
   S2Container container = new S2ContainerImpl();
   ComponentDefImpl cd = new ComponentDefImpl(HashMap.class, "myMap");
   InitMethodDef md = new InitMethodDefImpl("put");
   md.addArgDef(new ArgDefImpl("aaa"));
   md.addArgDef(new ArgDefImpl("hoge"));
   cd.addInitMethodDef(md);
   container.register(cd);
   HashMap myMap = (HashMap) container.getComponent("myMap");
   assertEquals("1", "hoge", myMap.get("aaa"));
 }
 /** @throws Exception */
 public void testBindWarning() throws Exception {
   BeanDesc beanDesc = BeanDescFactory.getBeanDesc(A.class);
   PropertyDesc propDesc = beanDesc.getPropertyDesc("hoge");
   S2Container container = new S2ContainerImpl();
   ComponentDefImpl cd = new ComponentDefImpl(A.class);
   PropertyDef propDef = new PropertyDefImpl("hoge");
   cd.addPropertyDef(propDef);
   container.register(cd);
   A a = new A();
   BindingTypeDefFactory.MAY.bind(cd, propDef, propDesc, a);
 }
 public void testGetComponentClassForHotswap() throws Exception {
   S2Container container = new S2ContainerImpl();
   container.setHotswapMode(true);
   ComponentDefImpl cd = new ComponentDefImpl(FooImpl.class);
   container.register(cd);
   container.init();
   Hotswap hotswap = cd.getHotswap();
   Thread.sleep(500);
   assertSame("1", FooImpl.class, cd.getComponentClass());
   hotswap.getFile().setLastModified(new Date().getTime());
   assertNotSame("2", FooImpl.class, cd.getComponentClass());
 }
 public void testGetComponentForHotswap() throws Exception {
   S2Container container = new S2ContainerImpl();
   container.setHotswapMode(true);
   ComponentDefImpl cd = new ComponentDefImpl(FooImpl.class);
   cd.setInstanceDef(InstanceDefFactory.PROTOTYPE);
   container.register(cd);
   container.init();
   Hotswap hotswap = cd.getHotswap();
   Thread.sleep(500);
   Foo foo = (Foo) container.getComponent(Foo.class);
   hotswap.getFile().setLastModified(new Date().getTime());
   Foo foo2 = (Foo) container.getComponent(Foo.class);
   assertNotSame("1", foo.getClass(), foo2.getClass());
   assertFalse("1", foo2 instanceof FooImpl);
 }
 public void testInjectDependency2() throws Exception {
   ComponentDefImpl cd = new ComponentDefImpl(ArrayMap.class);
   InitMethodDef md = new InitMethodDefImpl("put");
   md.addArgDef(new ArgDefImpl("aaa"));
   md.addArgDef(new ArgDefImpl("hoge"));
   cd.addInitMethodDef(md);
   ComponentDeployer deployer = new OuterComponentDeployer(cd);
   Map myMap = new CaseInsensitiveMap();
   deployer.injectDependency(myMap);
   assertEquals("1", "hoge", myMap.get("aaa"));
   try {
     Map myMap2 = new HashMap();
     deployer.injectDependency(myMap2);
     fail("1");
   } catch (ClassUnmatchRuntimeException ex) {
     System.out.println(ex);
   }
 }