Beispiel #1
0
        public void MethodInject_InjectsCorrectDependencies()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
            });
            var instance = new MethodInjectionClass();

            //ACT
            container.MethodInject(instance);

            //ASSERT
            Assert.IsType <TestService10>(instance.TestService10);
        }
        public void MethodInject_NoInjectionsRegistered()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
            });

            var instance = new MethodInjectionClass();

            //ACT
            container.LateInject(instance);

            //ASSERT
            Assert.Null(instance.TestService10);
        }
        public void FieldInject_Expression_Field_InjectsCorrectDependencies()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
                builder.LateInject <MethodInjectionClass>(c => c
                                                          .UseMember(o => o.TestService10Field));
            });
            var instance = new MethodInjectionClass();

            //ACT
            container.LateInject(instance);

            //ASSERT
            Assert.IsType <TestService10>(instance.TestService10Field);
        }
        public void PropertyInject_Name_InjectsCorrectDependencies()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
                builder.LateInject <MethodInjectionClass>(c => c
                                                          .UseProperty(nameof(MethodInjectionClass.TestService10)));
            });
            var instance = new MethodInjectionClass();

            //ACT
            container.LateInject(instance);

            //ASSERT
            Assert.IsType <TestService10>(instance.TestService10);
        }
        public void MethodInject_Scoped_InjectsCorrectDependencies()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
                builder.LateInject <MethodInjectionClass>(c => c
                                                          .UseMethod(nameof(MethodInjectionClass.Inject)));
            });
            var instance = new MethodInjectionClass();

            //ACT
            Scoped scope = container.BeginScope();

            scope.LateInject(instance);

            //ASSERT
            Assert.IsType <TestService10>(instance.TestService10);
        }
        public void MethodInject_RegistrationWithNoInjections()
        {
            //ARRANGE
            var container = new Container(builder =>
            {
                builder.Register <ITestService10, TestService10>();
                builder.LateInject <MethodInjectionClass>(c =>
                {
                    //Do nothing
                });
            });

            var instance = new MethodInjectionClass();

            //ACT
            container.LateInject(instance);

            //ASSERT
            Assert.Null(instance.TestService10);
        }