예제 #1
0
        public void TestSingletonToValueBinding()
        {
            InjectableSuperClass instance = new InjectableSuperClass();
            InjectionBinding     binding  = binder.Bind <InjectableSuperClass> ().ToSingleton().ToValue(instance) as InjectionBinding;

            Assert.AreEqual(InjectionBindingType.VALUE, binding.type);
        }
예제 #2
0
        public void TestInjectionProvideIntDependency()
        {
            binder.Bind <InjectableSuperClass> ().To <InjectableSuperClass> ();
            binder.Bind <int> ().ToValue(42);
            InjectableSuperClass testValue = binder.GetInstance <InjectableSuperClass> () as InjectableSuperClass;

            Assert.IsNotNull(testValue);
            Assert.That(testValue.intValue == 42);
        }
예제 #3
0
        public void TestRemoveDependency()
        {
            binder.Bind <InjectableSuperClass> ().To <InjectableSuperClass> ();
            binder.Bind <int> ().ToValue(42);
            InjectableSuperClass testValueBeforeUnbinding = binder.GetInstance <InjectableSuperClass> () as InjectableSuperClass;

            Assert.IsNotNull(testValueBeforeUnbinding);
            Assert.That(testValueBeforeUnbinding.intValue == 42);

            binder.Unbind <int> ();

            TestDelegate testDelegate = delegate() {
                binder.GetInstance <InjectableSuperClass> ();
            };

            InjectionException ex = Assert.Throws <InjectionException> (testDelegate);

            Assert.That(ex.type == InjectionExceptionType.NULL_BINDING);
        }
예제 #4
0
        public void TestNamedInjections()
        {
            InjectableSuperClass testValue = new InjectableSuperClass ();
            float defaultFloatValue = testValue.floatValue;
            testValue.floatValue = 3.14f;

            binder.Bind<int> ().ToValue (20);
            binder.Bind<InjectableSuperClass> ().To<InjectableSuperClass> ().ToName (SomeEnum.ONE);
            binder.Bind<InjectableSuperClass> ().ToName<MarkerClass> ().ToValue(testValue);
            binder.Bind<HasNamedInjections> ().To<HasNamedInjections> ();
            HasNamedInjections instance = binder.GetInstance<HasNamedInjections> () as HasNamedInjections;
            Assert.IsNotNull (instance);
            Assert.IsNotNull (instance.injectionOne);
            Assert.IsNotNull (instance.injectionTwo);
            Assert.AreEqual (20, instance.injectionOne.intValue);
            Assert.AreEqual (20, instance.injectionTwo.intValue);
            Assert.That (instance.injectionOne.floatValue == defaultFloatValue);
            Assert.That (instance.injectionTwo.floatValue == 3.14f);
        }
예제 #5
0
        public void TestNamedInstances()
        {
            InjectableSuperClass testValue = new InjectableSuperClass();
            float defaultFloatValue        = testValue.floatValue;

            testValue.floatValue = 3.14f;

            binder.Bind <int> ().ToValue(20);
            binder.Bind <InjectableSuperClass> ().ToSingleton().ToName(SomeEnum.ONE);
            binder.Bind <InjectableSuperClass> ().ToName <MarkerClass> ().ToValue(testValue);
            binder.Bind <HasNamedInjections> ().To <HasNamedInjections> ();
            HasNamedInjections instance = binder.GetInstance <HasNamedInjections> () as HasNamedInjections;

            Assert.IsNotNull(instance);
            Assert.IsNotNull(instance.injectionOne);
            Assert.IsNotNull(instance.injectionTwo);
            Assert.AreEqual(20, instance.injectionOne.intValue);
            Assert.AreEqual(20, instance.injectionTwo.intValue);
            Assert.That(instance.injectionOne.floatValue == defaultFloatValue);
            Assert.That(instance.injectionTwo.floatValue == 3.14f);
        }
예제 #6
0
 public void TestValueToSingletonBinding()
 {
     InjectableSuperClass instance = new InjectableSuperClass ();
     InjectionBinding binding = binder.Bind<InjectableSuperClass> ().ToValue (instance).ToSingleton() as InjectionBinding;
     Assert.AreEqual (InjectionBindingType.VALUE, binding.type);
 }