Fix tests
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user