public void ShouldRegisterWithTargetType() { //Arrange var assembly = Assembly.GetAssembly(typeof(RegistrationHelper)); A.CallTo(() => registrationHelper.GetAssemblies()).Returns(new List <Assembly> { assembly }); var container = new WindsorContainer(); var containerExtension = new WindsorExtension(registrationHelper, options); containerExtension.InitializeContainer(container); //Act containerExtension.RegisterAll <IBootstrapperAssemblyProvider>(); var result = container.ResolveAll <IBootstrapperAssemblyProvider>(); //Assert A.CallTo(() => registrationHelper.GetAssemblies()).MustHaveHappened(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(IEnumerable <IBootstrapperAssemblyProvider>)); Assert.IsTrue(result.Any()); Assert.IsTrue(result.Any(c => c is LoadedAssemblyProvider)); Assert.IsTrue(result.Any(c => c is ReferencedAssemblyProvider)); }
public void ShouldAddFacility() { // Arrange var containerExtension = new WindsorExtension(registrationHelper, options); var facility = A.Fake <IFacility>(); var container = new WindsorContainer(); // Act containerExtension.AddFacility(facility); containerExtension.InitializeContainer(container); // Assert Assert.IsTrue(container.Kernel.GetFacilities().Contains(facility)); }
public void ShouldRegisterWithTargetAndImplementationType() { //Arrange var container = new WindsorContainer(); var containerExtension = new WindsorExtension(registrationHelper, options); containerExtension.InitializeContainer(container); //Act containerExtension.Register <IBootstrapperAssemblyProvider, LoadedAssemblyProvider>(); var result = container.Resolve <IBootstrapperAssemblyProvider>(); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(LoadedAssemblyProvider)); }
public void ShouldInitializeTheContainerToTheValuePassed() { //Arrange var containerExtension = new WindsorExtension(registrationHelper, options); var container = A.Fake <IWindsorContainer>(); A.CallTo(() => container.AddFacility <FactorySupportFacility>()).Returns(container); //Act containerExtension.InitializeContainer(container); var result = containerExtension.Container; //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(IWindsorContainer)); Assert.AreSame(result, container); }
public void ShouldResolveMultipleTypes() { //Arrange var containerExtension = new WindsorExtension(registrationHelper, options); var container = A.Fake <IWindsorContainer>(); var instances = new[] { new object(), new object() }; A.CallTo(() => container.AddFacility <FactorySupportFacility>()).Returns(container); A.CallTo(() => container.ResolveAll <object>()).Returns(instances); containerExtension.InitializeContainer(container); //Act var result = containerExtension.ResolveAll <object>(); //Assert A.CallTo(() => container.ResolveAll <object>()).MustHaveHappened(); Assert.IsNotNull(result); Assert.AreSame(instances, result); }
public void RegisterAll_WhenInvokedWithNonGenericTargetType_ShouldRegisterType() { //Arrange var container = new WindsorContainer(); var containerExtension = new WindsorExtension(registrationHelper, options); containerExtension.AddFacility(new TypedFactoryFacility()); containerExtension.InitializeContainer(container); var thisAssembly = Assembly.GetCallingAssembly(); A.CallTo(() => registrationHelper.GetAssemblies()).Returns(new[] { thisAssembly }); A.CallTo(() => registrationHelper.GetTypesImplementing(thisAssembly, typeof(IGenericTest <>))) .Returns(new[] { typeof(GenericTest <>) }); //Act containerExtension.RegisterAll(typeof(IGenericTest <>)); var result1 = container.Resolve <IGenericTest <object> >(); var result2 = container.Resolve <IGenericTest <string[]> >(); //Assert result1.ShouldBeOfType <GenericTest <object> >(); result2.ShouldBeOfType <GenericTest <string[]> >(); }