Fix tests

This commit is contained in:
Stephan
2016-12-16 18:45:41 +01:00
parent 7f39f7748f
commit 9eb467f38a
4 changed files with 27 additions and 14 deletions

View File

@@ -36,7 +36,7 @@ namespace Umbraco.Tests.TestHelpers
/// Provides a base class for all Umbraco tests that require a database.
/// </summary>
/// <remarks>
/// <para>Can provide a SqlCE database populated with the Umbraco schema. The database should
/// <para>Can provide a SqlCE database populated with the Umbraco schema. The database should
/// be accessed through the UmbracoDatabaseFactory.</para>
/// <para>Provides an Umbraco context and Xml content.</para>
/// <para>fixme what else?</para>
@@ -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<TestWithDatabaseBase>("Remove database file"))

View File

@@ -169,6 +169,15 @@ namespace Umbraco.Tests.UmbracoExamine
mediaTypeService = mediaTypeServiceMock.Object;
}
var query = new Mock<IQuery<IContent>>();
query
.Setup(x => x.GetWhereClauses())
.Returns(new List<Tuple<string, object[]>> { new Tuple<string, object[]>("cmsDocument.published", new object[] { 1 }) });
var databaseFactory = new Mock<IUmbracoDatabaseFactory>();
databaseFactory
.Setup(x => x.Query<IContent>())
.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<IPublicAccessService>()),
options);
options,
databaseFactory.Object);
i.IndexingError += IndexingError;

View File

@@ -65,6 +65,7 @@ namespace UmbracoExamine
IEnumerable<IUrlSegmentProvider> urlSegmentProviders,
IValueSetValidator validator,
UmbracoContentIndexerOptions options,
IUmbracoDatabaseFactory databaseFactory,
FacetConfiguration facetConfiguration = null,
IDictionary<string, Func<string, IIndexValueType>> 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();
}

View File

@@ -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