From 9eb467f38a45a0c7f4d2e155600ed88d005e5ed2 Mon Sep 17 00:00:00 2001 From: Stephan Date: Fri, 16 Dec 2016 18:45:41 +0100 Subject: [PATCH] Fix tests --- .../TestHelpers/TestWithDatabaseBase.cs | 10 +++++----- .../UmbracoExamine/IndexInitializer.cs | 12 +++++++++++- src/UmbracoExamine/UmbracoContentIndexer.cs | 3 +++ src/umbraco.datalayer/SqlHelper.cs | 16 ++++++++-------- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs index ccac8e5818..b6fe75ca4e 100644 --- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs +++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs @@ -36,7 +36,7 @@ namespace Umbraco.Tests.TestHelpers /// Provides a base class for all Umbraco tests that require a database. /// /// - /// Can provide a SqlCE database populated with the Umbraco schema. The database should + /// Can provide a SqlCE database populated with the Umbraco schema. The database should /// be accessed through the UmbracoDatabaseFactory. /// Provides an Umbraco context and Xml content. /// fixme what else? @@ -194,10 +194,10 @@ namespace Umbraco.Tests.TestHelpers // - _isFirstTestInFixture + DbInitBehavior.NewDbFileAndSchemaPerFixture //if this is the first test in the session, always ensure a new db file is created - if (FirstTestInSession - || File.Exists(_databasePath) == false - || Options.Database == UmbracoTestOptions.Database.NewSchemaPerTest - || Options.Database == UmbracoTestOptions.Database.NewEmptyPerTest + if (FirstTestInSession + || File.Exists(_databasePath) == false + || Options.Database == UmbracoTestOptions.Database.NewSchemaPerTest + || Options.Database == UmbracoTestOptions.Database.NewEmptyPerTest || (FirstTestInFixture && Options.Database == UmbracoTestOptions.Database.NewSchemaPerFixture)) { using (ProfilingLogger.TraceDuration("Remove database file")) diff --git a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs index 193fedf912..c6df3af71b 100644 --- a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs +++ b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs @@ -169,6 +169,15 @@ namespace Umbraco.Tests.UmbracoExamine mediaTypeService = mediaTypeServiceMock.Object; } + var query = new Mock>(); + query + .Setup(x => x.GetWhereClauses()) + .Returns(new List> { new Tuple("cmsDocument.published", new object[] { 1 }) }); + var databaseFactory = new Mock(); + databaseFactory + .Setup(x => x.Query()) + .Returns(query.Object); + var i = new UmbracoContentIndexer( new[] { new FieldDefinition("", FieldDefinitionTypes.FullText) }, luceneDir, @@ -179,7 +188,8 @@ namespace Umbraco.Tests.UmbracoExamine userService, new[] {new DefaultUrlSegmentProvider()}, new UmbracoContentValueSetValidator(options, Mock.Of()), - options); + options, + databaseFactory.Object); i.IndexingError += IndexingError; diff --git a/src/UmbracoExamine/UmbracoContentIndexer.cs b/src/UmbracoExamine/UmbracoContentIndexer.cs index 2c34222597..8a75e382f9 100644 --- a/src/UmbracoExamine/UmbracoContentIndexer.cs +++ b/src/UmbracoExamine/UmbracoContentIndexer.cs @@ -65,6 +65,7 @@ namespace UmbracoExamine IEnumerable urlSegmentProviders, IValueSetValidator validator, UmbracoContentIndexerOptions options, + IUmbracoDatabaseFactory databaseFactory, FacetConfiguration facetConfiguration = null, IDictionary> indexValueTypes = null) : base(fieldDefinitions, luceneDirectory, defaultAnalyzer, profilingLogger, validator, facetConfiguration, indexValueTypes) @@ -75,6 +76,7 @@ namespace UmbracoExamine if (urlSegmentProviders == null) throw new ArgumentNullException(nameof(urlSegmentProviders)); if (validator == null) throw new ArgumentNullException(nameof(validator)); if (options == null) throw new ArgumentNullException(nameof(options)); + if (databaseFactory == null) throw new ArgumentNullException(nameof(databaseFactory)); SupportProtectedContent = options.SupportProtectedContent; SupportUnpublishedContent = options.SupportUnpublishedContent; @@ -88,6 +90,7 @@ namespace UmbracoExamine MediaService = mediaService; UserService = userService; _urlSegmentProviders = urlSegmentProviders; + _databaseFactory = databaseFactory; InitializeQueries(); } diff --git a/src/umbraco.datalayer/SqlHelper.cs b/src/umbraco.datalayer/SqlHelper.cs index 4d3b19cbe1..2edc2d3205 100644 --- a/src/umbraco.datalayer/SqlHelper.cs +++ b/src/umbraco.datalayer/SqlHelper.cs @@ -363,7 +363,7 @@ namespace umbraco.DataLayer public static MethodInfo OpenMethod { get; private set; } public static MethodInfo CloseMethod { get; private set; } - private static readonly object DatabaseContext; + private static readonly object DatabaseFactory; private static readonly PropertyInfo Database; private static readonly PropertyInfo ConnectionProperty; private static readonly FieldInfo TransactionField; @@ -378,22 +378,22 @@ namespace umbraco.DataLayer { var coreAssembly = Assembly.Load("Umbraco.Core"); - var databaseContextType = coreAssembly.GetType("Umbraco.Core.DatabaseContext"); - var umbracoDatabaseType = coreAssembly.GetType("Umbraco.Core.Persistence.UmbracoDatabase"); + var databaseFactoryType = coreAssembly.GetType("Umbraco.Core.Persistence.IUmbracoDatabaseFactory"); + var umbracoDatabaseType = coreAssembly.GetType("Umbraco.Core.Persistence.IUmbracoDatabase"); var nPocoAssembly = Assembly.Load("NPoco"); var databaseType = nPocoAssembly.GetType("NPoco.Database"); var currentType = coreAssembly.GetType("Umbraco.Core.DI.Current"); - var databaseContextProperty = currentType.GetProperty("DatabaseContext", BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static); - DatabaseContext = databaseContextProperty.GetValue(null); + var databaseFactoryProperty = currentType.GetProperty("DatabaseFactory", BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static); + DatabaseFactory = databaseFactoryProperty.GetValue(null); - Database = databaseContextType.GetProperty("Database", BindingFlags.Instance | BindingFlags.Public); + Database = databaseFactoryType.GetProperty("Database", BindingFlags.Instance | BindingFlags.Public); OpenMethod = databaseType.GetMethod("OpenSharedConnection", BindingFlags.Instance | BindingFlags.Public); CloseMethod = databaseType.GetMethod("CloseSharedConnection", BindingFlags.Instance | BindingFlags.Public); - ConnectionProperty = umbracoDatabaseType.GetProperty("Connection", BindingFlags.Instance | BindingFlags.Public); + ConnectionProperty = databaseType.GetProperty("Connection", BindingFlags.Instance | BindingFlags.Public); TransactionField = databaseType.GetField("_transaction", BindingFlags.Instance | BindingFlags.NonPublic); var retryDbConnectionType = coreAssembly.GetType("Umbraco.Core.Persistence.FaultHandling.RetryDbConnection"); @@ -408,7 +408,7 @@ namespace umbraco.DataLayer public CurrentConnectionUsing() { - _database = Database.GetValue(DatabaseContext); + _database = Database.GetValue(DatabaseFactory); var connection = ConnectionProperty.GetValue(_database, NoArgs); // we have to open to make sure that we *do* have a connection