Add unit tests to controller properties
This commit is contained in:
parent
ba6813a418
commit
80ef37ab0a
|
|
@ -1,6 +1,7 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -9,6 +10,7 @@ using System.Threading.Tasks;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.AspNet.Testing;
|
using Microsoft.AspNet.Testing;
|
||||||
#if ASPNET50
|
#if ASPNET50
|
||||||
|
|
@ -805,9 +807,176 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerExposes_RequestServices()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var serviceProvider = Mock.Of<IServiceProvider>();
|
||||||
|
var httpContext = new Mock<HttpContext>();
|
||||||
|
httpContext.Setup(c => c.RequestServices)
|
||||||
|
.Returns(serviceProvider);
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(httpContext.Object,
|
||||||
|
Mock.Of<RouteData>(),
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var innerServiceProvider = controller.Resolver;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(serviceProvider, innerServiceProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerExposes_Request()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var request = Mock.Of<HttpRequest>();
|
||||||
|
var httpContext = new Mock<HttpContext>();
|
||||||
|
httpContext.Setup(c => c.Request)
|
||||||
|
.Returns(request);
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(httpContext.Object,
|
||||||
|
Mock.Of<RouteData>(),
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var innerRequest = controller.Request;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(request, innerRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerExposes_Response()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var response = Mock.Of<HttpResponse>();
|
||||||
|
var httpContext = new Mock<HttpContext>();
|
||||||
|
httpContext.Setup(c => c.Response)
|
||||||
|
.Returns(response);
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(httpContext.Object,
|
||||||
|
Mock.Of<RouteData>(),
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var innerResponse = controller.Response;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(response, innerResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerExposes_RouteData()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var routeData = Mock.Of<RouteData>();
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(Mock.Of<HttpContext>(),
|
||||||
|
routeData,
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var innerRouteData = controller.RouteData;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(routeData, innerRouteData);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerDispose_CallsDispose()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new DisposableController();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
controller.Dispose();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.True(controller.DisposeCalled);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerExpose_ViewEngine()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var viewEngine = Mock.Of<ICompositeViewEngine>();
|
||||||
|
|
||||||
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
|
serviceProvider
|
||||||
|
.Setup(s => s.GetService(It.Is<Type>(t => t == typeof(ICompositeViewEngine))))
|
||||||
|
.Returns(viewEngine);
|
||||||
|
|
||||||
|
var httpContext = new Mock<HttpContext>();
|
||||||
|
httpContext
|
||||||
|
.Setup(c => c.RequestServices)
|
||||||
|
.Returns(serviceProvider.Object);
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(httpContext.Object,
|
||||||
|
Mock.Of<RouteData>(),
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var innerViewEngine = controller.ViewEngine;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(viewEngine, innerViewEngine);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ControllerView_UsesControllerViewEngine()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var controller = new Controller();
|
||||||
|
|
||||||
|
var viewEngine = Mock.Of<ICompositeViewEngine>();
|
||||||
|
|
||||||
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
|
serviceProvider
|
||||||
|
.Setup(s => s.GetService(It.Is<Type>(t => t == typeof(ICompositeViewEngine))))
|
||||||
|
.Returns(viewEngine);
|
||||||
|
|
||||||
|
var httpContext = new Mock<HttpContext>();
|
||||||
|
httpContext
|
||||||
|
.Setup(c => c.RequestServices)
|
||||||
|
.Returns(serviceProvider.Object);
|
||||||
|
|
||||||
|
controller.ActionContext = new ActionContext(httpContext.Object,
|
||||||
|
Mock.Of<RouteData>(),
|
||||||
|
new ActionDescriptor());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var unsused = controller.ViewEngine;
|
||||||
|
var result = controller.View();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Same(viewEngine, result.ViewEngine);
|
||||||
|
}
|
||||||
|
|
||||||
private class MyModel
|
private class MyModel
|
||||||
{
|
{
|
||||||
public string Foo { get; set; }
|
public string Foo { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class DisposableController : Controller
|
||||||
|
{
|
||||||
|
public bool DisposeCalled { get; private set; }
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
DisposeCalled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue