From cc45bbeca6e33a2c34f81652584bae7502f22f8b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 23 Aug 2013 16:22:26 +0200 Subject: [PATCH] Fix unit tests that failed because UmbracoSettings.config was being cleaned up --- .../CodeFirst/StronglyTypedMapperTest.cs | 24 ++----------- .../LegacyShortStringHelperTests.cs | 21 ++--------- src/Umbraco.Tests/LibraryTests.cs | 26 -------------- src/Umbraco.Tests/Models/ContentTests.cs | 13 +++++++ .../PublishedContent/DynamicNodeTests.cs | 33 +---------------- .../DynamicPublishedContentTests.cs | 28 --------------- .../PublishedContentTestBase.cs | 2 -- .../Routing/NiceUrlProviderTests.cs | 35 ------------------- .../TestHelpers/BaseUmbracoApplicationTest.cs | 2 ++ src/Umbraco.Tests/TestHelpers/TestHelper.cs | 34 ++++++++++++++++++ 10 files changed, 55 insertions(+), 163 deletions(-) diff --git a/src/Umbraco.Tests/CodeFirst/StronglyTypedMapperTest.cs b/src/Umbraco.Tests/CodeFirst/StronglyTypedMapperTest.cs index de2c109af4..26054a6fdf 100644 --- a/src/Umbraco.Tests/CodeFirst/StronglyTypedMapperTest.cs +++ b/src/Umbraco.Tests/CodeFirst/StronglyTypedMapperTest.cs @@ -58,34 +58,14 @@ namespace Umbraco.Tests.CodeFirst #region Test setup public override void Initialize() { - var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (System.IO.File.Exists(umbracoSettingsFile) == false) - System.IO.File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - Core.Configuration.UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); + TestHelper.EnsureUmbracoSettingsConfig(); base.Initialize(); } public override void TearDown() { - var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (System.IO.File.Exists(umbracoSettingsFile)) - System.IO.File.Delete(umbracoSettingsFile); + TestHelper.CleanUmbracoSettingsConfig(); base.TearDown(); } diff --git a/src/Umbraco.Tests/CoreStrings/LegacyShortStringHelperTests.cs b/src/Umbraco.Tests/CoreStrings/LegacyShortStringHelperTests.cs index ba88bf447b..e26a8a9d07 100644 --- a/src/Umbraco.Tests/CoreStrings/LegacyShortStringHelperTests.cs +++ b/src/Umbraco.Tests/CoreStrings/LegacyShortStringHelperTests.cs @@ -6,6 +6,7 @@ using System.Text; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Strings; +using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.CoreStrings { @@ -17,30 +18,14 @@ namespace Umbraco.Tests.CoreStrings [SetUp] public void Setup() { + TestHelper.EnsureUmbracoSettingsConfig(); _helper = new LegacyShortStringHelper(); - var currDir = new DirectoryInfo(TestHelpers.TestHelper.CurrentAssemblyDirectory); - Directory.CreateDirectory(Path.Combine(currDir.Parent.Parent.FullName, "config")); - File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - Core.Configuration.UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); } [TearDown] public void TearDown() { - //TODO: Deleting the umbracoSettings.config file makes a lot of tests fail - - //var currDir = new DirectoryInfo(TestHelpers.TestHelper.CurrentAssemblyDirectory); - - //var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - //if (File.Exists(umbracoSettingsFile)) - // File.Delete(umbracoSettingsFile); + TestHelper.CleanUmbracoSettingsConfig(); } diff --git a/src/Umbraco.Tests/LibraryTests.cs b/src/Umbraco.Tests/LibraryTests.cs index fa365e8b0b..9cc6302761 100644 --- a/src/Umbraco.Tests/LibraryTests.cs +++ b/src/Umbraco.Tests/LibraryTests.cs @@ -25,36 +25,10 @@ namespace Umbraco.Tests var routingContext = GetRoutingContext("/test", 1234); UmbracoContext.Current = routingContext.UmbracoContext; - - var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (File.Exists(umbracoSettingsFile) == false) - File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - Core.Configuration.UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); } public override void TearDown() { - //TODO: Deleting the umbracoSettings.config file makes a lot of tests fail - - //var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - //var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - //if (File.Exists(umbracoSettingsFile)) - // File.Delete(umbracoSettingsFile); - base.TearDown(); UmbracoContext.Current = null; } diff --git a/src/Umbraco.Tests/Models/ContentTests.cs b/src/Umbraco.Tests/Models/ContentTests.cs index 292fa89a80..0268689d39 100644 --- a/src/Umbraco.Tests/Models/ContentTests.cs +++ b/src/Umbraco.Tests/Models/ContentTests.cs @@ -6,6 +6,7 @@ using System.Web; using NUnit.Framework; using Rhino.Mocks; using Umbraco.Core.Models; +using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; namespace Umbraco.Tests.Models @@ -13,6 +14,18 @@ namespace Umbraco.Tests.Models [TestFixture] public class ContentTests { + [SetUp] + public void Init() + { + TestHelper.EnsureUmbracoSettingsConfig(); + } + + [TearDown] + public void Dispose() + { + TestHelper.CleanUmbracoSettingsConfig(); + } + [Test] public void All_Dirty_Properties_Get_Reset() { diff --git a/src/Umbraco.Tests/PublishedContent/DynamicNodeTests.cs b/src/Umbraco.Tests/PublishedContent/DynamicNodeTests.cs index a8db72ad5e..903c4ba3d2 100644 --- a/src/Umbraco.Tests/PublishedContent/DynamicNodeTests.cs +++ b/src/Umbraco.Tests/PublishedContent/DynamicNodeTests.cs @@ -28,25 +28,7 @@ namespace Umbraco.Tests.PublishedContent public override void Initialize() { base.Initialize(); - //copy the umbraco settings file over - var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (File.Exists(umbracoSettingsFile) == false) - File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - UmbracoSettings.SettingsFilePath = IOHelper.MapPath(SystemDirectories.Config + Path.DirectorySeparatorChar, false); - + //need to specify a custom callback for unit tests DynamicNode.GetDataTypeCallback = (docTypeAlias, propertyAlias) => { @@ -81,19 +63,6 @@ namespace Umbraco.Tests.PublishedContent base.Is_Position_Root_Nodes(); } - public override void TearDown() - { - //TODO: Deleting the umbracoSettings.config file makes a lot of tests fail - - //var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - //var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - //if (File.Exists(umbracoSettingsFile)) - // File.Delete(umbracoSettingsFile); - - base.TearDown(); - } - protected override dynamic GetDynamicNode(int id) { //var template = Template.MakeNew("test", new User(0)); diff --git a/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs b/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs index 0bf8784ab0..a6e7335784 100644 --- a/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs +++ b/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs @@ -14,34 +14,6 @@ namespace Umbraco.Tests.PublishedContent [TestFixture] public class DynamicPublishedContentTests : DynamicDocumentTestsBase { - public override void Initialize() - { - var currDir = new DirectoryInfo(TestHelpers.TestHelper.CurrentAssemblyDirectory); - - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (System.IO.File.Exists(umbracoSettingsFile) == false) - System.IO.File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - Core.Configuration.UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); - - base.Initialize(); - } - - public override void TearDown() - { - base.TearDown(); - } - internal DynamicPublishedContent GetNode(int id) { //var template = Template.MakeNew("test", new User(0)); diff --git a/src/Umbraco.Tests/PublishedContent/PublishedContentTestBase.cs b/src/Umbraco.Tests/PublishedContent/PublishedContentTestBase.cs index 2882b124c2..b4e44dc216 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedContentTestBase.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedContentTestBase.cs @@ -19,8 +19,6 @@ namespace Umbraco.Tests.PublishedContent { base.Initialize(); - UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); - //need to specify a custom callback for unit tests PublishedContentHelper.GetDataTypeCallback = (docTypeAlias, propertyAlias) => { diff --git a/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs b/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs index 8d58c386b2..55d2c92df8 100644 --- a/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs +++ b/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs @@ -13,41 +13,6 @@ namespace Umbraco.Tests.Routing [TestFixture] public class NiceUrlProviderTests : BaseRoutingTest { - public override void Initialize() - { - base.Initialize(); - - var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); - - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (File.Exists(umbracoSettingsFile) == false) - File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); - - SettingsForTests.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); - } - - - public void TearDown() - { - //TODO: Deleting the umbracoSettings.config file makes a lot of tests fail - - //var currDir = new DirectoryInfo(TestHelper.CurrentAssemblyDirectory); - - //var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - //if (File.Exists(umbracoSettingsFile)) - // File.Delete(umbracoSettingsFile); - } - protected override void FreezeResolution() { SiteDomainHelperResolver.Current = new SiteDomainHelperResolver(new SiteDomainHelper()); diff --git a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs index d898ef6c5f..a3e93bfc07 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs @@ -18,6 +18,7 @@ namespace Umbraco.Tests.TestHelpers { TestHelper.SetupLog4NetForTests(); TestHelper.InitializeContentDirectories(); + TestHelper.EnsureUmbracoSettingsConfig(); SettingsForTests.UseLegacyXmlSchema = false; SettingsForTests.ForceSafeAliases = true; @@ -37,6 +38,7 @@ namespace Umbraco.Tests.TestHelpers SettingsForTests.Reset(); UmbracoContext.Current = null; TestHelper.CleanContentDirectories(); + TestHelper.CleanUmbracoSettingsConfig(); //reset the app context, this should reset most things that require resetting like ALL resolvers ApplicationContext.Current.DisposeIfDisposable(); ApplicationContext.Current = null; diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index 5c4eaad051..58cc7c6974 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -1,6 +1,7 @@ using System; using System.Configuration; using System.IO; +using System.Linq; using System.Reflection; using SqlCE4Umbraco; using Umbraco.Core; @@ -123,5 +124,38 @@ namespace Umbraco.Tests.TestHelpers directoryInfo.GetFiles().ForEach(x => x.Delete()); } } + + + public static void EnsureUmbracoSettingsConfig() + { + var currDir = new DirectoryInfo(CurrentAssemblyDirectory); + + var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); + if (Directory.Exists(configPath) == false) + Directory.CreateDirectory(configPath); + + var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); + if (File.Exists(umbracoSettingsFile) == false) + File.Copy( + currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") + .First() + .GetDirectories("config").First() + .GetFiles("umbracoSettings.Release.config").First().FullName, + Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), + true); + + Core.Configuration.UmbracoSettings.SettingsFilePath = IOHelper.MapPath(SystemDirectories.Config + Path.DirectorySeparatorChar, false); + } + + public static void CleanUmbracoSettingsConfig() + { + var currDir = new DirectoryInfo(CurrentAssemblyDirectory); + + var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); + if (File.Exists(umbracoSettingsFile)) + File.Delete(umbracoSettingsFile); + } + + } } \ No newline at end of file