diff --git a/src/Umbraco.Core/DatabaseContext.cs b/src/Umbraco.Core/DatabaseContext.cs index 674a95867d..f4659bf6c3 100644 --- a/src/Umbraco.Core/DatabaseContext.cs +++ b/src/Umbraco.Core/DatabaseContext.cs @@ -26,40 +26,12 @@ namespace Umbraco.Core private bool _configured; private string _connectionString; private string _providerName; - //private static readonly object Locker = new object(); - //private static DatabaseContext _databaseContext; - - //#region Singleton - - ///// - ///// Gets the current Database Context. - ///// - //public static DatabaseContext Current - //{ - // get - // { - // if (_databaseContext == null) - // throw new InvalidOperationException("The DatabaseContext hasn't been initialized. Ensure that the CoreBootManager has been used to boot the application"); - // return _databaseContext; - // } - // internal set - // { - // lock(Locker) - // { - // _databaseContext = value; - // } - // } - //} - - //#endregion internal DatabaseContext(IDatabaseFactory factory) { _factory = factory; } - - /// /// Gets the object for doing CRUD operations /// against custom tables that resides in the Umbraco database. diff --git a/src/Umbraco.Tests/Persistence/MySqlTableByTableTest.cs b/src/Umbraco.Tests/Persistence/MySqlTableByTableTest.cs index ed7eae4621..a7633474f1 100644 --- a/src/Umbraco.Tests/Persistence/MySqlTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/MySqlTableByTableTest.cs @@ -1,7 +1,13 @@ using System; using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration; +using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; +using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Publishing; +using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Persistence @@ -16,9 +22,24 @@ namespace Umbraco.Tests.Persistence [SetUp] public override void Initialize() { + TestHelper.SetupLog4NetForTests(); + TestHelper.InitializeContentDirectories(); + string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); + UmbracoSettings.UseLegacyXmlSchema = false; + + RepositoryResolver.Current = new RepositoryResolver( + new RepositoryFactory()); + + Resolution.Freeze(); + ApplicationContext.Current = new ApplicationContext( + //assign the db context + new DatabaseContext(new DefaultDatabaseFactory()), + //assign the service context + new ServiceContext(new PetaPocoUnitOfWorkProvider(), new FileUnitOfWorkProvider(), new PublishingStrategy())) { IsReady = true }; + SyntaxConfig.SqlSyntaxProvider = MySqlSyntaxProvider.Instance; _database = new Database("Server = 192.168.1.108; Database = testDb; Uid = umbraco; Pwd = umbraco", @@ -29,6 +50,12 @@ namespace Umbraco.Tests.Persistence public override void TearDown() { AppDomain.CurrentDomain.SetData("DataDirectory", null); + + //reset the app context + ApplicationContext.Current = null; + Resolution.IsFrozen = false; + + RepositoryResolver.Reset(); } public override Database Database diff --git a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs index a7d2892afa..c1f0dd1d95 100644 --- a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs @@ -1,10 +1,15 @@ using System; -using System.Configuration; using System.Data.SqlServerCe; using System.IO; using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration; +using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; +using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Publishing; +using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Persistence @@ -19,6 +24,9 @@ namespace Umbraco.Tests.Persistence [SetUp] public override void Initialize() { + TestHelper.SetupLog4NetForTests(); + TestHelper.InitializeContentDirectories(); + string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); @@ -33,6 +41,18 @@ namespace Umbraco.Tests.Persistence var engine = new SqlCeEngine("Datasource=|DataDirectory|test.sdf"); engine.CreateDatabase(); + UmbracoSettings.UseLegacyXmlSchema = false; + + RepositoryResolver.Current = new RepositoryResolver( + new RepositoryFactory()); + + Resolution.Freeze(); + ApplicationContext.Current = new ApplicationContext( + //assign the db context + new DatabaseContext(new DefaultDatabaseFactory()), + //assign the service context + new ServiceContext(new PetaPocoUnitOfWorkProvider(), new FileUnitOfWorkProvider(), new PublishingStrategy())) { IsReady = true }; + SyntaxConfig.SqlSyntaxProvider = SqlCeSyntaxProvider.Instance; _database = new Database("Datasource=|DataDirectory|test.sdf", @@ -43,6 +63,12 @@ namespace Umbraco.Tests.Persistence public override void TearDown() { AppDomain.CurrentDomain.SetData("DataDirectory", null); + + //reset the app context + ApplicationContext.Current = null; + Resolution.IsFrozen = false; + + RepositoryResolver.Reset(); } public override Database Database diff --git a/src/Umbraco.Tests/Persistence/SqlTableByTableTest.cs b/src/Umbraco.Tests/Persistence/SqlTableByTableTest.cs index df298b70f2..0512b8bea7 100644 --- a/src/Umbraco.Tests/Persistence/SqlTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/SqlTableByTableTest.cs @@ -1,7 +1,13 @@ using System; using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration; +using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; +using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Publishing; +using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Persistence @@ -16,9 +22,24 @@ namespace Umbraco.Tests.Persistence [SetUp] public override void Initialize() { + TestHelper.SetupLog4NetForTests(); + TestHelper.InitializeContentDirectories(); + string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); + UmbracoSettings.UseLegacyXmlSchema = false; + + RepositoryResolver.Current = new RepositoryResolver( + new RepositoryFactory()); + + Resolution.Freeze(); + ApplicationContext.Current = new ApplicationContext( + //assign the db context + new DatabaseContext(new DefaultDatabaseFactory()), + //assign the service context + new ServiceContext(new PetaPocoUnitOfWorkProvider(), new FileUnitOfWorkProvider(), new PublishingStrategy())) { IsReady = true }; + SyntaxConfig.SqlSyntaxProvider = SqlServerSyntaxProvider.Instance; _database = new Database(@"server=.\SQLEXPRESS;database=EmptyForTest;user id=umbraco;password=umbraco", @@ -29,6 +50,12 @@ namespace Umbraco.Tests.Persistence public override void TearDown() { AppDomain.CurrentDomain.SetData("DataDirectory", null); + + //reset the app context + ApplicationContext.Current = null; + Resolution.IsFrozen = false; + + RepositoryResolver.Reset(); } public override Database Database diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs index b81675789a..4644977b5a 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs @@ -7,7 +7,6 @@ using System.Xml; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Configuration; -using Umbraco.Core.IO; using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.UnitOfWork; diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs index 673c47d3e6..cb9dd95e11 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs @@ -2,8 +2,14 @@ using System.Data.SqlServerCe; using System.IO; using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration; +using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; +using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Publishing; +using Umbraco.Core.Services; namespace Umbraco.Tests.TestHelpers { @@ -21,6 +27,9 @@ namespace Umbraco.Tests.TestHelpers [SetUp] public virtual void Initialize() { + TestHelper.SetupLog4NetForTests(); + TestHelper.InitializeContentDirectories(); + string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); @@ -39,6 +48,18 @@ namespace Umbraco.Tests.TestHelpers engine.CreateDatabase(); } + UmbracoSettings.UseLegacyXmlSchema = false; + + RepositoryResolver.Current = new RepositoryResolver( + new RepositoryFactory()); + + Resolution.Freeze(); + ApplicationContext.Current = new ApplicationContext( + //assign the db context + new DatabaseContext(new DefaultDatabaseFactory()), + //assign the service context + new ServiceContext(new PetaPocoUnitOfWorkProvider(), new FileUnitOfWorkProvider(), new PublishingStrategy())) { IsReady = true }; + SyntaxConfig.SqlSyntaxProvider = SyntaxProvider; //Create the umbraco database @@ -59,6 +80,12 @@ namespace Umbraco.Tests.TestHelpers public virtual void TearDown() { AppDomain.CurrentDomain.SetData("DataDirectory", null); + + //reset the app context + ApplicationContext.Current = null; + Resolution.IsFrozen = false; + + RepositoryResolver.Reset(); } } } \ No newline at end of file