public void WithControllersAsServices_ScansControllersFromSpecifiedAssemblies() { // Arrange var collection = new ServiceCollection(); var assemblies = new[] { GetType().Assembly }; var controllerTypes = new[] { typeof(ControllerTypeA), typeof(TypeBController) }; // Act MvcServiceCollectionExtensions.WithControllersAsServices(collection, assemblies); // Assert var services = collection.ToList(); Assert.Equal(4, services.Count); Assert.Equal(typeof(ControllerTypeA), services[0].ServiceType); Assert.Equal(typeof(ControllerTypeA), services[0].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[0].Lifetime); Assert.Equal(typeof(TypeBController), services[1].ServiceType); Assert.Equal(typeof(TypeBController), services[1].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[1].Lifetime); Assert.Equal(typeof(IControllerActivator), services[2].ServiceType); Assert.Equal(typeof(ServiceBasedControllerActivator), services[2].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[2].Lifetime); Assert.Equal(typeof(IControllerTypeProvider), services[3].ServiceType); var typeProvider = Assert.IsType<FixedSetControllerTypeProvider>(services[3].ImplementationInstance); Assert.Equal(controllerTypes, typeProvider.ControllerTypes.OrderBy(c => c.Name)); Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime); }
public void AddLocalizationWithLocalizationOptions_AddsNeededServices() { // Arrange var collection = new ServiceCollection(); // Act collection.AddLocalization(options => options.ResourcesPath = "Resources"); // Assert var services = collection.ToList(); Assert.Equal(4, services.Count); Assert.Equal(typeof(IStringLocalizerFactory), services[0].ServiceType); Assert.Equal(typeof(ResourceManagerStringLocalizerFactory), services[0].ImplementationType); Assert.Equal(ServiceLifetime.Singleton, services[0].Lifetime); Assert.Equal(typeof(IStringLocalizer<>), services[1].ServiceType); Assert.Equal(typeof(StringLocalizer<>), services[1].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[1].Lifetime); Assert.Equal(typeof(IConfigureOptions<LocalizationOptions>), services[2].ServiceType); Assert.Equal(ServiceLifetime.Singleton, services[2].Lifetime); Assert.Equal(typeof(IOptions<>), services[3].ServiceType); Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime); }
public void WithControllersAsServices_AddsTypesToControllerTypeProviderAndServiceCollection() { // Arrange var builder = new Mock<IMvcBuilder>(); var collection = new ServiceCollection(); builder.SetupGet(b => b.Services).Returns(collection); var controllerTypes = new[] { typeof(ControllerTypeA).GetTypeInfo(), typeof(TypeBController).GetTypeInfo(), }; // Act builder.Object.AddControllersAsServices(controllerTypes); // Assert var services = collection.ToList(); Assert.Equal(4, services.Count); Assert.Equal(typeof(ControllerTypeA), services[0].ServiceType); Assert.Equal(typeof(ControllerTypeA), services[0].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[0].Lifetime); Assert.Equal(typeof(TypeBController), services[1].ServiceType); Assert.Equal(typeof(TypeBController), services[1].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[1].Lifetime); Assert.Equal(typeof(IControllerActivator), services[2].ServiceType); Assert.Equal(typeof(ServiceBasedControllerActivator), services[2].ImplementationType); Assert.Equal(ServiceLifetime.Transient, services[2].Lifetime); Assert.Equal(typeof(IControllerTypeProvider), services[3].ServiceType); var typeProvider = Assert.IsType<FixedSetControllerTypeProvider>(services[3].ImplementationInstance); Assert.Equal(controllerTypes, typeProvider.ControllerTypes.OrderBy(c => c.Name)); Assert.Equal(ServiceLifetime.Singleton, services[3].Lifetime); }