public void ServiceShouldBindAllDependencies() { //Arrange ServiceContext s = new ServiceContext(); new DummyServiceOne().BindServiceContext(s); //Assert Assert.False((s.Fetch("DummyServiceOne")).CheckDependencies()); //Act s.FullInitialization(); //Assert Assert.False((s.Fetch("DummyServiceOne")).CheckDependencies()); //Act DummyLibrary dl1 = new DummyLibrary("aaa").BindServiceContext(s); DummyServiceOne ds1 = new DummyServiceOne().BindServiceContext(s, "AnotherDummy"); s.FullInitialization(dl1); s.FullInitialization(ds1); //Assert Assert.True(((DummyServiceOne)s.Fetch("DummyServiceOne")).CheckDependencies()); }
public void ServiceShouldBeBuiltBoundAndInitialized() { //Act ServiceContext s = new ServiceContext(); new DummyServiceOne().BindServiceContext(s, "AnotherDummy"); new DummyServiceOne().BindServiceContext(s); DummyServiceOne ds1 = (DummyServiceOne)s.Fetch("DummyServiceOne"); DummyServiceOne ds2 = (DummyServiceOne)s.Fetch("AnotherDummy"); //Assert Assert.True(ds1.Built); Assert.False(ds1.GetInitialized()); Assert.False(ds1.Bound); Assert.False(ds1.AnotherDummyBound()); Assert.True(ds2.Built); Assert.False(ds2.GetInitialized()); Assert.False(ds2.Bound); //Act s.FullInitialization(); //Assert Assert.True(ds1.Bound); Assert.True(ds1.Built); Assert.True(ds1.GetInitialized()); Assert.True(ds1.AnotherDummyBound()); }
public void ServiceShouldDynamicallyCastType() { //Act ServiceContext s = new ServiceContext(); new DummyServiceOne().BindServiceContext(s); DummyServiceOne dummy = s.Fetch("DummyServiceOne"); //Assert Assert.NotNull(dummy); //Act s.Fetch("DummyServiceOne").Flarf(); //Assert Assert.AreEqual(1, s.Fetch("DummyServiceOne").FlarfCount); try { s.Fetch("DummyServiceOne").UnwrittenFunction(); //Assert Assert.Fail(); } catch (Exception e) { Debug.Log("SUCCESS:"); Debug.Log(e); } }
public void ServiceShouldThrowExceptionOnDoubleInitialize() { DummyServiceOne dummy = new DummyServiceOne(); Assert.False(dummy.GetInitialized()); dummy.Initialize(); Assert.True(dummy.GetInitialized()); try { dummy.Initialize(); Assert.Fail(); } catch (MultipleInitializationException e) { //Pass! Debug.Log(e); } }