More structuring & minor fixes
This commit is contained in:
@@ -30,6 +30,7 @@ using Umbraco.Web.Routing;
|
||||
using File = System.IO.File;
|
||||
using Umbraco.Core.DI;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Persistence.Mappers;
|
||||
using Umbraco.Core.Strings;
|
||||
using Umbraco.Tests.TestHelpers.Stubs;
|
||||
|
||||
@@ -87,13 +88,9 @@ namespace Umbraco.Tests.TestHelpers
|
||||
Container.Register<ISqlSyntaxProvider, SqlCeSyntaxProvider>();
|
||||
Container.Register(factory => _facadeService);
|
||||
|
||||
var manifestBuilder = new ManifestBuilder(
|
||||
new NullCacheProvider(),
|
||||
new ManifestParser(Logger, new DirectoryInfo(IOHelper.MapPath("~/App_Plugins")), new NullCacheProvider()));
|
||||
Container.Register(_ => manifestBuilder);
|
||||
|
||||
Container.RegisterCollectionBuilder<PropertyEditorCollectionBuilder>()
|
||||
.Add(() => Core.DI.Current.PluginManager.ResolvePropertyEditors());
|
||||
Container.GetInstance<PropertyEditorCollectionBuilder>()
|
||||
.Clear()
|
||||
.Add(f => f.GetInstance<PluginManager>().ResolvePropertyEditors());
|
||||
|
||||
Container.RegisterSingleton(f =>
|
||||
{
|
||||
@@ -101,7 +98,10 @@ namespace Umbraco.Tests.TestHelpers
|
||||
return TestObjects.GetDatabaseFactoryMock();
|
||||
|
||||
var sqlSyntaxProviders = new[] { new SqlCeSyntaxProvider() };
|
||||
var factory = new DefaultDatabaseFactory(GetDbConnectionString(), GetDbProviderName(), sqlSyntaxProviders, Logger, f.GetInstance<IUmbracoDatabaseAccessor>(), Mappers);
|
||||
var logger = f.GetInstance<ILogger>();
|
||||
var umbracoDatabaseAccessor = f.GetInstance<IUmbracoDatabaseAccessor>();
|
||||
var mappers = f.GetInstance<IMapperCollection>();
|
||||
var factory = new DefaultDatabaseFactory(GetDbConnectionString(), GetDbProviderName(), sqlSyntaxProviders, logger, umbracoDatabaseAccessor, mappers);
|
||||
factory.ResetForTests();
|
||||
return factory;
|
||||
});
|
||||
@@ -119,7 +119,9 @@ namespace Umbraco.Tests.TestHelpers
|
||||
_isFirstInFixture = false;
|
||||
_isFirstInSession = false;
|
||||
|
||||
using (ProfilingLogger.TraceDuration<TestWithDatabaseBase>("teardown")) // fixme move that one up
|
||||
var profilingLogger = Container.TryGetInstance<ProfilingLogger>();
|
||||
var timer = profilingLogger?.TraceDuration<TestWithDatabaseBase>("teardown"); // fixme move that one up
|
||||
try
|
||||
{
|
||||
if (Options.Database == UmbracoTestOptions.Database.NewSchemaPerTest)
|
||||
RemoveDatabaseFile(Core.DI.Current.HasContainer ? Core.DI.Current.Container.TryGetInstance<DatabaseContext>()?.Database : null);
|
||||
@@ -130,6 +132,10 @@ namespace Umbraco.Tests.TestHelpers
|
||||
_facadeService?.Dispose();
|
||||
_facadeService = null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
timer?.Dispose();
|
||||
}
|
||||
|
||||
base.TearDown();
|
||||
}
|
||||
@@ -150,78 +156,6 @@ namespace Umbraco.Tests.TestHelpers
|
||||
}
|
||||
}
|
||||
|
||||
// fixme implement this one way or another!!!
|
||||
//
|
||||
//protected override ApplicationContext CreateApplicationContext()
|
||||
//{
|
||||
// var sqlSyntaxProviders = new[] { new SqlCeSyntaxProvider() };
|
||||
|
||||
// // create the database if required
|
||||
// // note: must do before instanciating the database factory else it will
|
||||
// // not find the database and will remain un-configured.
|
||||
// using (ProfilingLogger.TraceDuration<BaseDatabaseFactoryTest>("Create database."))
|
||||
// {
|
||||
// //TODO make it faster
|
||||
// CreateSqlCeDatabase();
|
||||
// }
|
||||
|
||||
// // ensure the configuration matches the current version for tests
|
||||
// SettingsForTests.ConfigurationStatus = UmbracoVersion.Current.ToString(3);
|
||||
|
||||
// // create the database factory - if the test does not require an actual database,
|
||||
// // use a mock factory; otherwise use a real factory.
|
||||
// IDatabaseFactory databaseFactory;
|
||||
// if (DatabaseTestBehavior == DatabaseBehavior.NoDatabasePerFixture)
|
||||
// {
|
||||
// databaseFactory = TestObjects.GetIDatabaseFactoryMock();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var f = new DefaultDatabaseFactory(GetDbConnectionString(), GetDbProviderName(), sqlSyntaxProviders, Logger, new TestUmbracoDatabaseAccessor(), Mappers);
|
||||
// f.ResetForTests();
|
||||
// databaseFactory = f;
|
||||
// }
|
||||
|
||||
// // so, using the above code to create a mock IDatabaseFactory if we don't have a real database
|
||||
// // but, that will NOT prevent _appContext from NOT being configured, because it cannot connect
|
||||
// // to the database to check the migrations ;-(
|
||||
|
||||
// var evtMsgs = new TransientEventMessagesFactory();
|
||||
// var databaseContext = new DatabaseContext(databaseFactory, Logger, Mock.Of<IRuntimeState>(), Mock.Of<IMigrationEntryService>());
|
||||
// var repositoryFactory = Container.GetInstance<RepositoryFactory>();
|
||||
// var serviceContext = TestObjects.GetServiceContext(
|
||||
// repositoryFactory,
|
||||
// _uowProvider = new NPocoUnitOfWorkProvider(databaseFactory, repositoryFactory),
|
||||
// new FileUnitOfWorkProvider(),
|
||||
// CacheHelper,
|
||||
// Logger,
|
||||
// evtMsgs,
|
||||
// Enumerable.Empty<IUrlSegmentProvider>());
|
||||
|
||||
// // if the test does not require an actual database, or runs with an empty database, the application
|
||||
// // context will not be able to check the migration status in the database, so we have to force it
|
||||
// // to think it is configured.
|
||||
// var appContextMock = new Mock<ApplicationContext>(databaseContext, serviceContext, CacheHelper, ProfilingLogger);
|
||||
// //if (DatabaseTestBehavior == DatabaseBehavior.NoDatabasePerFixture // no db at all
|
||||
// // || DatabaseTestBehavior == DatabaseBehavior.EmptyDbFilePerTest) // empty db
|
||||
// // appContextMock.Setup(x => x.IsConfigured).Returns(true);
|
||||
// _appContext = appContextMock.Object;
|
||||
|
||||
// // initialize the database if required
|
||||
// // note: must do after creating the application context as
|
||||
// // it is using it
|
||||
// using (ProfilingLogger.TraceDuration<BaseDatabaseFactoryTest>("Initialize database."))
|
||||
// {
|
||||
// // TODO make it faster
|
||||
// InitializeDatabase(_appContext);
|
||||
// }
|
||||
|
||||
// // application is ready
|
||||
// //_appContext.IsReady = true;
|
||||
|
||||
// return _appContext;
|
||||
//}
|
||||
|
||||
protected virtual ISqlSyntaxProvider GetSyntaxProvider()
|
||||
{
|
||||
return new SqlCeSyntaxProvider();
|
||||
@@ -305,19 +239,12 @@ namespace Umbraco.Tests.TestHelpers
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// sets up resolvers before resolution is frozen
|
||||
/// </summary>
|
||||
protected override void Initialize() // fixme - should NOT be here!
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
// fixme - what about if (PropertyValueConvertersResolver.HasCurrent == false) ??
|
||||
Container.RegisterCollectionBuilder<PropertyValueConverterCollectionBuilder>();
|
||||
|
||||
// ensure we have a FacadeService
|
||||
if (_facadeService == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user