Adds ControllerBase to Mvc.Core

This change adds a base class for controllers to Mvc.Core that can be used
without a dependency on views, json, etc.

Most of the functionality on Controller moves to ControllerBase. I kept
the IActionFilter and IDisposable functionality on Controller since it's
not really a fit with the 'minimal' philosophy.
This commit is contained in:
Ryan Nowak 2015-12-10 11:19:22 -08:00
parent ad3c460500
commit a2393f21be
5 changed files with 3206 additions and 3073 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.Controllers
};
[Fact]
public void IsController_UserDefinedClass()
public void IsController_UserDefinedClass_DerivedFromController()
{
// Arrange
var typeInfo = typeof(StoreController).GetTypeInfo();
@ -31,6 +31,34 @@ namespace Microsoft.AspNet.Mvc.Controllers
Assert.True(isController);
}
[Fact]
public void IsController_UserDefinedClass_DerivedFromControllerBase()
{
// Arrange
var typeInfo = typeof(ProductsController).GetTypeInfo();
var provider = GetControllerTypeProvider();
// Act
var isController = provider.IsController(typeInfo, CandidateAssemblies);
// Assert
Assert.True(isController);
}
[Fact]
public void IsController_UserDefinedClass_DerivedFromControllerBase_WithoutSuffix()
{
// Arrange
var typeInfo = typeof(Products).GetTypeInfo();
var provider = GetControllerTypeProvider();
// Act
var isController = provider.IsController(typeInfo, CandidateAssemblies);
// Assert
Assert.False(isController);
}
[Fact]
public void IsController_FrameworkControllerClass()
{
@ -45,6 +73,20 @@ namespace Microsoft.AspNet.Mvc.Controllers
Assert.False(isController);
}
[Fact]
public void IsController_FrameworkBaseControllerClass()
{
// Arrange
var typeInfo = typeof(Controller).GetTypeInfo();
var provider = GetControllerTypeProvider();
// Act
var isController = provider.IsController(typeInfo, CandidateAssemblies);
// Assert
Assert.False(isController);
}
[Fact]
public void IsController_UserDefinedControllerClass()
{
@ -247,6 +289,15 @@ namespace Microsoft.AspNet.Mvc.DefaultControllerTypeProviderControllers
{
}
public class ProductsController : ControllerBase
{
}
public class Products : ControllerBase
{
}
public abstract class Controller
{
}

File diff suppressed because it is too large Load Diff