diff --git a/src/Umbraco.Core/ObjectResolution/ContainerSingleObjectResolver.cs b/src/Umbraco.Core/ObjectResolution/ContainerSingleObjectResolver.cs index ca757b97a4..dd5c7be7e3 100644 --- a/src/Umbraco.Core/ObjectResolution/ContainerSingleObjectResolver.cs +++ b/src/Umbraco.Core/ObjectResolution/ContainerSingleObjectResolver.cs @@ -74,7 +74,7 @@ namespace Umbraco.Core.ObjectResolution internal ContainerSingleObjectResolver(IServiceContainer container, Expression> implementationType) { _container = container; - _container.Register(implementationType); + _container.Register(implementationType, new PerContainerLifetime()); } /// diff --git a/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs b/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs index e7739e83fb..cc432724db 100644 --- a/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs +++ b/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs @@ -15,6 +15,13 @@ namespace Umbraco.Core.Persistence.Querying { private readonly BaseMapper _mapper; + public ModelToSqlExpressionHelper(ISqlSyntaxProvider sqlSyntax, BaseMapper mapper) + : base(sqlSyntax) + { + if (mapper == null) throw new ArgumentNullException("mapper"); + _mapper = mapper; + } + public ModelToSqlExpressionHelper(ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) : base(sqlSyntax) { diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs index f07f757f1b..ad0b7faaac 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs @@ -1,13 +1,18 @@ using System; using System.Collections.Generic; + using System.Linq; using System.Xml; using Examine; +using Moq; using NUnit.Framework; using umbraco.BusinessLogic; using Umbraco.Core; +using Umbraco.Core.LightInject; +using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; +using Umbraco.Core.Strings; using Umbraco.Tests.PublishedContent; using Umbraco.Tests.TestHelpers; using Umbraco.Web.PublishedCache; @@ -21,10 +26,13 @@ namespace Umbraco.Tests.Cache.PublishedCache { protected override void FreezeResolution() { + var container = new ServiceContainer(); + UrlSegmentProviderResolver.Current = new UrlSegmentProviderResolver(container, Mock.Of(), typeof(DefaultUrlSegmentProvider)); PublishedContentModelFactoryResolver.Current = new PublishedContentModelFactoryResolver(); base.FreezeResolution(); } + //NOTE: This is "Without_Examine" too [Test] public void Get_Root_Docs() { diff --git a/src/Umbraco.Tests/Macros/MacroTests.cs b/src/Umbraco.Tests/Macros/MacroTests.cs index 54b1e7fffd..36840f9d2f 100644 --- a/src/Umbraco.Tests/Macros/MacroTests.cs +++ b/src/Umbraco.Tests/Macros/MacroTests.cs @@ -93,7 +93,6 @@ namespace Umbraco.Tests.Macros } [TestCase("text.xslt", "", "", "", "~/xslt/text.xslt")] - [TestCase("", "razor-script.cshtml", "", "", "~/macroScripts/razor-script.cshtml")] [TestCase("", "~/Views/MacroPartials/test.cshtml", "", "", "~/Views/MacroPartials/test.cshtml")] [TestCase("", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml", "", "", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml")] [TestCase("", "", "~/usercontrols/menu.ascx", "", "~/usercontrols/menu.ascx")] diff --git a/src/Umbraco.Tests/Persistence/Querying/ExpressionTests.cs b/src/Umbraco.Tests/Persistence/Querying/ExpressionTests.cs index e5aa0a6903..b0cf87acac 100644 --- a/src/Umbraco.Tests/Persistence/Querying/ExpressionTests.cs +++ b/src/Umbraco.Tests/Persistence/Querying/ExpressionTests.cs @@ -6,6 +6,7 @@ using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.Rdbms; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Tests.TestHelpers; @@ -13,7 +14,7 @@ using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Persistence.Querying { [TestFixture] - public class ExpressionTests : BaseUsingSqlCeSyntax + public class ExpressionTests { // [Test] // public void Can_Query_With_Content_Type_Alias() @@ -33,8 +34,9 @@ namespace Umbraco.Tests.Persistence.Querying public void Can_Verify_Path_StartsWith_Predicate_In_Same_Result() { //Arrange + var sqlSyntax = new SqlCeSyntaxProvider(); Expression> predicate = content => content.Path.StartsWith("-1"); - var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(SqlSyntax, MappingResolver); + var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(sqlSyntax, new ContentMapper(sqlSyntax)); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Model to Sql ExpressionHelper: \n" + result); @@ -47,8 +49,9 @@ namespace Umbraco.Tests.Persistence.Querying public void Can_Verify_ParentId_StartsWith_Predicate_In_Same_Result() { //Arrange + var sqlSyntax = new SqlCeSyntaxProvider(); Expression> predicate = content => content.ParentId == -1; - var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(SqlSyntax, MappingResolver); + var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(sqlSyntax, new ContentMapper(sqlSyntax)); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Model to Sql ExpressionHelper: \n" + result); @@ -60,8 +63,9 @@ namespace Umbraco.Tests.Persistence.Querying [Test] public void Equals_Operator_For_Value_Gets_Escaped() { + var sqlSyntax = new SqlCeSyntaxProvider(); Expression> predicate = user => user.Username == "hello@world.com"; - var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(SqlSyntax, MappingResolver); + var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(sqlSyntax, new UserMapper(sqlSyntax)); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Model to Sql ExpressionHelper: \n" + result); @@ -73,8 +77,9 @@ namespace Umbraco.Tests.Persistence.Querying [Test] public void Equals_Method_For_Value_Gets_Escaped() { + var sqlSyntax = new SqlCeSyntaxProvider(); Expression> predicate = user => user.Username.Equals("hello@world.com"); - var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(SqlSyntax, MappingResolver); + var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(sqlSyntax, new UserMapper(sqlSyntax)); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Model to Sql ExpressionHelper: \n" + result); @@ -87,9 +92,9 @@ namespace Umbraco.Tests.Persistence.Querying public void Model_Expression_Value_Does_Not_Get_Double_Escaped() { //mysql escapes backslashes, so we'll test with that - + var sqlSyntax = new MySqlSyntaxProvider(Mock.Of()); Expression> predicate = user => user.Username.Equals("mydomain\\myuser"); - var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(new MySqlSyntaxProvider(Mock.Of()), MappingResolver); + var modelToSqlExpressionHelper = new ModelToSqlExpressionHelper(sqlSyntax, new UserMapper(sqlSyntax)); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Model to Sql ExpressionHelper: \n" + result); @@ -103,9 +108,9 @@ namespace Umbraco.Tests.Persistence.Querying public void Poco_Expression_Value_Does_Not_Get_Double_Escaped() { //mysql escapes backslashes, so we'll test with that - + var sqlSyntax = new MySqlSyntaxProvider(Mock.Of()); Expression> predicate = user => user.Login.StartsWith("mydomain\\myuser"); - var modelToSqlExpressionHelper = new PocoToSqlExpressionHelper(new MySqlSyntaxProvider(Mock.Of())); + var modelToSqlExpressionHelper = new PocoToSqlExpressionHelper(sqlSyntax); var result = modelToSqlExpressionHelper.Visit(predicate); Console.WriteLine("Poco to Sql ExpressionHelper: \n" + result); diff --git a/src/Umbraco.Tests/Plugins/PluginManagerTests.cs b/src/Umbraco.Tests/Plugins/PluginManagerTests.cs index 371f359ef3..bd9f85c318 100644 --- a/src/Umbraco.Tests/Plugins/PluginManagerTests.cs +++ b/src/Umbraco.Tests/Plugins/PluginManagerTests.cs @@ -40,7 +40,7 @@ namespace Umbraco.Tests.Plugins _manager.AssembliesToScan = new[] { this.GetType().Assembly, - //typeof(ApplicationStartupHandler).Assembly, + typeof(ApplicationAttribute).Assembly, typeof(SqlCEHelper).Assembly, typeof(CMSNode).Assembly, typeof(System.Guid).Assembly, diff --git a/src/Umbraco.Tests/Plugins/TypeFinderTests.cs b/src/Umbraco.Tests/Plugins/TypeFinderTests.cs index c9a7cb8c0c..6f127ad3d0 100644 --- a/src/Umbraco.Tests/Plugins/TypeFinderTests.cs +++ b/src/Umbraco.Tests/Plugins/TypeFinderTests.cs @@ -41,7 +41,7 @@ namespace Umbraco.Tests.Plugins _assemblies = new[] { this.GetType().Assembly, - //typeof(ApplicationStartupHandler).Assembly, + typeof(ApplicationAttribute).Assembly, typeof(SqlCEHelper).Assembly, typeof(CMSNode).Assembly, typeof(System.Guid).Assembly, diff --git a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs index 0a103a172e..d9bca1531e 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs @@ -27,6 +27,9 @@ using UmbracoExamine; using UmbracoExamine.DataServices; using umbraco.BusinessLogic; using System.Linq; +using Umbraco.Core.LightInject; +using Umbraco.Core.Logging; +using Umbraco.Core.Strings; namespace Umbraco.Tests.PublishedContent { @@ -52,6 +55,17 @@ namespace Umbraco.Tests.PublishedContent BaseUmbracoIndexer.DisableInitializationCheck = null; } + /// + /// sets up resolvers before resolution is frozen + /// + protected override void FreezeResolution() + { + var container = new ServiceContainer(); + UrlSegmentProviderResolver.Current = new UrlSegmentProviderResolver(container, Mock.Of(), typeof(DefaultUrlSegmentProvider)); + + base.FreezeResolution(); + } + /// /// Shared with PublishMediaStoreTests /// diff --git a/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs b/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs index 7814cd3ba0..039d7962aa 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs @@ -14,10 +14,9 @@ namespace Umbraco.Tests.TestHelpers [TestFixture] public abstract class BaseUsingSqlCeSyntax { - private SqlCeSyntaxProvider _sqlSyntax; - protected SqlCeSyntaxProvider SqlSyntax + protected virtual SqlCeSyntaxProvider SqlSyntax { - get { return _sqlSyntax ?? (_sqlSyntax = new SqlCeSyntaxProvider()); } + get { return new SqlCeSyntaxProvider(); } } private MappingResolver _mappingResolver;