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()))); }
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)); }
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]); }
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]); }
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));