Example #1
0
        public void Value_Test3()
        {
            var parentContainer = new IocContainer();
            var childContainer  = new IocContainer(parentContainer);

            parentContainer.AddValue("value1", 1);
            parentContainer.AddValue("value2", "2");
            parentContainer.AddValue("value3", false);

            childContainer.AddValue("value1", 9999);
            childContainer.AddValue("value2", "9999");

            childContainer.AddService(typeof(IValueService), typeof(ValueService1));
            parentContainer.AddService(typeof(IValueService), typeof(ValueService2));

            var childService  = childContainer.GetService(typeof(IValueService)) as IValueService;
            var parentService = parentContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(1, parentService.Value1);
            Assert.Equal("2", parentService.Value2);
            Assert.Equal(false, parentService.Value3);

            Assert.Equal(9999, childService.Value1);
            Assert.Equal("9999", childService.Value2);
            Assert.Equal(false, childService.Value3);
        }
Example #2
0
        public void TypeValue_Test2()
        {
            var type           = typeof(IValueService);
            var container      = new IocContainer();
            var childContainer = new IocContainer(container);

            container.AddValue(type, "A", 15);
            Assert.Equal(15, childContainer.GetValue(type, "A"));

            int index = 0;

            container.AddValue(type, "B", lmp => ++ index);
            Assert.Equal(1, childContainer.GetValue(type, "B"));
            Assert.Equal(2, childContainer.GetValue(type, "B"));
            index = 0;

            container.AddValue(type, "C", lmp => ++ index, true);

            Assert.Equal(1, childContainer.GetValue(type, "C"));
            Assert.Equal(1, childContainer.GetValue(type, "C"));

            Assert.True(childContainer.ContainsValue(type, "A", true));
            container.RemoveValue(type, "A", true);
            Assert.False(childContainer.ContainsValue(type, "A", true));

            index = 0;
            container.AddValue(type, "D", lmp => ++ index);
            Assert.Equal(1, childContainer.GetValue(type, "D"));
            Assert.Equal(2, container.GetValue(type, "D"));
        }
Example #3
0
        public void LastMappingTest2()
        {
            var container = new IocContainer();

            container.AddValue("baseValue1", 10);
            container.AddValue("baseValue2", 20);
            container.AddService(typeof(LastMapperTestModel));
            var ex = Assert.Throws <ArgumentException>(() => container.GetService(typeof(LastMapperTestModel), 50));

            Assert.Equal("value1", ex.ParamName);
        }
Example #4
0
        public void LastMappingTest1()
        {
            var container = new IocContainer();

            container.AddValue("baseValue1", 10);
            container.AddValue("baseValue2", 20);
            container.AddService(typeof(LastMapperTestModel));
            var model = container.GetService(typeof(LastMapperTestModel), 50, 80) as LastMapperTestModel;

            Assert.Equal(10, model.BaseValue1);
            Assert.Equal(20, model.BaseValue2);
            Assert.Equal(80, model.Value1);
            Assert.Equal(50, model.Value2);
        }
Example #5
0
        public void TypeValue_Test3()
        {
            var parentContainer = new IocContainer();
            var childContainer  = new IocContainer(parentContainer);

            parentContainer.AddValue("value1", 1);
            parentContainer.AddValue("value2", "2");
            parentContainer.AddValue("value3", false);

            childContainer.AddValue("value1", 9999);
            childContainer.AddValue("value2", "9999");

            childContainer.AddService(typeof(IValueService), typeof(ValueService1));
            parentContainer.AddService(typeof(IValueService), typeof(ValueService2));

            var childService  = childContainer.GetService(typeof(IValueService)) as IValueService;
            var parentService = parentContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(1, parentService.Value1);
            Assert.Equal("2", parentService.Value2);
            Assert.Equal(false, parentService.Value3);

            Assert.Equal(9999, childService.Value1);
            Assert.Equal("9999", childService.Value2);
            Assert.Equal(false, childService.Value3);

            childContainer.AddValue(typeof(IValueService), "value2", "8888");
            var childService2 = childContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(9999, childService2.Value1);
            Assert.Equal("9999", childService2.Value2); //- 因为已映射,所以这里的值还是历史值
            Assert.Equal(false, childService2.Value3);

            childContainer.RemoveService(typeof(IValueService));
            childContainer.AddService(typeof(IValueService), typeof(ValueService1));

            var childService3 = childContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal("8888", childService3.Value2);
        }
Example #6
0
        public void Value_Test1()
        {
            var container = new IocContainer();

            container.AddValue("A", 15);
            Assert.Equal(15, container.GetValue("A"));

            int index = 0;

            container.AddValue("B", lmp => ++ index);
            Assert.Equal(1, container.GetValue("B"));
            Assert.Equal(2, container.GetValue("B"));
            index = 0;

            container.AddValue("C", lmp => ++ index, true);

            Assert.Equal(1, container.GetValue("C"));
            Assert.Equal(1, container.GetValue("C"));

            Assert.True(container.ContainsValue("A"));
            container.RemoveValue("A");
            Assert.False(container.ContainsValue("A"));
        }
