public void ShouldRegisterAllTypesOfIBootstrapperRegistration() { //Arrange var assembly = Assembly.GetAssembly(typeof(AutoMapperRegistration)); A.CallTo(() => registrationHelper.GetAssemblies()) .Returns(new List <Assembly> { assembly }); A.CallTo(() => registrationHelper.GetTypesImplementing <IBootstrapperRegistration>(assembly)) .Returns(new List <Type> { typeof(AutoMapperRegistration) }); var containerExtension = new AutofacExtension(registrationHelper, options); //Act containerExtension.Run(); var result = containerExtension.ResolveAll <IBootstrapperRegistration>(); //Assert A.CallTo(() => registrationHelper.GetAssemblies()).MustHaveHappened(); A.CallTo(() => registrationHelper.GetTypesImplementing <IBootstrapperRegistration>(assembly)).MustHaveHappened(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(IEnumerable <IBootstrapperRegistration>)); Assert.IsTrue(result.Count > 0); Assert.IsTrue(result[0] is AutoMapperRegistration); }
public void ShouldThrowNoContainerExceptionWhenResolvingMultipleTypesBeforeInitializingTheContainer() { //Arrange var containerExtension = new AutofacExtension(registrationHelper, options); //Act var result = ExceptionAssert.Throws <NoContainerException>(() => containerExtension.ResolveAll <object>()); //Assert Assert.AreEqual(NoContainerException.DefaultMessage, result.Message); }
public void ShouldResolveMultipleTypes() { //Arrange var containerExtension = new AutofacExtension(registrationHelper, options); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterType <TaskAlpha>().As <IStartupTask>(); containerBuilder.RegisterType <TaskBeta>().As <IStartupTask>(); containerExtension.InitializeContainer(containerBuilder.Build()); //Act var result = containerExtension.ResolveAll <IStartupTask>(); //Assert Assert.IsNotNull(result); Assert.IsTrue(result.Any(t => t is TaskAlpha)); Assert.IsTrue(result.Any(t => t is TaskBeta)); }