Ejemplo n.º 1
0
        public void Test_AddingBindings()
        {
            InjectorContext injector = new InjectorContext();

            //  Add first binding
            injector.AddBinding <SimpleClassA>();

            //  Validate binding
            Assert.Equal(1, injector.BindingCount);
            Assert.True(injector.HasBindingForType(typeof(SimpleClassA)));

            //  Check error
            Assert.Equal(0, injector.ErrorCount);

            //  Add second binding
            injector.AddBinding <SimpleClassB>();

            //  Validate binding
            Assert.Equal(2, injector.BindingCount);
            Assert.True(injector.HasBindingForType(typeof(SimpleClassA)));
            Assert.True(injector.HasBindingForType(typeof(SimpleClassB)));

            //  Check error
            Assert.Equal(0, injector.ErrorCount);
        }
        public void Test_NamespaceRestriction()
        {
            InjectorContext injector = new InjectorContext();

            //  Add first
            injector.AddBinding <SimpleClassA>().ToType <SimpleClassA>().RestrictToNamespace("Com.Bit34Games.Injector.Test.Containers");

            //  Validate binding
            Assert.Equal(1, injector.BindingCount);
            Assert.True(injector.HasBindingForType(typeof(SimpleClassA)));

            //  Check error
            Assert.Equal(0, injector.ErrorCount);

            //  Inject
            var instanceA = new ClassThatUses_SimpleClassA();

            injector.InjectInto(instanceA);

            //  Check error
            Assert.Equal(0, injector.ErrorCount);

            //  Inject
            var instanceB = new ClassThatUses_SimpleClassA_InAnotherNamespace();

            injector.InjectInto(instanceB);

            //  Check error
            Assert.Equal(1, injector.ErrorCount);
            Assert.Equal(InjectionErrorType.InjectionRestricted, injector.GetError(0).error);
        }