Fixes tests, simplifies constructors

This commit is contained in:
Shannon
2019-02-01 15:44:32 +11:00
parent 036ca7f1e5
commit ad5b166f3f
7 changed files with 34 additions and 24 deletions

View File

@@ -2,6 +2,7 @@
using System.Linq;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using Moq;
using NUnit.Framework;
using Umbraco.Core;
@@ -17,12 +18,15 @@ using Umbraco.Web.WebApi;
using Umbraco.Core.Strings;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
using Umbraco.Core.Dictionary;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Persistence;
using Umbraco.Core.Services;
using Umbraco.Tests.PublishedContent;
using Umbraco.Tests.Testing;
using Umbraco.Tests.Testing.Objects.Accessors;
using Umbraco.Web.Runtime;
using Umbraco.Web.Security;
using Current = Umbraco.Web.Composing.Current;
namespace Umbraco.Tests.Routing
@@ -136,7 +140,16 @@ namespace Umbraco.Tests.Routing
var type = new AutoPublishedContentType(22, "CustomDocument", new PublishedPropertyType[] { });
ContentTypesCache.GetPublishedContentTypeByAlias = alias => type;
var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContext, Mock.Of<ILogger>()));
var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContext, Mock.Of<ILogger>(), context =>
{
var membershipHelper = new MembershipHelper(new TestUmbracoContextAccessor(umbracoContext), Mock.Of<MembershipProvider>(), Mock.Of<RoleProvider>(), Mock.Of<IMemberService>(), Mock.Of<IMemberTypeService>(), Mock.Of<IUserService>(), Mock.Of<IPublicAccessService>(), Mock.Of<AppCaches>(), Mock.Of<ILogger>());
return new CustomDocumentController(Factory.GetInstance<IGlobalSettings>(),
umbracoContext,
Factory.GetInstance<ServiceContext>(),
Factory.GetInstance<AppCaches>(),
Factory.GetInstance<IProfilingLogger>(),
new UmbracoHelper(umbracoContext, Mock.Of<ITagQuery>(), Mock.Of<ICultureDictionaryFactory>(), Mock.Of<IUmbracoComponentRenderer>(), Mock.Of<IPublishedContentQuery>(), membershipHelper));
}));
handler.GetHandlerForRoute(umbracoContext.HttpContext.Request.RequestContext, frequest);
Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
@@ -172,7 +185,8 @@ namespace Umbraco.Tests.Routing
/// </summary>
public class CustomDocumentController : RenderMvcController
{
public CustomDocumentController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) : base(globalSettings, umbracoContext, services, appCaches, logger, profilingLogger, umbracoHelper)
public CustomDocumentController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, profilingLogger, umbracoHelper)
{
}

View File

@@ -19,6 +19,7 @@ namespace Umbraco.Tests.TestHelpers.Stubs
{
private readonly UmbracoContext _umbracoContext;
private readonly ILogger _logger;
private readonly Func<RequestContext, IController> _factory;
public TestControllerFactory(UmbracoContext umbracoContext, ILogger logger)
{
@@ -26,8 +27,17 @@ namespace Umbraco.Tests.TestHelpers.Stubs
_logger = logger;
}
public TestControllerFactory(UmbracoContext umbracoContext, ILogger logger, Func<RequestContext, IController> factory)
{
_umbracoContext = umbracoContext;
_logger = logger;
_factory = factory;
}
public IController CreateController(RequestContext requestContext, string controllerName)
{
if (_factory != null) return _factory(requestContext);
var types = TypeFinder.FindClassesOfType<ControllerBase>(new[] { Assembly.GetExecutingAssembly() });
var controllerTypes = types.Where(x => x.Name.Equals(controllerName + "Controller", StringComparison.InvariantCultureIgnoreCase));

View File

@@ -231,20 +231,6 @@ namespace Umbraco.Tests.Testing
.Append<TranslationBackOfficeSection>();
Composition.RegisterUnique<ISectionService, SectionService>();
//TODO: A lot of this is just copied from the WebRuntimeComposer, maybe we should just compose it all?
Composition.Register<IPublishedContentQuery>(factory =>
{
var umbCtx = factory.GetInstance<IUmbracoContextAccessor>();
return new PublishedContentQuery(umbCtx.UmbracoContext.ContentCache, umbCtx.UmbracoContext.MediaCache, factory.GetInstance<IVariationContextAccessor>());
}, Lifetime.Request);
Composition.Register<ITagQuery, TagQuery>(Lifetime.Request);
Composition.RegisterUnique<ITemplateRenderer, TemplateRenderer>();
Composition.RegisterUnique<IMacroRenderer, MacroRenderer>();
Composition.RegisterUnique<IUmbracoComponentRenderer, UmbracoComponentRenderer>();
// register the umbraco helper - this is Transient! very important!
Composition.Register<UmbracoHelper>();
}
protected virtual void ComposeWtf()

View File

@@ -49,8 +49,8 @@ namespace Umbraco.Web.Editors
private const string TokenPasswordResetCode = "PasswordResetCode";
private static readonly string[] TempDataTokenNames = { TokenExternalSignInError, TokenPasswordResetCode };
public BackOfficeController(ManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, logger, profilingLogger, umbracoHelper)
public BackOfficeController(ManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, profilingLogger, umbracoHelper)
{
_manifestParser = manifestParser;
_features = features;

View File

@@ -23,8 +23,8 @@ namespace Umbraco.Web.Mvc
ActionInvoker = new RenderActionInvoker();
}
public RenderMvcController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, logger, profilingLogger, umbracoHelper)
public RenderMvcController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, profilingLogger, umbracoHelper)
{
ActionInvoker = new RenderActionInvoker();
}

View File

@@ -21,7 +21,8 @@ namespace Umbraco.Web.Mvc
{
}
protected UmbracoAuthorizedController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) : base(globalSettings, umbracoContext, services, appCaches, logger, profilingLogger, umbracoHelper)
protected UmbracoAuthorizedController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
: base(globalSettings, umbracoContext, services, appCaches, profilingLogger, umbracoHelper)
{
}
}

View File

@@ -73,20 +73,19 @@ namespace Umbraco.Web.Mvc
Current.Factory.GetInstance<UmbracoContext>(),
Current.Factory.GetInstance<ServiceContext>(),
Current.Factory.GetInstance<AppCaches>(),
Current.Factory.GetInstance<ILogger>(),
Current.Factory.GetInstance<IProfilingLogger>(),
Current.Factory.GetInstance<UmbracoHelper>()
)
{
}
protected UmbracoController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
protected UmbracoController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper)
{
GlobalSettings = globalSettings;
UmbracoContext = umbracoContext;
Services = services;
AppCaches = appCaches;
Logger = logger;
Logger = profilingLogger;
ProfilingLogger = profilingLogger;
Umbraco = umbracoHelper;
}