Example #7
0
 public void LastMappingTest2()
 {
     var container = new IocContainer();
     container.AddValue("baseValue1", 10);
     container.AddValue("baseValue2", 20);
     container.AddService(typeof(LastMapperTestModel));
     var ex = Assert.Throws<ArgumentException>(() => container.GetService(typeof(LastMapperTestModel), 50));
     Assert.Equal("value1", ex.ParamName);
 }
Example #8
0
        public void LastMappingTest1()
        {
            var container = new IocContainer();
            container.AddValue("baseValue1", 10);
            container.AddValue("baseValue2", 20);
            container.AddService(typeof(LastMapperTestModel));
            var model = container.GetService(typeof(LastMapperTestModel), 50, 80) as LastMapperTestModel;

            Assert.Equal(10, model.BaseValue1);
            Assert.Equal(20, model.BaseValue2);
            Assert.Equal(80, model.Value1);
            Assert.Equal(50, model.Value2);
        }
Example #9
0
        public void TypeValue_Test3()
        {
            var parentContainer = new IocContainer();
            var childContainer = new IocContainer(parentContainer);
            parentContainer.AddValue("value1", 1);
            parentContainer.AddValue("value2", "2");
            parentContainer.AddValue("value3", false);

            childContainer.AddValue("value1", 9999);
            childContainer.AddValue("value2", "9999");

            childContainer.AddService(typeof(IValueService), typeof(ValueService1));
            parentContainer.AddService(typeof(IValueService), typeof(ValueService2));

            var childService = childContainer.GetService(typeof(IValueService)) as IValueService;
            var parentService = parentContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(1, parentService.Value1);
            Assert.Equal("2", parentService.Value2);
            Assert.Equal(false, parentService.Value3);

            Assert.Equal(9999, childService.Value1);
            Assert.Equal("9999", childService.Value2);
            Assert.Equal(false, childService.Value3);

            childContainer.AddValue(typeof(IValueService), "value2", "8888");
            var childService2 = childContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(9999, childService2.Value1);
            Assert.Equal("9999", childService2.Value2); //- 因为已映射,所以这里的值还是历史值
            Assert.Equal(false, childService2.Value3);

            childContainer.RemoveService(typeof(IValueService));
            childContainer.AddService(typeof(IValueService), typeof(ValueService1));

            var childService3 = childContainer.GetService(typeof(IValueService)) as IValueService;
            Assert.Equal("8888", childService3.Value2);
        }
Example #10
0
        public void TypeValue_Test2()
        {
            var type = typeof(IValueService);
            var container = new IocContainer();
            var childContainer = new IocContainer(container);
            container.AddValue(type, "A", 15);
            Assert.Equal(15, childContainer.GetValue(type, "A"));

            int index = 0;
            container.AddValue(type, "B", lmp => ++index);
            Assert.Equal(1, childContainer.GetValue(type, "B"));
            Assert.Equal(2, childContainer.GetValue(type, "B"));
            index = 0;

            container.AddValue(type, "C", lmp => ++index, true);

            Assert.Equal(1, childContainer.GetValue(type, "C"));
            Assert.Equal(1, childContainer.GetValue(type, "C"));

            Assert.True(childContainer.ContainsValue(type, "A", true));
            container.RemoveValue(type, "A", true);
            Assert.False(childContainer.ContainsValue(type, "A", true));

            index = 0;
            container.AddValue(type, "D", lmp => ++index);
            Assert.Equal(1, childContainer.GetValue(type, "D"));
            Assert.Equal(2, container.GetValue(type, "D"));

        }
Example #11
0
        public void Value_Test3()
        {
            var parentContainer = new IocContainer();
            var childContainer = new IocContainer(parentContainer);
            parentContainer.AddValue("value1", 1);
            parentContainer.AddValue("value2", "2");
            parentContainer.AddValue("value3", false);

            childContainer.AddValue("value1", 9999);
            childContainer.AddValue("value2", "9999");

            childContainer.AddService(typeof(IValueService), typeof(ValueService1));
            parentContainer.AddService(typeof(IValueService), typeof(ValueService2));

            var childService = childContainer.GetService(typeof(IValueService)) as IValueService;
            var parentService = parentContainer.GetService(typeof(IValueService)) as IValueService;

            Assert.Equal(1, parentService.Value1);
            Assert.Equal("2", parentService.Value2);
            Assert.Equal(false, parentService.Value3);

            Assert.Equal(9999, childService.Value1);
            Assert.Equal("9999", childService.Value2);
            Assert.Equal(false, childService.Value3);

        }
Example #12
0
        public void Value_Test1()
        {
            var container = new IocContainer();
            container.AddValue("A", 15);
            Assert.Equal(15, container.GetValue("A"));

            int index = 0;
            container.AddValue("B", lmp => ++index);
            Assert.Equal(1, container.GetValue("B"));
            Assert.Equal(2, container.GetValue("B"));
            index = 0;

            container.AddValue("C", lmp => ++index, true);

            Assert.Equal(1, container.GetValue("C"));
            Assert.Equal(1, container.GetValue("C"));

            Assert.True(container.ContainsValue("A"));
            container.RemoveValue("A");
            Assert.False(container.ContainsValue("A"));
        }