fixes some tests
This commit is contained in:
@@ -11,6 +11,7 @@ using Umbraco.Core.ObjectResolution;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
|
||||
namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
@@ -24,7 +25,7 @@ namespace Umbraco.Tests.Persistence
|
||||
RepositoryResolver.Current = new RepositoryResolver(
|
||||
new RepositoryFactory(true, //disable all repo caches for tests!
|
||||
Mock.Of<ILogger>(),
|
||||
Mock.Of<IUmbracoSettingsSection>()));
|
||||
SettingsForTests.GenerateMockSettings()));
|
||||
|
||||
Resolution.Freeze();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Stubs;
|
||||
@@ -80,7 +82,9 @@ namespace Umbraco.Tests.Routing
|
||||
RenderingEngine = RenderingEngine.Mvc
|
||||
};
|
||||
|
||||
var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);
|
||||
var handler = new RenderRouteHandler(
|
||||
new TestControllerFactory(routingContext.UmbracoContext, Mock.Of<ILogger>()),
|
||||
routingContext.UmbracoContext);
|
||||
|
||||
handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
|
||||
Assert.AreEqual("RenderMvc", routeData.Values["controller"].ToString());
|
||||
@@ -116,7 +120,9 @@ namespace Umbraco.Tests.Routing
|
||||
TemplateModel = template
|
||||
};
|
||||
|
||||
var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);
|
||||
var handler = new RenderRouteHandler(
|
||||
new TestControllerFactory(routingContext.UmbracoContext, Mock.Of<ILogger>()),
|
||||
routingContext.UmbracoContext);
|
||||
|
||||
handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
|
||||
Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
|
||||
@@ -152,8 +158,11 @@ namespace Umbraco.Tests.Routing
|
||||
/// </summary>
|
||||
public class CustomDocumentController : RenderMvcController
|
||||
{
|
||||
public CustomDocumentController(ILogger logger, UmbracoContext umbracoContext) : base(logger, umbracoContext)
|
||||
{
|
||||
}
|
||||
|
||||
public ActionResult HomePage(RenderModel model)
|
||||
public ActionResult HomePage(RenderModel model)
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.SessionState;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web;
|
||||
|
||||
namespace Umbraco.Tests.TestHelpers.Stubs
|
||||
{
|
||||
@@ -13,8 +15,16 @@ namespace Umbraco.Tests.TestHelpers.Stubs
|
||||
/// </summary>
|
||||
internal class TestControllerFactory : IControllerFactory
|
||||
{
|
||||
private readonly UmbracoContext _umbracoContext;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public IController CreateController(RequestContext requestContext, string controllerName)
|
||||
public TestControllerFactory(UmbracoContext umbracoContext, ILogger logger)
|
||||
{
|
||||
_umbracoContext = umbracoContext;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public IController CreateController(RequestContext requestContext, string controllerName)
|
||||
{
|
||||
var types = TypeFinder.FindClassesOfType<ControllerBase>(new[] { Assembly.GetExecutingAssembly() });
|
||||
|
||||
@@ -24,7 +34,20 @@ namespace Umbraco.Tests.TestHelpers.Stubs
|
||||
if (t == null)
|
||||
return null;
|
||||
|
||||
return Activator.CreateInstance(t) as IController;
|
||||
var ctors = t.GetConstructors();
|
||||
if (ctors.Any(x =>
|
||||
{
|
||||
var parameters = x.GetParameters();
|
||||
if (parameters.Length != 2) return false;
|
||||
return parameters.First().ParameterType == typeof (ILogger) && parameters.Last().ParameterType == typeof (UmbracoContext);
|
||||
}))
|
||||
{
|
||||
return Activator.CreateInstance(t, new object[]{_logger, _umbracoContext}) as IController;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Activator.CreateInstance(t) as IController;
|
||||
}
|
||||
}
|
||||
|
||||
public System.Web.SessionState.SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Umbraco.Web.Mvc
|
||||
{
|
||||
|
||||
public RenderMvcController()
|
||||
: base()
|
||||
{
|
||||
ActionInvoker = new RenderActionInvoker();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user