using System; using Moq; using NPoco; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Logging; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; using Umbraco.Core.IO; using Umbraco.Core.Persistence; using Umbraco.Tests.Components; namespace Umbraco.Tests.TestHelpers { [TestFixture] public abstract class BaseUsingSqlCeSyntax { protected IMapperCollection Mappers { get; private set; } protected ISqlContext SqlContext { get; private set; } internal TestObjects TestObjects = new TestObjects(null); protected Sql Sql() { return NPoco.Sql.BuilderFor(SqlContext); } [SetUp] public virtual void Initialize() { Current.Reset(); var container = RegisterFactory.Create(); var logger = new ProfilingLogger(Mock.Of(), Mock.Of()); var typeLoader = new TypeLoader(NoAppCache.Instance, IOHelper.MapPath("~/App_Data/TEMP"), logger, false); var composition = new Composition(container, typeLoader, Mock.Of(), ComponentTests.MockRuntimeState(RuntimeLevel.Run), new ConfigsFactory().Create()); composition.RegisterUnique(_ => Mock.Of()); composition.RegisterUnique(_ => Mock.Of()); composition.RegisterUnique(typeLoader); composition.WithCollectionBuilder() .AddCoreMappers(); composition.RegisterUnique(_ => SqlContext); var factory = Current.Factory = composition.CreateFactory(); var pocoMappers = new NPoco.MapperCollection { new PocoMapper() }; var pocoDataFactory = new FluentPocoDataFactory((type, iPocoDataFactory) => new PocoDataBuilder(type, pocoMappers).Init()); var sqlSyntax = new SqlCeSyntaxProvider(); SqlContext = new SqlContext(sqlSyntax, DatabaseType.SQLCe, pocoDataFactory, new Lazy(() => factory.GetInstance())); Mappers = factory.GetInstance(); SetUp(); } public virtual void SetUp() {} [TearDown] public virtual void TearDown() { //MappingResolver.Reset(); Current.Reset(); } } }