Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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();
    }