diff --git a/src/Umbraco.Core/ApplicationContext.cs b/src/Umbraco.Core/ApplicationContext.cs
index 78ed2c755a..ed3a0d127d 100644
--- a/src/Umbraco.Core/ApplicationContext.cs
+++ b/src/Umbraco.Core/ApplicationContext.cs
@@ -35,12 +35,9 @@ namespace Umbraco.Core
///
///
///
- internal ApplicationContext(DatabaseContext dbContext, ServiceContext serviceContext, bool enableCache)
+ public ApplicationContext(DatabaseContext dbContext, ServiceContext serviceContext, bool enableCache)
: this(enableCache)
{
- if (dbContext == null) throw new ArgumentNullException("dbContext");
- if (serviceContext == null) throw new ArgumentNullException("serviceContext");
-
_databaseContext = dbContext;
_services = serviceContext;
}
@@ -57,7 +54,7 @@ namespace Umbraco.Core
/// Constructor used to specify if we will enable application cache or not
///
///
- internal ApplicationContext(bool enableCache)
+ public ApplicationContext(bool enableCache)
{
//create a new application cache from the HttpRuntime.Cache
ApplicationCache = HttpRuntime.Cache == null
@@ -65,7 +62,55 @@ namespace Umbraco.Core
: new CacheHelper(HttpRuntime.Cache, enableCache);
}
- ///
+ ///
+ /// A method used to set and/or ensure that a global ApplicationContext singleton is created.
+ ///
+ ///
+ /// The instance to set on the global application singleton
+ ///
+ /// If set to true and the singleton is already set, it will be replaced
+ ///
+ ///
+ /// This is NOT thread safe
+ ///
+ public static ApplicationContext EnsureContext(ApplicationContext appContext, bool replaceContext)
+ {
+ if (ApplicationContext.Current != null)
+ {
+ if (!replaceContext)
+ return ApplicationContext.Current;
+ }
+ ApplicationContext.Current = appContext;
+ return ApplicationContext.Current;
+ }
+
+ ///
+ /// A method used to create and ensure that a global ApplicationContext singleton is created.
+ ///
+ ///
+ ///
+ /// If set to true will replace the current singleton instance - This should only be used for unit tests or on app
+ /// startup if for some reason the boot manager is not the umbraco boot manager.
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// This is NOT thread safe
+ ///
+ public static ApplicationContext EnsureContext(DatabaseContext dbContext, ServiceContext serviceContext, bool enableCache, bool replaceContext)
+ {
+ if (ApplicationContext.Current != null)
+ {
+ if (!replaceContext)
+ return ApplicationContext.Current;
+ }
+ var ctx = new ApplicationContext(dbContext, serviceContext, enableCache);
+ ApplicationContext.Current = ctx;
+ return ApplicationContext.Current;
+ }
+
+ ///
/// Singleton accessor
///
public static ApplicationContext Current { get; internal set; }
diff --git a/src/Umbraco.Core/DatabaseContext.cs b/src/Umbraco.Core/DatabaseContext.cs
index dbbc476ae9..4d5170ec80 100644
--- a/src/Umbraco.Core/DatabaseContext.cs
+++ b/src/Umbraco.Core/DatabaseContext.cs
@@ -28,7 +28,7 @@ namespace Umbraco.Core
private string _providerName;
private DatabaseSchemaResult _result;
- internal DatabaseContext(IDatabaseFactory factory)
+ public DatabaseContext(IDatabaseFactory factory)
{
_factory = factory;
}
diff --git a/src/Umbraco.Core/Persistence/IDatabaseFactory.cs b/src/Umbraco.Core/Persistence/IDatabaseFactory.cs
index 87c146fa0f..b0efb7f94a 100644
--- a/src/Umbraco.Core/Persistence/IDatabaseFactory.cs
+++ b/src/Umbraco.Core/Persistence/IDatabaseFactory.cs
@@ -5,7 +5,7 @@ namespace Umbraco.Core.Persistence
///
/// Used to create the UmbracoDatabase for use in the DatabaseContext
///
- internal interface IDatabaseFactory : IDisposable
+ public interface IDatabaseFactory : IDisposable
{
UmbracoDatabase CreateDatabase();
}
diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
index 710dc27d87..ab0a5e8e65 100644
--- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs
+++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
@@ -17,7 +17,7 @@ namespace Umbraco.Core.Persistence
}
- internal RepositoryFactory(bool disableAllCache)
+ public RepositoryFactory(bool disableAllCache)
{
_disableAllCache = disableAllCache;
}
diff --git a/src/Umbraco.Core/Services/EntityService.cs b/src/Umbraco.Core/Services/EntityService.cs
index 882aa86b4e..7e103c687b 100644
--- a/src/Umbraco.Core/Services/EntityService.cs
+++ b/src/Umbraco.Core/Services/EntityService.cs
@@ -10,7 +10,7 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public class EntityService : IService
+ public class EntityService : IService, IEntityService
{
private readonly IDatabaseUnitOfWorkProvider _uowProvider;
private readonly RepositoryFactory _repositoryFactory;
diff --git a/src/Umbraco.Core/Services/IEntityService.cs b/src/Umbraco.Core/Services/IEntityService.cs
new file mode 100644
index 0000000000..c32d755c3f
--- /dev/null
+++ b/src/Umbraco.Core/Services/IEntityService.cs
@@ -0,0 +1,146 @@
+using System;
+using System.Collections.Generic;
+using Umbraco.Core.Models;
+using Umbraco.Core.Models.EntityBase;
+
+namespace Umbraco.Core.Services
+{
+ public interface IEntityService
+ {
+ ///
+ /// Gets an UmbracoEntity by its Id, and optionally loads the complete object graph.
+ ///
+ ///
+ /// By default this will load the base type with a minimum set of properties.
+ ///
+ /// Id of the object to retrieve
+ /// Optional bool to load the complete object graph when set to False.
+ /// An
+ IUmbracoEntity Get(int id, bool loadBaseType = true);
+
+ ///
+ /// Gets an UmbracoEntity by its Id and UmbracoObjectType, and optionally loads the complete object graph.
+ ///
+ ///
+ /// By default this will load the base type with a minimum set of properties.
+ ///
+ /// Id of the object to retrieve
+ /// UmbracoObjectType of the entity to retrieve
+ /// Optional bool to load the complete object graph when set to False.
+ /// An
+ IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true);
+
+ ///
+ /// Gets an UmbracoEntity by its Id and specified Type. Optionally loads the complete object graph.
+ ///
+ ///
+ /// By default this will load the base type with a minimum set of properties.
+ ///
+ /// Type of the model to retrieve. Must be based on an
+ /// Id of the object to retrieve
+ /// Optional bool to load the complete object graph when set to False.
+ /// An
+ IUmbracoEntity Get(int id, bool loadBaseType = true) where T : IUmbracoEntity;
+
+ ///
+ /// Gets the parent of entity by its id
+ ///
+ /// Id of the entity to retrieve the Parent for
+ /// An
+ IUmbracoEntity GetParent(int id);
+
+ ///
+ /// Gets the parent of entity by its id and UmbracoObjectType
+ ///
+ /// Id of the entity to retrieve the Parent for
+ /// UmbracoObjectType of the parent to retrieve
+ /// An
+ IUmbracoEntity GetParent(int id, UmbracoObjectTypes umbracoObjectType);
+
+ ///
+ /// Gets a collection of children by the parents Id
+ ///
+ /// Id of the parent to retrieve children for
+ /// An enumerable list of objects
+ IEnumerable GetChildren(int parentId);
+
+ ///
+ /// Gets a collection of children by the parents Id and UmbracoObjectType
+ ///
+ /// Id of the parent to retrieve children for
+ /// UmbracoObjectType of the children to retrieve
+ /// An enumerable list of objects
+ IEnumerable GetChildren(int parentId, UmbracoObjectTypes umbracoObjectType);
+
+ ///
+ /// Gets a collection of descendents by the parents Id
+ ///
+ /// Id of entity to retrieve descendents for
+ /// An enumerable list of objects
+ IEnumerable GetDescendents(int id);
+
+ ///
+ /// Gets a collection of descendents by the parents Id
+ ///
+ /// Id of entity to retrieve descendents for
+ /// UmbracoObjectType of the descendents to retrieve
+ /// An enumerable list of objects
+ IEnumerable GetDescendents(int id, UmbracoObjectTypes umbracoObjectType);
+
+ ///
+ /// Gets a collection of the entities at the root, which corresponds to the entities with a Parent Id of -1.
+ ///
+ /// UmbracoObjectType of the root entities to retrieve
+ /// An enumerable list of objects
+ IEnumerable GetRootEntities(UmbracoObjectTypes umbracoObjectType);
+
+ ///
+ /// Gets a collection of all of a given type.
+ ///
+ /// Type of the entities to retrieve
+ /// An enumerable list of objects
+ IEnumerable GetAll() where T : IUmbracoEntity;
+
+ ///
+ /// Gets a collection of all of a given type.
+ ///
+ /// UmbracoObjectType of the entities to return
+ /// An enumerable list of objects
+ IEnumerable GetAll(UmbracoObjectTypes umbracoObjectType);
+
+ ///
+ /// Gets a collection of
+ ///
+ /// Guid id of the UmbracoObjectType
+ /// An enumerable list of objects
+ IEnumerable GetAll(Guid objectTypeId);
+
+ ///
+ /// Gets the UmbracoObjectType from the integer id of an IUmbracoEntity.
+ ///
+ /// Id of the entity
+ ///
+ UmbracoObjectTypes GetObjectType(int id);
+
+ ///
+ /// Gets the UmbracoObjectType from an IUmbracoEntity.
+ ///
+ ///
+ ///
+ UmbracoObjectTypes GetObjectType(IUmbracoEntity entity);
+
+ ///
+ /// Gets the Type of an entity by its Id
+ ///
+ /// Id of the entity
+ /// Type of the entity
+ Type GetEntityType(int id);
+
+ ///
+ /// Gets the Type of an entity by its
+ ///
+ ///
+ /// Type of the entity
+ Type GetEntityType(UmbracoObjectTypes umbracoObjectType);
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Services/RelationService.cs b/src/Umbraco.Core/Services/RelationService.cs
index 83d09023ab..29a42da115 100644
--- a/src/Umbraco.Core/Services/RelationService.cs
+++ b/src/Umbraco.Core/Services/RelationService.cs
@@ -13,10 +13,10 @@ namespace Umbraco.Core.Services
{
private readonly IDatabaseUnitOfWorkProvider _uowProvider;
private readonly RepositoryFactory _repositoryFactory;
- private readonly EntityService _entityService;
+ private readonly IEntityService _entityService;
public RelationService(IDatabaseUnitOfWorkProvider uowProvider, RepositoryFactory repositoryFactory,
- EntityService entityService)
+ IEntityService entityService)
{
_uowProvider = uowProvider;
_repositoryFactory = repositoryFactory;
diff --git a/src/Umbraco.Core/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs
index 4e18f16063..b6ccfc3d81 100644
--- a/src/Umbraco.Core/Services/ServiceContext.cs
+++ b/src/Umbraco.Core/Services/ServiceContext.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Core.Services
private Lazy _localizationService;
private Lazy _packagingService;
private Lazy _serverRegistrationService;
- private Lazy _entityService;
+ private Lazy _entityService;
private Lazy _relationService;
private Lazy _memberTypeService;
@@ -36,23 +36,19 @@ namespace Umbraco.Core.Services
///
///
///
- ///
///
///
- ///
- public ServiceContext(Lazy contentService, Lazy mediaService, Lazy contentTypeService, Lazy dataTypeService, Lazy fileService, Lazy localizationService, Lazy packagingService, Lazy serverRegistrationService, Lazy entityService, Lazy relationService, Lazy memberTypeService)
+ public ServiceContext(IContentService contentService, IMediaService mediaService, IContentTypeService contentTypeService, IDataTypeService dataTypeService, IFileService fileService, ILocalizationService localizationService, PackagingService packagingService, IEntityService entityService, RelationService relationService)
{
- _contentService = contentService;
- _mediaService = mediaService;
- _contentTypeService = contentTypeService;
- _dataTypeService = dataTypeService;
- _fileService = fileService;
- _localizationService = localizationService;
- _packagingService = packagingService;
- _serverRegistrationService = serverRegistrationService;
- _entityService = entityService;
- _relationService = relationService;
- _memberTypeService = memberTypeService;
+ _contentService = new Lazy(() => contentService);
+ _mediaService = new Lazy(() => mediaService);
+ _contentTypeService = new Lazy(() => contentTypeService);
+ _dataTypeService = new Lazy(() => dataTypeService);
+ _fileService = new Lazy(() => fileService);
+ _localizationService = new Lazy(() => localizationService);
+ _packagingService = new Lazy(() => packagingService);
+ _entityService = new Lazy(() => entityService);
+ _relationService = new Lazy(() => relationService);
}
///
@@ -112,7 +108,7 @@ namespace Umbraco.Core.Services
_packagingService = new Lazy(() => new PackagingService(_contentService.Value, _contentTypeService.Value, _mediaService.Value, _dataTypeService.Value, _fileService.Value, _localizationService.Value, repositoryFactory.Value, provider));
if (_entityService == null)
- _entityService = new Lazy(() => new EntityService(provider, repositoryFactory.Value, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _dataTypeService.Value));
+ _entityService = new Lazy(() => new EntityService(provider, repositoryFactory.Value, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _dataTypeService.Value));
if (_relationService == null)
_relationService = new Lazy(() => new RelationService(provider, repositoryFactory.Value, _entityService.Value));
@@ -132,7 +128,7 @@ namespace Umbraco.Core.Services
///
/// Gets the
///
- public EntityService EntityService
+ public IEntityService EntityService
{
get { return _entityService.Value; }
}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 53672bb4aa..5db9dd7d56 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -714,6 +714,7 @@
+
diff --git a/src/Umbraco.Tests/MockTests.cs b/src/Umbraco.Tests/MockTests.cs
new file mode 100644
index 0000000000..be31d2dbf4
--- /dev/null
+++ b/src/Umbraco.Tests/MockTests.cs
@@ -0,0 +1,124 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web;
+using NUnit.Framework;
+using Umbraco.Core;
+using Umbraco.Core.Persistence;
+using Umbraco.Core.Persistence.UnitOfWork;
+using Umbraco.Core.Services;
+using Moq;
+using Umbraco.Web;
+
+namespace Umbraco.Tests
+{
+ [TestFixture]
+ public class MockTests
+ {
+
+ [Test]
+ public void Can_Create_Empty_App_Context()
+ {
+ var appCtx = new ApplicationContext(false);
+ Assert.Pass();
+ }
+
+ [Test]
+ public void Can_Create_Service_Context()
+ {
+ var svcCtx = new ServiceContext(
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new PackagingService(
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new RepositoryFactory(true),
+ new Mock().Object),
+ new Mock().Object,
+ new RelationService(
+ new Mock().Object,
+ new RepositoryFactory(true),
+ new Mock().Object));
+ Assert.Pass();
+ }
+
+ [Test]
+ public void Can_Create_Db_Context()
+ {
+ var dbCtx = new DatabaseContext(new Mock().Object);
+ Assert.Pass();
+ }
+
+ [Test]
+ public void Can_Create_App_Context_With_Services()
+ {
+ var appCtx = new ApplicationContext(
+ new DatabaseContext(new Mock().Object),
+ new ServiceContext(
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new PackagingService(
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new Mock().Object,
+ new RepositoryFactory(true),
+ new Mock().Object),
+ new Mock().Object,
+ new RelationService(
+ new Mock().Object,
+ new RepositoryFactory(true),
+ new Mock().Object)),
+ false);
+ Assert.Pass();
+ }
+
+ [Test]
+ public void Can_Assign_App_Context_Singleton()
+ {
+ var appCtx = new ApplicationContext(false);
+ var result = ApplicationContext.EnsureContext(appCtx, true);
+ Assert.AreEqual(appCtx, result);
+ }
+
+ [Test]
+ public void Does_Not_Overwrite_App_Context_Singleton()
+ {
+ ApplicationContext.EnsureContext(new ApplicationContext(false), true);
+ var appCtx = new ApplicationContext(false);
+ var result = ApplicationContext.EnsureContext(appCtx, false);
+ Assert.AreNotEqual(appCtx, result);
+ }
+
+ [NUnit.Framework.Ignore("Need to fix more stuff up, this is ignore because an exception occurs because it wants to ensure we have a resolver initialized - need to make that process better for testability")]
+ [Test]
+ public void Can_Get_Umbraco_Context()
+ {
+ var appCtx = new ApplicationContext(false);
+ ApplicationContext.EnsureContext(appCtx, true);
+
+ var umbCtx = UmbracoContext.EnsureContext(
+ new Mock().Object,
+ appCtx,
+ true);
+
+ Assert.AreEqual(umbCtx, UmbracoContext.Current);
+ }
+
+ }
+}
diff --git a/src/Umbraco.Tests/Auditing/AuditTests.cs b/src/Umbraco.Tests/Persistence/Auditing/AuditTests.cs
similarity index 92%
rename from src/Umbraco.Tests/Auditing/AuditTests.cs
rename to src/Umbraco.Tests/Persistence/Auditing/AuditTests.cs
index ff5e6bb164..68e7bcb003 100644
--- a/src/Umbraco.Tests/Auditing/AuditTests.cs
+++ b/src/Umbraco.Tests/Persistence/Auditing/AuditTests.cs
@@ -1,35 +1,35 @@
-using System.Linq;
-using NUnit.Framework;
-using Umbraco.Core.Auditing;
-using Umbraco.Core.Models.Rdbms;
-using Umbraco.Tests.TestHelpers;
-
-namespace Umbraco.Tests.Auditing
-{
- [TestFixture]
- public class AuditTests : BaseDatabaseFactoryTest
- {
- [SetUp]
- public override void Initialize()
- {
- base.Initialize();
- }
-
- [Test]
- public void Can_Add_Audit_Entry()
- {
- Audit.Add(AuditTypes.System, "This is a System audit trail", 0, -1);
-
- var dtos = DatabaseContext.Database.Fetch("WHERE id > -1");
-
- Assert.That(dtos.Any(), Is.True);
- Assert.That(dtos.First().Comment, Is.EqualTo("This is a System audit trail"));
- }
-
- [TearDown]
- public override void TearDown()
- {
- base.TearDown();
- }
- }
+using System.Linq;
+using NUnit.Framework;
+using Umbraco.Core.Auditing;
+using Umbraco.Core.Models.Rdbms;
+using Umbraco.Tests.TestHelpers;
+
+namespace Umbraco.Tests.Persistence.Auditing
+{
+ [TestFixture]
+ public class AuditTests : BaseDatabaseFactoryTest
+ {
+ [SetUp]
+ public override void Initialize()
+ {
+ base.Initialize();
+ }
+
+ [Test]
+ public void Can_Add_Audit_Entry()
+ {
+ Audit.Add(AuditTypes.System, "This is a System audit trail", 0, -1);
+
+ var dtos = DatabaseContext.Database.Fetch("WHERE id > -1");
+
+ Assert.That(dtos.Any(), Is.True);
+ Assert.That(dtos.First().Comment, Is.EqualTo("This is a System audit trail"));
+ }
+
+ [TearDown]
+ public override void TearDown()
+ {
+ base.TearDown();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
index 2b00ea75cf..4b13acf7ee 100644
--- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
+++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
@@ -3,8 +3,8 @@ using System.Web.Routing;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Models;
-using Umbraco.Tests.Stubs;
using Umbraco.Tests.TestHelpers;
+using Umbraco.Tests.TestHelpers.Stubs;
using Umbraco.Web;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
diff --git a/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs b/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs
index 24bc912f91..53d5301246 100644
--- a/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs
+++ b/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs
@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
-using Umbraco.Tests.Stubs;
using Umbraco.Tests.TestHelpers;
using System.Configuration;
+using Umbraco.Tests.TestHelpers.Stubs;
using Umbraco.Web;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
using Umbraco.Web.Routing;
diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
index 00896040a9..57355f3e7a 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
@@ -19,7 +19,6 @@ using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Publishing;
using Umbraco.Core.Services;
-using Umbraco.Tests.Stubs;
using Umbraco.Web;
using Umbraco.Web.PublishedCache;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
diff --git a/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs b/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs
index ab787bf105..d55a437976 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs
@@ -4,7 +4,7 @@ using System.Web.Routing;
using NUnit.Framework;
using Umbraco.Core.Configuration;
using Umbraco.Core.Models;
-using Umbraco.Tests.Stubs;
+using Umbraco.Tests.TestHelpers.Stubs;
using Umbraco.Web;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
using Umbraco.Web.Routing;
diff --git a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
index 95e89468c3..a635a42269 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
@@ -12,7 +12,6 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Publishing;
using Umbraco.Core.Services;
-using Umbraco.Tests.Stubs;
using Umbraco.Web;
using Umbraco.Web.Routing;
using umbraco.BusinessLogic;
diff --git a/src/Umbraco.Tests/Stubs/FakeLastChanceFinder.cs b/src/Umbraco.Tests/TestHelpers/Stubs/FakeLastChanceFinder.cs
similarity index 81%
rename from src/Umbraco.Tests/Stubs/FakeLastChanceFinder.cs
rename to src/Umbraco.Tests/TestHelpers/Stubs/FakeLastChanceFinder.cs
index 9090909baa..c9f5dbe024 100644
--- a/src/Umbraco.Tests/Stubs/FakeLastChanceFinder.cs
+++ b/src/Umbraco.Tests/TestHelpers/Stubs/FakeLastChanceFinder.cs
@@ -1,12 +1,12 @@
-using Umbraco.Web.Routing;
-
-namespace Umbraco.Tests.Stubs
-{
- internal class FakeLastChanceFinder : IContentFinder
- {
- public bool TryFindContent(PublishedContentRequest docRequest)
- {
- return false;
- }
- }
+using Umbraco.Web.Routing;
+
+namespace Umbraco.Tests.TestHelpers.Stubs
+{
+ internal class FakeLastChanceFinder : IContentFinder
+ {
+ public bool TryFindContent(PublishedContentRequest docRequest)
+ {
+ return false;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Stubs/TestControllerFactory.cs b/src/Umbraco.Tests/TestHelpers/Stubs/TestControllerFactory.cs
similarity index 94%
rename from src/Umbraco.Tests/Stubs/TestControllerFactory.cs
rename to src/Umbraco.Tests/TestHelpers/Stubs/TestControllerFactory.cs
index 872093f896..5796ee5bc3 100644
--- a/src/Umbraco.Tests/Stubs/TestControllerFactory.cs
+++ b/src/Umbraco.Tests/TestHelpers/Stubs/TestControllerFactory.cs
@@ -1,40 +1,40 @@
-using System;
-using System.Linq;
-using System.Reflection;
-using System.Web.Mvc;
-using System.Web.Routing;
-using System.Web.SessionState;
-using Umbraco.Core;
-
-namespace Umbraco.Tests.Stubs
-{
- ///
- /// Used in place of the UmbracoControllerFactory which relies on BuildManager which throws exceptions in a unit test context
- ///
- internal class TestControllerFactory : IControllerFactory
- {
-
- public IController CreateController(RequestContext requestContext, string controllerName)
- {
- var types = TypeFinder.FindClassesOfType(new[] { Assembly.GetExecutingAssembly() });
-
- var controllerTypes = types.Where(x => x.Name.Equals(controllerName + "Controller", StringComparison.InvariantCultureIgnoreCase));
- var t = controllerTypes.SingleOrDefault();
-
- if (t == null)
- return null;
-
- return Activator.CreateInstance(t) as IController;
- }
-
- public System.Web.SessionState.SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
- {
- return SessionStateBehavior.Disabled;
- }
-
- public void ReleaseController(IController controller)
- {
- controller.DisposeIfDisposable();
- }
- }
+using System;
+using System.Linq;
+using System.Reflection;
+using System.Web.Mvc;
+using System.Web.Routing;
+using System.Web.SessionState;
+using Umbraco.Core;
+
+namespace Umbraco.Tests.TestHelpers.Stubs
+{
+ ///
+ /// Used in place of the UmbracoControllerFactory which relies on BuildManager which throws exceptions in a unit test context
+ ///
+ internal class TestControllerFactory : IControllerFactory
+ {
+
+ public IController CreateController(RequestContext requestContext, string controllerName)
+ {
+ var types = TypeFinder.FindClassesOfType(new[] { Assembly.GetExecutingAssembly() });
+
+ var controllerTypes = types.Where(x => x.Name.Equals(controllerName + "Controller", StringComparison.InvariantCultureIgnoreCase));
+ var t = controllerTypes.SingleOrDefault();
+
+ if (t == null)
+ return null;
+
+ return Activator.CreateInstance(t) as IController;
+ }
+
+ public System.Web.SessionState.SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
+ {
+ return SessionStateBehavior.Disabled;
+ }
+
+ public void ReleaseController(IController controller)
+ {
+ controller.DisposeIfDisposable();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index 469caa926c..da950ed3b1 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -144,7 +144,8 @@
-
+
+
@@ -355,7 +356,7 @@
-
+
@@ -391,7 +392,7 @@
-
+