public void CreateActivator_ActivatesControllerInstance() { // Arrange var expected = new TestService(); var activator = new DefaultControllerActivator(Mock.Of <ITypeActivatorCache>()); var activatorProvider = new ControllerActivatorProvider(activator); var descriptor = new ControllerActionDescriptor { ControllerTypeInfo = typeof(TestController).GetTypeInfo(), }; var serviceProvider = new ServiceCollection() .AddSingleton(expected) .BuildServiceProvider(); var context = new ControllerContext { HttpContext = new DefaultHttpContext { RequestServices = serviceProvider, }, }; // Act var activatorDelegate = activatorProvider.CreateActivator(descriptor); var result = activatorDelegate(context); // Assert var actual = Assert.IsType <TestController>(result); Assert.Same(expected, actual.TestService); }
public void CreateActivator_InvokesIControllerActivator_IfItIsNotDefaultControllerActivator() { // Arrange var expected = new object(); var activator = new Mock <IControllerActivator>(); activator.Setup(a => a.Create(It.IsAny <ControllerContext>())) .Returns(expected) .Verifiable(); var activatorProvider = new ControllerActivatorProvider(activator.Object); var descriptor = new ControllerActionDescriptor { ControllerTypeInfo = typeof(object).GetTypeInfo(), }; // Act var activatorDelegate = activatorProvider.CreateActivator(descriptor); var result = activatorDelegate(new ControllerContext()); // Assert Assert.Same(expected, result); activator.Verify(); }