예제 #1
0
        public void TestWithParametersCalledTwice()
        {
            RegistrationFactory registrationFactory = new RegistrationFactory(new Mock <IIocContainer>().Object);

            Assert.Throws <InvalidRegistrationException>(() => registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters(new Bar()).WithParameters(new Test()));
            Assert.Throws <InvalidRegistrationException>(() => registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters((0, new Bar())).WithParameters((1, new Test())));
        }
예제 #2
0
        public void TestOnCreate()
        {
            RegistrationFactory registrationFactory = new RegistrationFactory(new Mock <IIocContainer>().Object);
            ITypedRegistrationBase <ITest, Test> testRegistration = registrationFactory.Register <ITest, Test>(Lifestyle.Transient).OnCreate(t => t.DoSomething());

            Test test = new Test();

            Assert.Throws <Exception>(() => testRegistration.OnCreateAction(test));
        }
예제 #3
0
        public void TestWithParameters()
        {
            RegistrationFactory registrationFactory = new RegistrationFactory(new Mock <IIocContainer>().Object);

            IBar  bar  = new Bar();
            ITest test = new Test();

            IRegistrationBase <IFoo> testRegistration = registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters(bar, test);

            Assert.AreEqual(bar, testRegistration.Parameters[0]);
            Assert.AreEqual(test, testRegistration.Parameters[1]);
        }
예제 #4
0
        public void TestWithParametersDifferentOrder()
        {
            RegistrationFactory registrationFactory = new RegistrationFactory(new Mock <IIocContainer>().Object);

            IBar  bar  = new Bar();
            ITest test = new Test();

            IRegistrationBase <IFoo> testRegistration = registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters((0, bar), (3, test), (2, "SomeString"));

            Assert.AreEqual(bar, testRegistration.Parameters[0]);
            Assert.IsInstanceOf <InternalResolvePlaceholder>(testRegistration.Parameters[1]);
            Assert.AreEqual("SomeString", testRegistration.Parameters[2]);
            Assert.AreEqual(test, testRegistration.Parameters[3]);
        }
예제 #5
0
        public void TestWithParametersNoParametersGiven()
        {
            RegistrationFactory registrationFactory = new RegistrationFactory(new Mock <IIocContainer>().Object);

            Assert.Throws <InvalidRegistrationException>(() => registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters((object[])null));
            Assert.Throws <InvalidRegistrationException>(() => registrationFactory.Register <IFoo, Foo>(Lifestyle.Transient).WithParameters(((int index, object parameter)[])null));