Improves test suite performance - this should shed a few minutes off of the test runs.

This commit is contained in:
Shannon
2013-12-28 14:35:43 +11:00
parent b924b06062
commit 57d1ff20fd
10 changed files with 75 additions and 38 deletions

View File

@@ -78,7 +78,7 @@ namespace Umbraco.Tests.PublishedCache
//ensure the StateHelper is using our custom context
StateHelper.HttpContext = _httpContextFactory.HttpContext;
var settings = SettingsForTests.GetMockSettings();
var settings = SettingsForTests.GenerateMockSettings();
var contentMock = Mock.Get(settings.Content);
contentMock.Setup(x => x.UseLegacyXmlSchema).Returns(false);
SettingsForTests.ConfigureSettings(settings);
@@ -100,7 +100,7 @@ namespace Umbraco.Tests.PublishedCache
private void SetupForLegacy()
{
var settings = SettingsForTests.GetMockSettings();
var settings = SettingsForTests.GenerateMockSettings();
var contentMock = Mock.Get(settings.Content);
contentMock.Setup(x => x.UseLegacyXmlSchema).Returns(true);
SettingsForTests.ConfigureSettings(settings);

View File

@@ -22,6 +22,8 @@ namespace Umbraco.Tests.PublishedContent
get { return DatabaseBehavior.NoDatabasePerFixture; }
}
private IUmbracoSettingsSection _umbracoSettings;
public override void Initialize()
{
// required so we can access property.Value
@@ -29,7 +31,11 @@ namespace Umbraco.Tests.PublishedContent
base.Initialize();
var scriptingMock = Mock.Get(UmbracoSettings.Scripting);
//generate new mock settings and assign so we can configure in individual tests
_umbracoSettings = SettingsForTests.GenerateMockSettings();
SettingsForTests.ConfigureSettings(_umbracoSettings);
var scriptingMock = Mock.Get(_umbracoSettings.Scripting);
scriptingMock.Setup(x => x.DataTypeModelStaticMappings).Returns(new List<IRazorStaticMapping>());
// need to specify a custom callback for unit tests

View File

@@ -16,7 +16,7 @@ namespace Umbraco.Tests.PublishedContent
{
base.TestSetup();
var settings = SettingsForTests.GetMockSettings();
var settings = SettingsForTests.GenerateMockSettings();
var contentMock = Mock.Get(settings.Content);
contentMock.Setup(x => x.ForceSafeAliases).Returns(true);
contentMock.Setup(x => x.UmbracoLibraryCacheDuration).Returns(1800);

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using Moq;
using NUnit.Framework;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
using Umbraco.Web.Routing;
@@ -18,6 +19,17 @@ namespace Umbraco.Tests.Routing
base.FreezeResolution();
}
private IUmbracoSettingsSection _umbracoSettings;
public override void Initialize()
{
base.Initialize();
//generate new mock settings and assign so we can configure in individual tests
_umbracoSettings = SettingsForTests.GenerateMockSettings();
SettingsForTests.ConfigureSettings(_umbracoSettings);
}
/// <summary>
/// This checks that when we retreive a NiceUrl for multiple items that there are no issues with cache overlap
/// and that they are all cached correctly.
@@ -29,7 +41,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false;
var requestHandlerMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestHandlerMock = Mock.Get(_umbracoSettings.RequestHandler);
requestHandlerMock.Setup(x => x.AddTrailingSlash).Returns(false);// (cached routes have none)
var samples = new Dictionary<int, string> {
@@ -93,7 +105,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false;
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
var result = routingContext.UrlProvider.GetUrl(nodeId);
@@ -117,7 +129,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = true;
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
var result = routingContext.UrlProvider.GetUrl(nodeId);
@@ -131,7 +143,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false;
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
Assert.AreEqual("/home/sub1/custom-sub-1/", routingContext.UrlProvider.GetUrl(1177));
@@ -153,7 +165,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.HideTopLevelNodeFromPath = false;
//mock the Umbraco settings that we need
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
Assert.AreEqual("#", routingContext.UrlProvider.GetUrl(999999));

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using Moq;
using NUnit.Framework;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
using Umbraco.Web.Routing;
@@ -18,10 +19,16 @@ namespace Umbraco.Tests.Routing
{
base.Initialize();
//generate new mock settings and assign so we can configure in individual tests
_umbracoSettings = SettingsForTests.GenerateMockSettings();
SettingsForTests.ConfigureSettings(_umbracoSettings);
// ensure we can create them although the content is not in the database
TestHelper.DropForeignKeys("umbracoDomains");
}
private IUmbracoSettingsSection _umbracoSettings;
protected override DatabaseBehavior DatabaseTestBehavior
{
get { return DatabaseBehavior.NewSchemaPerFixture; }
@@ -202,7 +209,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
InitializeLanguagesAndDomains();
@@ -232,7 +239,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
InitializeLanguagesAndDomains();
@@ -254,7 +261,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
InitializeLanguagesAndDomains();
@@ -282,7 +289,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
InitializeLanguagesAndDomains();
@@ -300,7 +307,7 @@ namespace Umbraco.Tests.Routing
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
InitializeLanguagesAndDomains();
@@ -367,7 +374,7 @@ namespace Umbraco.Tests.Routing
SetDomains4();
//mock the Umbraco settings that we need
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
Assert.AreEqual("/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111));

View File

@@ -2,6 +2,7 @@
using System.Linq;
using Moq;
using NUnit.Framework;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Tests.TestHelpers;
using Umbraco.Web.PublishedCache.XmlPublishedCache;
using umbraco.cms.businesslogic.web;
@@ -23,7 +24,7 @@ namespace Umbraco.Tests.Routing
{
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(true);
InitializeLanguagesAndDomains();
@@ -65,12 +66,18 @@ namespace Umbraco.Tests.Routing
//Assert.AreEqual("http://domain1.com/1001-1/1001-1-1", routingContext.NiceUrlProvider.GetNiceUrl(100111, true)); // bad
}
private IUmbracoSettingsSection _umbracoSettings;
public override void Initialize()
{
base.Initialize();
// ensure we can create them although the content is not in the database
TestHelper.DropForeignKeys("umbracoDomains");
//generate new mock settings and assign so we can configure in individual tests
_umbracoSettings = SettingsForTests.GenerateMockSettings();
SettingsForTests.ConfigureSettings(_umbracoSettings);
}
protected override void FreezeResolution()

View File

@@ -1,5 +1,6 @@
using Moq;
using NUnit.Framework;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Stubs;
using Umbraco.Web.Routing;
@@ -11,6 +12,9 @@ namespace Umbraco.Tests.Routing
[TestFixture]
public class uQueryGetNodeIdByUrlTests : BaseRoutingTest
{
private IUmbracoSettingsSection _umbracoSettings;
public override void Initialize()
{
base.Initialize();
@@ -36,6 +40,10 @@ namespace Umbraco.Tests.Routing
////assign the routing context back to the umbraco context
//umbracoContext.RoutingContext = routingContext;
Umbraco.Web.UmbracoContext.Current = routingContext.UmbracoContext;
//generate new mock settings and assign so we can configure in individual tests
_umbracoSettings = SettingsForTests.GenerateMockSettings();
SettingsForTests.ConfigureSettings(_umbracoSettings);
}
public override void TearDown()
@@ -57,9 +65,10 @@ namespace Umbraco.Tests.Routing
{
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false;
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
Assert.AreEqual(nodeId, global::umbraco.uQuery.GetNodeIdByUrl("http://example.com" + url));
}
@@ -76,9 +85,10 @@ namespace Umbraco.Tests.Routing
{
SettingsForTests.UseDirectoryUrls = true;
SettingsForTests.HideTopLevelNodeFromPath = false;
var requestMock = Mock.Get(UmbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
var requestMock = Mock.Get(_umbracoSettings.RequestHandler);
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
Assert.AreEqual(nodeId, global::umbraco.uQuery.GetNodeIdByUrl(url));
}
}

View File

@@ -19,16 +19,7 @@ namespace Umbraco.Tests.TestHelpers
[SetUp]
public virtual void Initialize()
{
using (DisposableTimer.TraceDuration < BaseUmbracoConfigurationTest>("init"))
{
//mock the Umbraco settings that we need
var settings = SettingsForTests.GetMockSettings();
//sets the global singleton to use the mocked format
SettingsForTests.ConfigureSettings(settings);
//set our local variable for tests to use (preferably)
UmbracoSettings = settings;
}
SettingsForTests.Reset();
}
[TearDown]
@@ -37,7 +28,5 @@ namespace Umbraco.Tests.TestHelpers
//reset settings
SettingsForTests.Reset();
}
protected virtual IUmbracoSettingsSection UmbracoSettings { get; private set; }
}
}

View File

@@ -25,7 +25,7 @@ namespace Umbraco.Tests.TestHelpers
/// Returns generated settings which can be stubbed to return whatever values necessary
/// </summary>
/// <returns></returns>
public static IUmbracoSettingsSection GetMockSettings()
public static IUmbracoSettingsSection GenerateMockSettings()
{
var settings = new Mock<IUmbracoSettingsSection>();
@@ -157,14 +157,20 @@ namespace Umbraco.Tests.TestHelpers
ConfigureSettings(GetDefault());
}
private static IUmbracoSettingsSection _defaultSettings;
internal static IUmbracoSettingsSection GetDefault()
{
var config = new FileInfo(TestHelper.MapPathForTest("~/Configurations/UmbracoSettings/web.config"));
if (_defaultSettings == null)
{
var config = new FileInfo(TestHelper.MapPathForTest("~/Configurations/UmbracoSettings/web.config"));
var fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FullName };
var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
var fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FullName };
var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
_defaultSettings = configuration.GetSection("umbracoConfiguration/defaultSettings") as UmbracoSettingsSection;
}
return configuration.GetSection("umbracoConfiguration/defaultSettings") as UmbracoSettingsSection;
return _defaultSettings;
}
}
}

View File

@@ -85,7 +85,7 @@ namespace Umbraco.Tests
{
ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", directoryUrls ? "true" : "false");
var settings = SettingsForTests.GetMockSettings();
var settings = SettingsForTests.GenerateMockSettings();
var requestMock = Mock.Get(settings.RequestHandler);
requestMock.Setup(x => x.AddTrailingSlash).Returns(trailingSlash);
SettingsForTests.ConfigureSettings(settings);