示例#1
0
  @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);
  }
示例#2
0
  @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();
    }
  }
示例#3
0
  @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);
  }
示例#4
0
  // /*
  @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();
    }
  }
示例#5
0
  @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);
  }
示例#6
0
 @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();
   }
 }
示例#7
0
 @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();
   }
 }
示例#8
0
 @Test
 public void supertypeSingleton() throws Exception {
   expexc.expect(RuntimeException.class);
   c.RegisterType(AbstractBar.class, Bar.class, true);
   c.RegisterType(BarChild.class, BarChild.class, false);
 }