public void Run_WhenInvoked_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 SimpleInjectorExtension(registrationHelper, options); //Act containerExtension.Run(); var result = containerExtension.ResolveAll <IBootstrapperRegistration>(); //Assert A.CallTo(() => registrationHelper.GetAssemblies()).MustHaveHappened(); A.CallTo(() => registrationHelper.GetTypesImplementing <IBootstrapperRegistration>(assembly)).MustHaveHappened(); Assert.IsInstanceOfType(result, typeof(IEnumerable <IBootstrapperRegistration>)); Assert.IsTrue(result.Any()); Assert.IsInstanceOfType(result.First(), typeof(AutoMapperRegistration)); }
public void ResolveAll_WhenInvokedAndContainerIsNotInitialized_ShouldThrowException() { //Arrange var containerExtension = new SimpleInjectorExtension(registrationHelper, options); //Act var result = ExceptionAssert.Throws <NoContainerException>(() => containerExtension.ResolveAll <object>()); //Assert Assert.AreEqual(NoContainerException.DefaultMessage, result.Message); }
public void ResolveAll_WhenInvokedWithAGenericType_ShouldReturnAListOfInstances() { //Arrange var containerExtension = new SimpleInjectorExtension(registrationHelper, options); var container = new Container(); var instances = new IBootstrapperExtension[] { new StartupTasksExtension(A.Fake <IRegistrationHelper>()), new ServiceLocatorExtension() }; container.RegisterCollection(instances); containerExtension.InitializeContainer(container); //Act var result = containerExtension.ResolveAll <IBootstrapperExtension>(); //Assert Assert.IsNotNull(result); Assert.AreEqual(instances.Count(), result.Count); Assert.IsTrue(instances.SequenceEqual(result)); }