public void BooleanTypeTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("0", new SimpleInstanceProvider(false));
            context.AddNamedInstanceProvider("1", new SimpleInstanceProvider(true));

            var falseValue = context.GetInstance <bool>("0");

            Assert.IsFalse(falseValue);

            var trueValue = context.GetInstance <bool>("1");

            Assert.IsTrue(trueValue);
        }
        public void ClassTypeTest()
        {
            var context = new RIContext();

            var nameInstanceProvider   = new SimpleInstanceProvider("Jørgen");
            var ageInstanceProvider    = new SimpleInstanceProvider(49);
            var genderInstanceProvider = new EnumInstanceProvider(Gender.Male, typeof(Gender));

            var dateOfBirth = new DateTime(1966, 7, 14);

            var classInstanceProvider = new ComplexInstanceProvider(
                typeof(Person),
                new IInstanceProvider[] {
                nameInstanceProvider,
                ageInstanceProvider,
                genderInstanceProvider
            },
                new Dictionary <string, IInstanceProvider>()
            {
                { "Birthday", new SimpleInstanceProvider(dateOfBirth) },
            }
                );

            context.AddNamedInstanceProvider("A", classInstanceProvider);

            var person = context.GetInstance <Person>("A");

            Assert.AreEqual("Jørgen", person.Name);

            var now = DateTime.Today;
            var age = now.Year - dateOfBirth.Year + (now.DayOfYear >= dateOfBirth.DayOfYear ? 0 : -1);

            Assert.AreEqual(age, person.Age);
            Assert.AreEqual(Gender.Male, person.Gender);
        }
Пример #3
0
        public void TestTwoParams()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("A", new ComplexInstanceProvider(
                                                 typeof(TestClass),
                                                 new IInstanceProvider[] {
                new SimpleInstanceProvider(36),
                new ListInstanceProvider(
                    new IInstanceProvider[]
                {
                    new SimpleInstanceProvider("Text1"),
                    new SimpleInstanceProvider("Text2"),
                },
                    ListInstanceProvider.CollectionType.Array
                    ),
            },
                                                 new Dictionary <string, IInstanceProvider>()
            {
            }
                                                 )
                                             );
            var instance = context.GetInstance <TestClass>("A");
            var text     = instance.GetText();

            Assert.AreEqual("36 Text1, Text2", text);
        }
        public void StringTypeTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("A", new SimpleInstanceProvider("This is a test!"));

            var s = context.GetInstance <string>("A");

            Assert.AreEqual("This is a test!", s);
        }
        public void NullInstanceTypeStrongTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("A", new NullTypeInstanceProvider(typeof(string)));

            var s = context.GetInstance <string>("A");

            Assert.IsNull(s);
        }
        public void ConstantStringTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("A", new StaticInstanceProvider(typeof(Runerne.Instantiation.UnitTest.StaticClass), "Constant"));
            var s = context.GetInstance <string>("A");

            Assert.IsInstanceOfType(s, typeof(string));
            Assert.AreEqual("The content of the constant.", s);
        }
        public void NoSuchNameTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("TheName", null);
            try
            {
                context.GetInstance("Kurt");
                Assert.Fail("A InstanceNotFoundException was expected thrown.");
            }
            catch (InstanceNotFoundException ex)
            {
                Assert.AreEqual("Kurt", ex.InstanceName);
            }
        }
        public void NoNullInstanceTypeStrongTest()
        {
            var context = new RIContext();

            context.AddNamedInstanceProvider("A", new NullTypeInstanceProvider(typeof(string)));

            try
            {
                var s = context.GetInstance <int>("A");
                Assert.Fail("An IncompatibleInstanceTypeException was expected.");
            }
            catch (IncompatibleInstanceTypeException)
            {
            }
            catch (Exception)
            {
                Assert.Fail("Another exception than IncompatibleInstanceTypeException was not expected.");
            }
        }
        public void ElementTypeDerivingListTest()
        {
            var context = new RIContext();

            var instanceProvider = new ListInstanceProvider(
                new IInstanceProvider[] {
                new SimpleInstanceProvider("Test"),
                new SimpleInstanceProvider("Horse"),
                new SimpleInstanceProvider("Cat"),
            }
                );

            context.AddNamedInstanceProvider("A", instanceProvider);

            var s = context.GetInstance <IEnumerable <string> >("A");
            var a = s.ToArray();

            Assert.AreEqual(3, a.Length);
            Assert.AreEqual("Test", a[0]);
            Assert.AreEqual("Horse", a[1]);
            Assert.AreEqual("Cat", a[2]);
        }