public void CircularDependency_Singleton()
 {
     Dojector.Reset();
     Dojector.Bind <ICircularDependency1>(typeof(CircularDependency1), BindingConfig.Singleton);
     Dojector.Bind <ICircularDependency2>(typeof(CircularDependency2), BindingConfig.Singleton);
     Assert.ThrowsException <InvalidOperationException>(() => Dojector.Resolve());
 }
        public void Debind_NullInstance()
        {
            Dojector.Debind <IChild1>();
            IChild1 child1 = Factory.Get <IChild1>();

            Assert.IsNull(child1, "Child1 was debound but is not null on retrieval");
        }
예제 #3
0
 private void BindToIOC()
 {
     Dojector.Bind <IRankCalculator>(typeof(RankCalculator));
     Dojector.Bind <IDojoAuditor>(typeof(DojoAuditor));
     Dojector.Bind <ITestAuditor>(typeof(TestAuditor));
     Dojector.Bind <IScoreKeeper>(typeof(ScoreKeeper));
 }
 public void Setup()
 {
     Dojector.Bind <IChild1>(typeof(Child1));
     Dojector.Bind <IChild2>(typeof(Child2));
     Dojector.Bind <IParent>(typeof(Parent));
     Dojector.Bind <INestedParent>(typeof(NestedParent));
 }
예제 #5
0
        public void Initialize()
        {
            Dojector.Bind <IEfficiencyCalculator>(typeof(EfficiencyCalculator));
            Dojector.Bind <IEfficiencyRankCollection>(typeof(EfficiencyRankCollection));
            Dojector.Bind <IBenchmarkEngine>(typeof(BenchmarkEngine));

            HasBeenInitialized = true;
        }
예제 #6
0
        public void Initialize()
        {
            Dojector.Bind <ITestRunner>(typeof(TestRunner));
            Dojector.Bind <ITestExecutionContext>(typeof(TestExecutionContext));
            Dojector.Bind <IUnderTestAttribute>(typeof(UnderTestAttribute));

            HasBeenInitialized = true;
        }
예제 #7
0
        public void Initialize()
        {
            Dojector.Bind <IReflectionUtility>(typeof(ReflectionUtility));
            Dojector.Bind <IAttributeUtility>(typeof(AttributeUtility));

            Dojector.Bind <ILog>(typeof(Log));

            HasBeenInitialized = true;
        }
예제 #8
0
 public void Binding()
 {
     Dojector.Bind <IBattleAttribute>(typeof(BattleAttribute));
     Dojector.Bind <ISenseiAttribute>(typeof(SenseiAttribute));
     Dojector.Bind <IWrittenByAttribute>(typeof(WrittenByAttribute));
     Dojector.Bind <IEfficiencyCalculator>(typeof(EfficiencyCalculator));
     Dojector.Bind <IEfficiencyRankCollection>(typeof(EfficiencyRankCollection));
     Dojector.Bind <IBenchmarkEngine>(typeof(BenchmarkEngine));
 }
        public void MissingDependency()
        {
            Dojector.Reset();
            Dojector.Bind <IChild2>(typeof(Child2));
            Dojector.Bind <IParent>(typeof(Parent));
            Dojector.Bind <INestedParent>(typeof(NestedParent));

            Assert.ThrowsException <InvalidOperationException>(() => Factory.Get <INestedParent>());
        }
        public void Parent_MultipleConstructors()
        {
            Dojector.Bind <IParent>(typeof(ParentMultipleConstructors));

            IParent parent = Factory.Get <IParent>();
            IChild1 child1 = parent.Child1;
            IChild2 child2 = parent.Child2;

            Assert.IsNotNull(parent, "Parent is null");
            Assert.IsNotNull(child1, "Child 1 is null");
            Assert.IsNotNull(child2, "Child 2 is null");
        }
        public void Singleton_NoDependencies()
        {
            Dojector.Reset();
            Dojector.Bind <IChild1>(typeof(Child1), BindingConfig.Singleton);

            IChild1 instance1 = Factory.Get <IChild1>();
            IChild1 instance2 = Factory.Get <IChild1>();

            Assert.IsNotNull(instance1, "Instance 1 is null");
            Assert.IsNotNull(instance2, "Instance 2 is null");
            Assert.IsTrue(instance1.Name == instance2.Name, $"Instance names do not match. Instance1: {instance1.Name}, instance2: {instance2.Name}");

            instance1.Name = "Changed";
            Assert.IsTrue(instance1.Name == instance2.Name, $"Instance names do not match after change. Instance1: {instance1.Name}, instance2: {instance2.Name}");
        }
예제 #12
0
        public void Initialize()
        {
            Dojector.Bind <IBattleOutcome>(typeof(BattleOutcome));
            Dojector.Bind <IEfficiencyResult>(typeof(EfficiencyResult));
            Dojector.Bind <IPlayer>(typeof(Player));
            Dojector.Bind <IPlayerBattleResult>(typeof(PlayerBattleResult));
            Dojector.Bind <IBattleAttribute>(typeof(BattleAttribute));
            Dojector.Bind <ISenseiAttribute>(typeof(SenseiAttribute));
            Dojector.Bind <IWrittenByAttribute>(typeof(WrittenByAttribute));

            Dojector.Bind <IBattleCollection>(typeof(BattleCollection), BindingConfig.Singleton);
            Dojector.Bind <IBattleRepository>(typeof(BattleRepository), BindingConfig.Singleton);
            Dojector.Bind <IPlayerRepository>(typeof(PlayerRepository), BindingConfig.Singleton);

            HasBeenInitialized = true;
        }
 public void NullImplementation()
 {
     Assert.ThrowsException <InvalidOperationException>(() => Dojector.Bind <IChild1>(null));
 }
 public void InvalidBind_Backwards()
 {
     Assert.ThrowsException <InvalidCastException>(() => Dojector.Bind <Child1>(typeof(IChild1)));
 }
 public void InvalidBind_ImplementationAsInterface()
 {
     Assert.ThrowsException <InvalidCastException>(() => Dojector.Bind <IChild1>(typeof(IChild1)));
 }
 public void InvalidBind_NonInterfaceType()
 {
     Assert.ThrowsException <InvalidCastException>(() => Dojector.Bind <Child1>(typeof(Child1)));
 }
 public void InvalidBind_NonImplementation()
 {
     Assert.ThrowsException <InvalidCastException>(() => Dojector.Bind <IChild1>(typeof(Child2)));
 }
 public void Cleanup()
 {
     Dojector.Reset();
 }
예제 #19
0
 public void Initialize()
 {
     Dojector.Bind <IPlayerService>(typeof(PlayerService));
     Dojector.Bind <IBattleService>(typeof(BattleService));
 }
        public void Debind_BrokenDependency()
        {
            Dojector.Debind <IChild1>();

            Assert.ThrowsException <InvalidOperationException>(() => Factory.Get <IParent>());
        }