@Test public void siblingSingleton() throws Exception { c.RegisterType(BarChild.class, BarChild.class, true); c.RegisterType(AbstractBar.class, BarChild2.class, false); BarChild bc1 = c.Resolve(BarChild.class); BarChild bc2 = c.Resolve(BarChild.class); assertSame(bc1, bc2); AbstractBar sibling = c.Resolve(AbstractBar.class); AbstractBar sibling2 = c.Resolve(AbstractBar.class); assertNotSame(sibling, sibling2); }
@Test public void fromRegisteredInterface() { try { c.RegisterType(IFoo.class, Foo.class, false); IFoo f = c.Resolve(IFoo.class); c.RegisterType(IFoo.class, Foo2.class, false); IFoo f2 = c.Resolve(IFoo.class); assertTrue(f instanceof Foo); assertTrue(f2 instanceof Foo2); } catch (Exception ex) { System.out.println(ex.getMessage()); fail(); } }
@Test public void ServiceLocatorSimpleResolving() throws Exception { c.RegisterType(A.class, false); ServiceLocator.setContainerProvider(new ConstContainerProvider(c)); A a = ServiceLocator.getCurrent().getInstance(A.class); assertNotNull(a); }
// /* @Test public void singletonsSame() { try { c.RegisterType(Dummy.class, true); Dummy d1 = c.Resolve(Dummy.class); Dummy d2 = c.Resolve(Dummy.class); assertSame(d1, d2); } catch (Exception ex) { System.out.println(ex.getMessage()); fail(); } }
@Test public void registerInstance() throws Exception { Bar b = new Bar(); c.RegisterInstance(b); Bar r1 = c.Resolve(Bar.class); Bar r2 = c.Resolve(Bar.class); assertSame(r1, r2); assertSame(b, r1); c.RegisterType(Bar.class, false); Bar r3 = c.Resolve(Bar.class); assertNotSame(r1, r3); }
@Test public void genericPair() { try { c.RegisterType(Pair.class, false); Pair<String, Integer> p1 = c.Resolve(Pair.class); p1.setA("asdf"); p1.setB(5); assertEquals("asdf", p1.a); assertEquals(5, (long) p1.b); } catch (Exception ex) { System.out.println(ex.getMessage()); fail(); } }
@Test public void fromRegisteredAbstractClass() { try { c.RegisterType(AbstractBar.class, Bar.class, false); AbstractBar b = c.Resolve(AbstractBar.class); assertTrue(b instanceof Bar); b.doBar(); Bar bb = (Bar) b; assertTrue(bb.isDone()); } catch (Exception ex) { System.out.println(ex.getMessage()); fail(); } }
@Test public void supertypeSingleton() throws Exception { expexc.expect(RuntimeException.class); c.RegisterType(AbstractBar.class, Bar.class, true); c.RegisterType(BarChild.class, BarChild.class, false); }