From e4b375f72dfafa398225cb71a447bbb14f4e0d26 Mon Sep 17 00:00:00 2001 From: Stephan Date: Fri, 15 Dec 2017 11:19:03 +0100 Subject: [PATCH] UnitOfWork RIP, build tests --- .../PublishedContentCacheTests.cs | 2 +- .../PublishedMediaCacheTests.cs | 8 +- .../Repositories/AuditRepositoryTest.cs | 3 +- .../Repositories/ContentRepositoryTest.cs | 304 +++++++++--------- .../Repositories/ContentTypeRepositoryTest.cs | 294 ++++++++--------- .../DataTypeDefinitionRepositoryTest.cs | 232 ++++++------- .../Repositories/DictionaryRepositoryTest.cs | 105 +++--- .../Repositories/DomainRepositoryTest.cs | 117 +++---- .../Repositories/LanguageRepositoryTest.cs | 89 +++-- .../Repositories/MacroRepositoryTest.cs | 136 ++++---- .../Repositories/MediaRepositoryTest.cs | 175 +++++----- .../Repositories/MediaTypeRepositoryTest.cs | 158 ++++----- .../Repositories/MemberRepositoryTest.cs | 103 +++--- .../Repositories/MemberTypeRepositoryTest.cs | 114 +++---- .../NotificationsRepositoryTest.cs | 54 ++-- .../PartialViewRepositoryTests.cs | 11 +- .../PublicAccessRepositoryTest.cs | 89 ++--- .../RedirectUrlRepositoryTests.cs | 46 +-- .../Repositories/RelationRepositoryTest.cs | 91 +++--- .../RelationTypeRepositoryTest.cs | 75 +++-- .../Repositories/ScriptRepositoryTest.cs | 86 ++--- .../ServerRegistrationRepositoryTest.cs | 86 +++-- .../Repositories/StylesheetRepositoryTest.cs | 93 +++--- .../Repositories/TagRepositoryTest.cs | 304 +++++++++--------- .../Repositories/TaskRepositoryTest.cs | 70 ++-- .../Repositories/TaskTypeRepositoryTest.cs | 14 +- .../Repositories/TemplateRepositoryTest.cs | 231 ++++++------- .../Repositories/UserGroupRepositoryTest.cs | 148 ++++----- .../Repositories/UserRepositoryTest.cs | 157 ++++----- .../Persistence/UnitOfWorkTests.cs | 16 +- .../PublishedContent/PublishedMediaTests.cs | 6 +- .../Scoping/ScopedNuCacheTests.cs | 4 +- .../Services/ContentServicePerformanceTest.cs | 49 +-- .../Services/ContentServiceTests.cs | 35 +- .../Services/MacroServiceTests.cs | 9 +- .../Services/MediaServiceTests.cs | 3 +- .../Services/MemberServiceTests.cs | 2 +- .../Templates/TemplateRepositoryTests.cs | 10 +- .../TestHelpers/TestObjects-Mocks.cs | 9 - src/Umbraco.Tests/TestHelpers/TestObjects.cs | 103 +++--- .../TestHelpers/TestWithDatabaseBase.cs | 8 +- src/Umbraco.Tests/Testing/UmbracoTestBase.cs | 3 - .../Web/Mvc/UmbracoViewPageTests.cs | 6 +- 43 files changed, 1793 insertions(+), 1865 deletions(-) diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs index c71c2a1a38..a79f961af7 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs @@ -58,7 +58,7 @@ namespace Umbraco.Tests.Cache.PublishedCache SettingsForTests.ConfigureSettings(settings); _xml = new XmlDocument(); _xml.LoadXml(GetXml()); - var xmlStore = new XmlStore(() => _xml); + var xmlStore = new XmlStore(() => _xml, null, null, null); var cacheProvider = new StaticCacheProvider(); var domainCache = new DomainCache(ServiceContext.DomainService); var publishedShapshot = new Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedShapshot( diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs index 804fe107c3..5822ebec88 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs @@ -56,7 +56,7 @@ namespace Umbraco.Tests.Cache.PublishedCache var mChild2 = MakeNewMedia("Child2", mType, user, mRoot2.Id); var ctx = GetUmbracoContext("/test"); - var cache = new PublishedMediaCache(new XmlStore((XmlDocument) null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); + var cache = new PublishedMediaCache(new XmlStore((XmlDocument) null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); var roots = cache.GetAtRoot(); Assert.AreEqual(2, roots.Count()); Assert.IsTrue(roots.Select(x => x.Id).ContainsAll(new[] {mRoot1.Id, mRoot2.Id})); @@ -73,7 +73,7 @@ namespace Umbraco.Tests.Cache.PublishedCache //var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234)); var umbracoContext = GetUmbracoContext("/test"); - var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache); + var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache); var publishedMedia = cache.GetById(mRoot.Id); Assert.IsNotNull(publishedMedia); @@ -186,7 +186,7 @@ namespace Umbraco.Tests.Cache.PublishedCache result.Fields.Add("creatorID", "0"); result.Fields.Add("creatorName", "Shannon"); - var store = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); + var store = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); var doc = store.CreateFromCacheValues(store.ConvertFromSearchResult(result)); DoAssert(doc, 1234, key, 0, 0, "/media/test.jpg", "Image", 0, "Shannon", "Shannon", 0, 0, "-1,1234", DateTime.Parse("2012-07-17T10:34:09"), DateTime.Parse("2012-07-16T10:34:09"), 2); @@ -202,7 +202,7 @@ namespace Umbraco.Tests.Cache.PublishedCache var xmlDoc = GetMediaXml(); ((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString()); var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator(); - var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); + var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); var doc = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true)); DoAssert(doc, 2000, key, 0, 2, "image1", "Image", 2044, "Shannon", "Shannon", 33, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1); diff --git a/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs index 5bb561084f..0d27e719d1 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs @@ -4,6 +4,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -19,7 +20,7 @@ namespace Umbraco.Tests.Persistence.Repositories var sp = TestObjects.GetScopeProvider(Logger); using (var scope = sp.CreateScope()) { - var repo = new AuditRepository(sp, CacheHelper, Logger); + var repo = new AuditRepository((IScopeAccessor) sp, CacheHelper, Logger); repo.Save(new AuditItem(-1, "This is a System audit trail", AuditType.System, 0)); var dtos = scope.Database.Fetch("WHERE id > -1"); diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs index 28aa89306c..8a3f898e94 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs @@ -1,9 +1,6 @@ using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; -using System.Threading; -using System.Web; using Moq; using NUnit.Framework; using Umbraco.Core; @@ -13,8 +10,6 @@ using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; -using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Core.Persistence.DatabaseModelDefinitions; @@ -45,30 +40,30 @@ namespace Umbraco.Tests.Persistence.Repositories base.TearDown(); } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out DataTypeDefinitionRepository dtdRepository, CacheHelper cacheHelper = null) + private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out DataTypeDefinitionRepository dtdRepository, CacheHelper cacheHelper = null) { cacheHelper = cacheHelper ?? CacheHelper; TemplateRepository tr; - var ctRepository = CreateRepository(unitOfWork, out contentTypeRepository, out tr); - dtdRepository = new DataTypeDefinitionRepository(unitOfWork, cacheHelper, Logger, contentTypeRepository); + var ctRepository = CreateRepository(scopeAccessor, out contentTypeRepository, out tr); + dtdRepository = new DataTypeDefinitionRepository(scopeAccessor, cacheHelper, Logger); return ctRepository; } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, CacheHelper cacheHelper = null) + private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, CacheHelper cacheHelper = null) { TemplateRepository tr; - return CreateRepository(unitOfWork, out contentTypeRepository, out tr, cacheHelper); + return CreateRepository(scopeAccessor, out contentTypeRepository, out tr, cacheHelper); } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out TemplateRepository templateRepository, CacheHelper cacheHelper = null) + private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out TemplateRepository templateRepository, CacheHelper cacheHelper = null) { cacheHelper = cacheHelper ?? CacheHelper; - templateRepository = new TemplateRepository(unitOfWork, cacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, cacheHelper, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, cacheHelper, Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, cacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + templateRepository = new TemplateRepository(scopeAccessor, cacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(scopeAccessor, cacheHelper, Logger); + contentTypeRepository = new ContentTypeRepository(scopeAccessor, cacheHelper, Logger, templateRepository); + var repository = new DocumentRepository(scopeAccessor, cacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } @@ -81,12 +76,12 @@ namespace Umbraco.Tests.Persistence.Repositories new StaticCacheProvider(), new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider())); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository, cacheHelper: realCache); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, cacheHelper: realCache); - var udb = (UmbracoDatabase) unitOfWork.Database; + var udb = (UmbracoDatabase) scope.Database; udb.EnableSqlCount = false; @@ -95,7 +90,6 @@ namespace Umbraco.Tests.Persistence.Repositories contentTypeRepository.Save(contentType); var content = MockedContent.CreateSimpleContent(contentType); repository.Save(content); - unitOfWork.Complete(); udb.EnableSqlCount = true; @@ -123,10 +117,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CreateVersions() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository _); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository _); var versions = new List(); var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage"); @@ -137,7 +131,7 @@ namespace Umbraco.Tests.Persistence.Repositories // save = create the initial version contentTypeRepository.Save(hasPropertiesContentType); repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // the first version // publish = new edit version @@ -145,7 +139,7 @@ namespace Umbraco.Tests.Persistence.Repositories ((Content) content1).PublishValues(); ((Content) content1).PublishedState = PublishedState.Publishing; repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // NEW VERSION // new edit version has been created @@ -155,14 +149,14 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(true, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // change something // save = update the current (draft) version content1.Name = "name-1"; content1.SetValue("title", "title-1"); repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // the same version // no new version has been created @@ -171,12 +165,12 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(true, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // unpublish = no impact on versions ((Content) content1).PublishedState = PublishedState.Unpublishing; repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // the same version // no new version has been created @@ -186,14 +180,14 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(false, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(false, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // change something // save = update the current (draft) version content1.Name = "name-2"; content1.SetValue("title", "title-2"); repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // the same version // no new version has been created @@ -201,13 +195,13 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(false, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(false, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // publish = version ((Content) content1).PublishValues(); ((Content) content1).PublishedState = PublishedState.Publishing; repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // NEW VERSION // new version has been created @@ -217,7 +211,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(true, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // change something // save = update the current (draft) version @@ -227,7 +221,7 @@ namespace Umbraco.Tests.Persistence.Repositories //Thread.Sleep(2000); // force date change repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // the same version // no new version has been created @@ -235,7 +229,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(true, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // publish = new version content1.Name = "name-4"; @@ -243,7 +237,7 @@ namespace Umbraco.Tests.Persistence.Repositories ((Content) content1).PublishValues(); ((Content) content1).PublishedState = PublishedState.Publishing; repository.Save(content1); - unitOfWork.Flush(); + versions.Add(content1.VersionId); // NEW VERSION // a new version has been created @@ -253,7 +247,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId); // misc checks - Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); + Assert.AreEqual(true, scope.Database.ExecuteScalar("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id })); // all versions var allVersions = repository.GetAllVersions(content1.Id).ToArray(); @@ -296,10 +290,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void PropertyDataAssignedCorrectly() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository _); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository _); var emptyContentType = MockedContentTypes.CreateBasicContentType(); var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage"); @@ -313,7 +307,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(content1); repository.Save(content2); repository.Save(content3); - unitOfWork.Flush(); + // this will cause the GetPropertyCollection to execute and we need to ensure that // all of the properties and property types are all correct @@ -346,14 +340,13 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void PropertyValuesWithSpecialTypes() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository dataTypeDefinitionRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository dataTypeDefinitionRepository); var dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.DecimalAlias) { Name = "test", DatabaseType = DataTypeDatabaseType.Decimal }; dataTypeDefinitionRepository.Save(dtd); - unitOfWork.Complete(); const string decimalPropertyAlias = "decimalProperty"; const string intPropertyAlias = "intProperty"; @@ -369,13 +362,12 @@ namespace Umbraco.Tests.Persistence.Repositories }); var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage", propertyTypeCollection); contentTypeRepository.Save(contentType); - unitOfWork.Complete(); // int and decimal values are passed in as strings as they would be from the backoffice UI var textpage = MockedContent.CreateSimpleContentWithSpecialDatabaseTypes(contentType, "test@umbraco.org", -1, "100", "150", dateValue); repository.Save(textpage); - unitOfWork.Complete(); + scope.Complete(); Assert.That(contentType.HasIdentity, Is.True); Assert.That(textpage.HasIdentity, Is.True); @@ -394,17 +386,17 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void SaveContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository); var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! IContent textpage = MockedContent.CreateSimpleContent(contentType); contentTypeRepository.Save(contentType); repository.Save(textpage); - unitOfWork.Complete(); + scope.Complete(); Assert.That(contentType.HasIdentity, Is.True); Assert.That(textpage.HasIdentity, Is.True); @@ -414,14 +406,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void SaveContentWithDefaultTemplate() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out TemplateRepository templateRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out TemplateRepository templateRepository); var template = new Template("hello", "hello"); templateRepository.Save(template); - unitOfWork.Flush(); + var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage"); contentType.AllowedTemplates = Enumerable.Empty(); // because CreateSimpleContentType assigns one already @@ -430,14 +422,14 @@ namespace Umbraco.Tests.Persistence.Repositories contentTypeRepository.Save(contentType); repository.Save(textpage); - unitOfWork.Flush(); + var fetched = repository.Get(textpage.Id); Assert.NotNull(textpage.Template); Assert.AreEqual(textpage.Template, contentType.DefaultTemplate); - unitOfWork.Complete(); + scope.Complete(); TestHelper.AssertPropertyValuesAreEqual(textpage, fetched, "yyyy-MM-dd HH:mm:ss"); } @@ -448,21 +440,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void SaveContentWithAtSignInName() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository); var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var textpage = MockedContent.CreateSimpleContent(contentType, "test@umbraco.org"); var anotherTextpage = MockedContent.CreateSimpleContent(contentType, "@lightgiants"); repository.Save(textpage); repository.Save(anotherTextpage); - unitOfWork.Flush(); + Assert.That(contentType.HasIdentity, Is.True); @@ -474,28 +466,28 @@ namespace Umbraco.Tests.Persistence.Repositories var content2 = repository.Get(anotherTextpage.Id); Assert.That(content2.Name, Is.EqualTo(anotherTextpage.Name)); - unitOfWork.Complete(); + scope.Complete(); } } [Test] public void SaveContentMultiple() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository); var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! var textpage = MockedContent.CreateSimpleContent(contentType); contentTypeRepository.Save(contentType); repository.Save(textpage); - unitOfWork.Flush(); + var subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id); repository.Save(subpage); - unitOfWork.Flush(); + Assert.That(contentType.HasIdentity, Is.True); Assert.That(textpage.HasIdentity, Is.True); @@ -509,10 +501,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetContentIsNotDirty() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var content = repository.Get(NodeDto.NodeIdSeed + 3); var dirty = ((Content) content).IsDirty(); @@ -524,15 +516,15 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void UpdateContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var content = repository.Get(NodeDto.NodeIdSeed + 2); content.Name = "About 2"; repository.Save(content); - unitOfWork.Flush(); + var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2); Assert.AreEqual(content.Id, updatedContent.Id); @@ -542,7 +534,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(content.GetValue("title"), "Welcome to our Home page"); content.SetValue("title", "toot"); repository.Save(content); - unitOfWork.Flush(); + updatedContent = repository.Get(NodeDto.NodeIdSeed + 2); Assert.AreEqual("toot", updatedContent.GetValue("title")); @@ -553,15 +545,15 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void UpdateContentWithNullTemplate() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var content = repository.Get(NodeDto.NodeIdSeed + 2); content.Template = null; repository.Save(content); - unitOfWork.Flush(); + var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2); Assert.IsNull(updatedContent.Template); @@ -572,21 +564,21 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void DeleteContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out var contentTypeRepository); + var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository); var contentType = contentTypeRepository.Get(NodeDto.NodeIdSeed + 1); var content = new Content("Textpage 2 Child Node", NodeDto.NodeIdSeed + 4, contentType); content.CreatorId = 0; content.WriterId = 0; repository.Save(content); - unitOfWork.Flush(); + var id = content.Id; repository.Delete(content); - unitOfWork.Flush(); + var content1 = repository.Get(id); Assert.IsNull(content1); @@ -596,10 +588,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var content = repository.Get(NodeDto.NodeIdSeed + 4); Assert.AreEqual(NodeDto.NodeIdSeed + 4, content.Id); @@ -617,12 +609,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void QueryContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.Get(query); Assert.GreaterOrEqual(2, result.Count()); @@ -634,10 +626,10 @@ namespace Umbraco.Tests.Persistence.Repositories { IContent[] result; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); result = repository.GetMany().ToArray(); // save them all @@ -646,7 +638,7 @@ namespace Umbraco.Tests.Persistence.Repositories content.SetValue("title", content.GetValue("title") + "x"); repository.Save(content); } - unitOfWork.Flush(); + // publish them all foreach (var content in result) @@ -654,15 +646,15 @@ namespace Umbraco.Tests.Persistence.Repositories content.PublishValues(); repository.Save(content); } - unitOfWork.Flush(); + - unitOfWork.Complete(); + scope.Complete(); } // get them all again - using (var unitOfWork = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var result2 = repository.GetMany().ToArray(); Assert.AreEqual(result.Length, result2.Length); @@ -686,17 +678,17 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_CustomPropertySort() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Name.Contains("Text")); + var query = scope.SqlContext.Query().Where(x => x.Name.Contains("Text")); try { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true; - unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = true; + scope.Database.AsUmbracoDatabase().EnableSqlTrace = true; + scope.Database.AsUmbracoDatabase().EnableSqlCount = true; var result = repository.GetPage(query, 0, 2, out var totalRecords, "title", Direction.Ascending, false); @@ -709,8 +701,8 @@ namespace Umbraco.Tests.Persistence.Repositories } finally { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = false; - unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = false; + scope.Database.AsUmbracoDatabase().EnableSqlTrace = false; + scope.Database.AsUmbracoDatabase().EnableSqlCount = false; } } } @@ -718,17 +710,17 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_FirstPage() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); try { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true; - unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = true; + scope.Database.AsUmbracoDatabase().EnableSqlTrace = true; + scope.Database.AsUmbracoDatabase().EnableSqlCount = true; var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true); @@ -738,8 +730,8 @@ namespace Umbraco.Tests.Persistence.Repositories } finally { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = false; - unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = false; + scope.Database.AsUmbracoDatabase().EnableSqlTrace = false; + scope.Database.AsUmbracoDatabase().EnableSqlCount = false; } } } @@ -747,12 +739,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_SecondPage() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.GetPage(query, 1, 1, out var totalRecords, "Name", Direction.Ascending, true); Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2)); @@ -764,12 +756,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_SinglePage() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.GetPage(query, 0, 2, out var totalRecords, "Name", Direction.Ascending, true); Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2)); @@ -781,12 +773,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_DescendingOrder() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Descending, true); Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2)); @@ -798,14 +790,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_FilterMatchingSome() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); - var filterQuery = unitOfWork.SqlContext.Query().Where(x => x.Name.Contains("Page 2")); + var filterQuery = scope.SqlContext.Query().Where(x => x.Name.Contains("Page 2")); var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true, filterQuery); Assert.That(totalRecords, Is.EqualTo(1)); @@ -817,14 +809,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetPagedResultsByQuery_FilterMatchingAll() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); - var filterQuery = unitOfWork.SqlContext.Query().Where(x => x.Name.Contains("text")); + var filterQuery = scope.SqlContext.Query().Where(x => x.Name.Contains("text")); var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true, filterQuery); Assert.That(totalRecords, Is.EqualTo(2)); @@ -836,10 +828,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetAllContentByIds() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var contents = repository.GetMany(NodeDto.NodeIdSeed + 2, NodeDto.NodeIdSeed + 3); @@ -853,10 +845,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetAllContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var contents = repository.GetMany(); @@ -879,10 +871,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void ExistContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); var exists = repository.Exists(NodeDto.NodeIdSeed + 2); @@ -893,12 +885,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CountContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.Count(query); Assert.That(result, Is.GreaterThanOrEqualTo(2)); @@ -908,12 +900,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void QueryContentByUniqueId() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out _); + var repository = CreateRepository((IScopeAccessor) provider, out _); - var query = unitOfWork.SqlContext.Query().Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); + var query = scope.SqlContext.Query().Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); var content = repository.Get(query).SingleOrDefault(); Assert.IsNotNull(content); diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs index 85ec51a076..dd9763c9a8 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs @@ -14,7 +14,7 @@ using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -33,31 +33,31 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository) { - var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var templateRepository = new TemplateRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger); + contentTypeRepository = new ContentTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository); + var repository = new DocumentRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } - private ContentTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private ContentTypeRepository CreateRepository(IScopeAccessor scopeAccessor) { - var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository); + var templateRepository = new TemplateRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var contentTypeRepository = new ContentTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository); return contentTypeRepository; } - private MediaTypeRepository CreateMediaTypeRepository(IScopeUnitOfWork unitOfWork) + private MediaTypeRepository CreateMediaTypeRepository(IScopeAccessor scopeAccessor) { - var contentTypeRepository = new MediaTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger); + var contentTypeRepository = new MediaTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger); return contentTypeRepository; } - private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork, Guid containerEntityType) + private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor, Guid containerEntityType) { - return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, containerEntityType); + return new EntityContainerRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, containerEntityType); } //TODO Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id). @@ -67,11 +67,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Maps_Templates_Correctly() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var templateRepo = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var repository = CreateRepository(unitOfWork); + var templateRepo = new TemplateRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var repository = CreateRepository((IScopeAccessor) provider); var templates = new[] { new Template("test1", "test1"), @@ -82,13 +82,13 @@ namespace Umbraco.Tests.Persistence.Repositories { templateRepo.Save(template); } - unitOfWork.Flush(); + var contentType = MockedContentTypes.CreateSimpleContentType(); contentType.AllowedTemplates = new[] { templates[0], templates[1] }; contentType.SetDefaultTemplate(templates[0]); repository.Save(contentType); - unitOfWork.Flush(); + //re-get var result = repository.Get(contentType.Id); @@ -102,23 +102,23 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Move() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer); + var repository = CreateRepository((IScopeAccessor) provider); var container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah1" }; containerRepository.Save(container1); - unitOfWork.Flush(); + var container2 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah2", ParentId = container1.Id }; containerRepository.Save(container2); - unitOfWork.Flush(); + var contentType = (IContentType)MockedContentTypes.CreateBasicContentType("asdfasdf"); contentType.ParentId = container2.Id; repository.Save(contentType); - unitOfWork.Flush(); + //create a var contentType2 = (IContentType)new ContentType(contentType, "hello") @@ -127,10 +127,10 @@ namespace Umbraco.Tests.Persistence.Repositories }; contentType.ParentId = contentType.Id; repository.Save(contentType2); - unitOfWork.Flush(); + var result = repository.Move(contentType, container1).ToArray(); - unitOfWork.Flush(); + Assert.AreEqual(2, result.Count()); @@ -148,13 +148,13 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer); var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + Assert.That(container.Id, Is.GreaterThan(0)); var found = containerRepository.Get(container.Id); @@ -167,10 +167,10 @@ namespace Umbraco.Tests.Persistence.Repositories { EntityContainer container1, container2, container3; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer); container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container1" }; containerRepository.Save(container1); @@ -178,7 +178,7 @@ namespace Umbraco.Tests.Persistence.Repositories containerRepository.Save(container2); container3 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container3" }; containerRepository.Save(container3); - unitOfWork.Flush(); + Assert.That(container1.Id, Is.GreaterThan(0)); Assert.That(container2.Id, Is.GreaterThan(0)); Assert.That(container3.Id, Is.GreaterThan(0)); @@ -197,17 +197,17 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer); var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + // Act containerRepository.Delete(container); - unitOfWork.Flush(); + var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -217,19 +217,19 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Container_Containing_Media_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.MediaTypeContainer); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.MediaTypeContainer); + var repository = CreateRepository((IScopeAccessor) provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup"); contentType.ParentId = container.Id; repository.Save(contentType); - unitOfWork.Flush(); + Assert.AreEqual(container.Id, contentType.ParentId); } @@ -238,23 +238,23 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container_Containing_Media_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.MediaTypeContainer); - var repository = CreateMediaTypeRepository(unitOfWork); + var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.MediaTypeContainer); + var repository = CreateMediaTypeRepository((IScopeAccessor) provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + IMediaType contentType = MockedContentTypes.CreateSimpleMediaType("test", "Test", propertyGroupName: "testGroup"); contentType.ParentId = container.Id; repository.Save(contentType); - unitOfWork.Flush(); + // Act containerRepository.Delete(container); - unitOfWork.Flush(); + var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -269,14 +269,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup"); repository.Save(contentType); - unitOfWork.Flush(); + var fetched = repository.Get(contentType.Id); @@ -304,10 +304,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_ContentTypeRepository_After_Model_Mapping() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = (IContentType)MockedContentTypes.CreateSimpleContentType2("test", "Test", propertyGroupName: "testGroup"); @@ -322,7 +322,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(4, mapped.PropertyTypes.Count()); repository.Save(mapped); - unitOfWork.Flush(); + Assert.AreEqual(4, mapped.PropertyTypes.Count()); @@ -353,10 +353,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = repository.Get(NodeDto.NodeIdSeed + 1); @@ -370,7 +370,7 @@ namespace Umbraco.Tests.Persistence.Repositories DataTypeDefinitionId = -88 }); repository.Save(contentType); - unitOfWork.Flush(); + var dirty = ((ICanBeDirty)contentType).IsDirty(); @@ -429,10 +429,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_ContentTypeRepository_After_Model_Mapping() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = repository.Get(NodeDto.NodeIdSeed + 1); @@ -468,7 +468,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.IsTrue(mapped.PropertyTypes.Any(x => x.Alias == "subtitle")); repository.Save(mapped); - unitOfWork.Flush(); + var dirty = mapped.IsDirty(); @@ -492,18 +492,18 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = MockedContentTypes.CreateSimpleContentType(); repository.Save(contentType); - unitOfWork.Flush(); + var contentType2 = repository.Get(contentType.Id); repository.Delete(contentType2); - unitOfWork.Flush(); + var exists = repository.Exists(contentType.Id); @@ -516,10 +516,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_With_Heirarchy_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var ctMain = MockedContentTypes.CreateSimpleContentType(); var ctChild1 = MockedContentTypes.CreateSimpleContentType("child1", "Child 1", ctMain, true); var ctChild2 = MockedContentTypes.CreateSimpleContentType("child2", "Child 2", ctChild1, true); @@ -527,13 +527,13 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(ctMain); repository.Save(ctChild1); repository.Save(ctChild2); - unitOfWork.Flush(); + // Act var resolvedParent = repository.Get(ctMain.Id); repository.Delete(resolvedParent); - unitOfWork.Flush(); + // Assert Assert.That(repository.Exists(ctMain.Id), Is.False); @@ -546,10 +546,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Query_On_ContentTypeRepository_Sort_By_Name() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var child1 = MockedContentTypes.CreateSimpleContentType("abc", "abc", contentType, randomizeAliases: true); repository.Save(child1); @@ -557,10 +557,10 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(child3); var child2 = MockedContentTypes.CreateSimpleContentType("a123", "a123", contentType, randomizeAliases: true); repository.Save(child2); - unitOfWork.Flush(); + // Act - var contentTypes = repository.Get(unitOfWork.SqlContext.Query().Where(x => x.ParentId == contentType.Id)); + var contentTypes = repository.Get(scope.SqlContext.Query().Where(x => x.ParentId == contentType.Id)); // Assert Assert.That(contentTypes.Count(), Is.EqualTo(3)); @@ -575,10 +575,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = repository.Get(NodeDto.NodeIdSeed + 1); @@ -593,14 +593,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_By_Guid_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var childContentType = MockedContentTypes.CreateSimpleContentType("blah", "Blah", contentType, randomizeAliases:true); repository.Save(childContentType); - unitOfWork.Flush(); + // Act var result = repository.Get(childContentType.Key); @@ -615,10 +615,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_By_Missing_Guid_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var result = repository.Get(Guid.NewGuid()); @@ -631,15 +631,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentTypes = repository.GetMany(); int count = - unitOfWork.Database.ExecuteScalar( + scope.Database.ExecuteScalar( "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", new {NodeObjectType = Constants.ObjectTypes.DocumentType}); @@ -653,16 +653,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_By_Guid_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var allGuidIds = repository.GetMany().Select(x => x.Key).ToArray(); // Act var contentTypes = ((IReadRepository)repository).GetMany(allGuidIds); int count = - unitOfWork.Database.ExecuteScalar( + scope.Database.ExecuteScalar( "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", new { NodeObjectType = Constants.ObjectTypes.DocumentType }); @@ -676,10 +676,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_ContentTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var exists = repository.Exists(NodeDto.NodeIdSeed); @@ -693,16 +693,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Update_ContentType_With_PropertyType_Removed() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); // Act contentType.PropertyGroups["Meta"].PropertyTypes.Remove("description"); repository.Save(contentType); - unitOfWork.Flush(); + var result = repository.Get(NodeDto.NodeIdSeed + 1); @@ -717,10 +717,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_PropertyTypes_On_SimpleTextpage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = repository.Get(NodeDto.NodeIdSeed); @@ -735,10 +735,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_PropertyTypes_On_Textpage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); // Act var contentType = repository.Get(NodeDto.NodeIdSeed + 1); @@ -753,10 +753,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_PropertyType_With_No_Group() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(2)); @@ -778,7 +778,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); repository.Save(contentType); - unitOfWork.Flush(); + // Assert var updated = repository.Get(NodeDto.NodeIdSeed + 1); @@ -794,16 +794,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_AllowedChildContentTypes_On_ContentType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository((IScopeAccessor) provider); var subpageContentType = MockedContentTypes.CreateSimpleContentType("umbSubpage", "Subpage"); var simpleSubpageContentType = MockedContentTypes.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage"); repository.Save(subpageContentType); repository.Save(simpleSubpageContentType); - unitOfWork.Flush(); + // Act var contentType = repository.Get(NodeDto.NodeIdSeed); @@ -813,7 +813,7 @@ namespace Umbraco.Tests.Persistence.Repositories new ContentTypeSort(new Lazy(() => simpleSubpageContentType.Id), 1, simpleSubpageContentType.Alias) }; repository.Save(contentType); - unitOfWork.Flush(); + //Assert var updated = repository.Get(NodeDto.NodeIdSeed); @@ -828,21 +828,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_Removal_Of_Used_PropertyType_From_ContentType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { ContentTypeRepository repository; - var contentRepository = CreateRepository(unitOfWork, out repository); + var contentRepository = CreateRepository((IScopeAccessor) provider, out repository); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); contentRepository.Save(subpage); - unitOfWork.Flush(); + // Act contentType.RemovePropertyType("keywords"); repository.Save(contentType); - unitOfWork.Flush(); + // Assert Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); @@ -855,22 +855,22 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_Addition_Of_PropertyType_After_ContentType_Is_Used() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { ContentTypeRepository repository; - var contentRepository = CreateRepository(unitOfWork, out repository); + var contentRepository = CreateRepository((IScopeAccessor) provider, out repository); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); contentRepository.Save(subpage); - unitOfWork.Flush(); + // Act var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); repository.Save(contentType); - unitOfWork.Flush(); + // Assert Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); @@ -883,27 +883,27 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_Usage_Of_New_PropertyType_On_Content() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { ContentTypeRepository repository; - var contentRepository = CreateRepository(unitOfWork, out repository); + var contentRepository = CreateRepository((IScopeAccessor) provider, out repository); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); contentRepository.Save(subpage); - unitOfWork.Flush(); + var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); repository.Save(contentType); - unitOfWork.Flush(); + // Act var content = contentRepository.Get(subpage.Id); content.SetValue("metaAuthor", "John Doe"); contentRepository.Save(content); - unitOfWork.Flush(); + //Assert var updated = contentRepository.Get(subpage.Id); @@ -917,16 +917,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_That_A_Combination_Of_Adding_And_Deleting_PropertyTypes_Doesnt_Cause_Issues_For_Content_And_ContentType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { ContentTypeRepository repository; - var contentRepository = CreateRepository(unitOfWork, out repository); + var contentRepository = CreateRepository((IScopeAccessor) provider, out repository); var contentType = repository.Get(NodeDto.NodeIdSeed + 1); var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); contentRepository.Save(subpage); - unitOfWork.Flush(); + //Remove PropertyType contentType.RemovePropertyType("keywords"); @@ -934,13 +934,13 @@ namespace Umbraco.Tests.Persistence.Repositories var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); repository.Save(contentType); - unitOfWork.Flush(); + // Act var content = contentRepository.Get(subpage.Id); content.SetValue("metaAuthor", "John Doe"); contentRepository.Save(content); - unitOfWork.Flush(); + //Assert var updated = contentRepository.Get(subpage.Id); diff --git a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs index 5bc5d9ee0f..76d57af091 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs @@ -6,12 +6,12 @@ using Umbraco.Core.Cache; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Core.Composing; using Umbraco.Tests.Testing; using LightInject; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; namespace Umbraco.Tests.Persistence.Repositories { @@ -57,38 +57,37 @@ namespace Umbraco.Tests.Persistence.Repositories } } - private IDataTypeDefinitionRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private IDataTypeDefinitionRepository CreateRepository() { - return Container.GetInstance(unitOfWork); + return Container.GetInstance(); } - private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork) + private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor) { - return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Constants.ObjectTypes.DataTypeContainer); + return new EntityContainerRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Constants.ObjectTypes.DataTypeContainer); } [Test] public void Can_Move() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(accessor); + var repository = CreateRepository(); var container1 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah1" }; containerRepository.Save(container1); - unitOfWork.Flush(); var container2 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah2", ParentId = container1.Id }; containerRepository.Save(container2); - unitOfWork.Flush(); var dataType = (IDataTypeDefinition)new DataTypeDefinition(container2.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "dt1" }; repository.Save(dataType); - unitOfWork.Flush(); //create a var dataType2 = (IDataTypeDefinition)new DataTypeDefinition(dataType.Id, Constants.PropertyEditors.RadioButtonListAlias) @@ -96,10 +95,8 @@ namespace Umbraco.Tests.Persistence.Repositories Name = "dt2" }; repository.Save(dataType2); - unitOfWork.Flush(); var result = repository.Move(dataType, container1).ToArray(); - unitOfWork.Flush(); Assert.AreEqual(2, result.Count()); @@ -111,19 +108,20 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType.Id).OriginalPath, dataType.Path); Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType2.Id).OriginalPath, dataType2.Path); } - } [Test] public void Can_Create_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); + var containerRepository = CreateContainerRepository(accessor); var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + Assert.That(container.Id, Is.GreaterThan(0)); var found = containerRepository.Get(container.Id); @@ -134,17 +132,17 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); + var containerRepository = CreateContainerRepository(accessor); var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); // Act containerRepository.Delete(container); - unitOfWork.Flush(); var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -154,18 +152,18 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Container_Containing_Data_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(accessor); + var repository = CreateRepository(); var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); var dataTypeDefinition = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dataTypeDefinition); - unitOfWork.Flush(); Assert.AreEqual(container.Id, dataTypeDefinition.ParentId); } @@ -174,22 +172,21 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container_Containing_Data_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(accessor); + var repository = CreateRepository(); var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); IDataTypeDefinition dataType = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dataType); - unitOfWork.Flush(); // Act containerRepository.Delete(container); - unitOfWork.Flush(); var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -203,15 +200,16 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); IDataTypeDefinition dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) {Name = "test"}; repository.Save(dataTypeDefinition); - unitOfWork.Flush(); var id = dataTypeDefinition.Id; Assert.That(id, Is.GreaterThan(0)); @@ -228,11 +226,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Get_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var dataTypeDefinition = repository.Get(-42); @@ -246,11 +245,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_GetAll_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var dataTypeDefinitions = repository.GetMany(); @@ -266,11 +266,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_GetAll_With_Params_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var dataTypeDefinitions = repository.GetMany(-40, -41, -42); @@ -286,14 +287,15 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_GetByQuery_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.PropertyEditorAlias == Constants.PropertyEditors.RadioButtonListAlias); + var query = scope.SqlContext.Query().Where(x => x.PropertyEditorAlias == Constants.PropertyEditors.RadioButtonListAlias); var result = repository.Get(query); // Assert @@ -306,14 +308,15 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Count_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Name.StartsWith("D")); + var query = scope.SqlContext.Query().Where(x => x.Name.StartsWith("D")); int count = repository.Count(query); // Assert @@ -324,11 +327,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Add_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dataTypeDefinition = new DataTypeDefinition("Test.TestEditor") { DatabaseType = DataTypeDatabaseType.Integer, @@ -338,7 +342,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Act repository.Save(dataTypeDefinition); - unitOfWork.Flush(); + var exists = repository.Exists(dataTypeDefinition.Id); var fetched = repository.Get(dataTypeDefinition.Id); @@ -354,11 +358,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Update_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dataTypeDefinition = new DataTypeDefinition("Test.blah") { DatabaseType = DataTypeDatabaseType.Integer, @@ -366,14 +371,12 @@ namespace Umbraco.Tests.Persistence.Repositories CreatorId = 0 }; repository.Save(dataTypeDefinition); - unitOfWork.Flush(); // Act var definition = repository.Get(dataTypeDefinition.Id); definition.Name = "AgeDataType Updated"; definition.PropertyEditorAlias = "Test.TestEditor"; //change repository.Save(definition); - unitOfWork.Flush(); var definitionUpdated = repository.Get(dataTypeDefinition.Id); @@ -387,11 +390,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Delete_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dataTypeDefinition = new DataTypeDefinition("Test.TestEditor") { DatabaseType = DataTypeDatabaseType.Integer, @@ -401,11 +405,10 @@ namespace Umbraco.Tests.Persistence.Repositories // Act repository.Save(dataTypeDefinition); - unitOfWork.Flush(); + var existsBefore = repository.Exists(dataTypeDefinition.Id); repository.Delete(dataTypeDefinition); - unitOfWork.Flush(); var existsAfter = repository.Exists(dataTypeDefinition.Id); @@ -418,11 +421,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Exists_On_DataTypeDefinitionRepository() { - // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var exists = repository.Exists(1046); //Content picker @@ -437,17 +441,19 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Pre_Value_Collection() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dataTypeDefinition); - unitOfWork.Flush(); + var dtid = dataTypeDefinition.Id; - unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1"}); - unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" }); + scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1"}); + scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" }); var collection = repository.GetPreValuesCollectionByDataTypeId(dtid); Assert.AreEqual(2, collection.PreValuesAsArray.Count()); @@ -457,17 +463,19 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Pre_Value_As_String() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dataTypeDefinition); - unitOfWork.Flush(); + var dtid = dataTypeDefinition.Id; - var id = unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1" }); - unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" }); + var id = scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1" }); + scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" }); var val = repository.GetPreValueAsString(Convert.ToInt32(id)); Assert.AreEqual("test1", val); @@ -477,17 +485,19 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Pre_Value_Collection_With_Cache() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); DataTypeDefinition dtd; - using (var unitOfWork = provider.CreateUnitOfWork()) + + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = Container.GetInstance(unitOfWork); + var repository = Container.GetInstance(); dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dtd); - unitOfWork.Flush(); - unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" }); - unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" }); + scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" }); + scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" }); //this will cache the result var collection = repository.GetPreValuesCollectionByDataTypeId(dtd.Id); @@ -507,18 +517,20 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Pre_Value_As_String_With_Cache() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); DataTypeDefinition dtd; object id; - using (var unitOfWork = provider.CreateUnitOfWork()) + + var provider = TestObjects.GetScopeProvider(Logger); + var accessor = (IScopeAccessor) provider; + + using (var scope = provider.CreateScope()) { - var repository = Container.GetInstance(unitOfWork); + var repository = Container.GetInstance(); dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" }; repository.Save(dtd); - unitOfWork.Flush(); - id = unitOfWork.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" }); - unitOfWork.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" }); + id = scope.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" }); + scope.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" }); //this will cache the result var val = repository.GetPreValueAsString(Convert.ToInt32(id)); @@ -534,9 +546,9 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreEqual(1, cached.Count()); Assert.AreEqual(2, cached.Single().FormatAsDictionary().Count); - using (var unitOfWork = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repository = Container.GetInstance(unitOfWork); + var repository = Container.GetInstance(); //ensure it still gets resolved! var val = repository.GetPreValueAsString(Convert.ToInt32(id)); Assert.AreEqual("test1", val); diff --git a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs index d7fad862b7..357015a9e5 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs @@ -4,10 +4,10 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; using LightInject; +using Umbraco.Core.Scoping; namespace Umbraco.Tests.Persistence.Repositories { @@ -22,19 +22,19 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private IDictionaryRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private IDictionaryRepository CreateRepository() { - return Container.GetInstance(unitOfWork); + return Container.GetInstance(); } [Test] public void Can_Perform_Get_By_Key_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235") { Translations = new List @@ -44,7 +44,6 @@ namespace Umbraco.Tests.Persistence.Repositories }; repository.Save(dictionaryItem); - unitOfWork.Flush(); //re-get dictionaryItem = repository.Get("Testing1235"); @@ -63,10 +62,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_By_UniqueId_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235") { Translations = new List @@ -76,7 +75,6 @@ namespace Umbraco.Tests.Persistence.Repositories }; repository.Save(dictionaryItem); - unitOfWork.Flush(); //re-get dictionaryItem = repository.Get(dictionaryItem.Key); @@ -88,17 +86,16 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False); Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Hello world")); } - } [Test] public void Can_Perform_Get_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235") { Translations = new List @@ -108,7 +105,6 @@ namespace Umbraco.Tests.Persistence.Repositories }; repository.Save(dictionaryItem); - unitOfWork.Flush(); //re-get dictionaryItem = repository.Get(dictionaryItem.Id); @@ -128,14 +124,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_DictionaryRepository_When_No_Language_Assigned() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var dictionaryItem = (IDictionaryItem) new DictionaryItem("Testing1235"); repository.Save(dictionaryItem); - unitOfWork.Flush(); //re-get dictionaryItem = repository.Get(dictionaryItem.Id); @@ -153,10 +148,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var dictionaryItem = repository.Get(1); @@ -174,10 +169,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_With_Params_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var dictionaryItems = repository.GetMany(1, 2); @@ -194,13 +189,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.ItemKey == "Article"); + var query = scope.SqlContext.Query().Where(x => x.ItemKey == "Article"); var result = repository.Get(query); // Assert @@ -214,13 +209,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.ItemKey.StartsWith("Read")); + var query = scope.SqlContext.Query().Where(x => x.ItemKey.StartsWith("Read")); var result = repository.Count(query); // Assert @@ -232,11 +227,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var languageRepository = Container.GetInstance(unitOfWork); - var repository = CreateRepository(unitOfWork); + var languageRepository = Container.GetInstance(); + var repository = CreateRepository(); var language = languageRepository.Get(1); @@ -249,7 +244,6 @@ namespace Umbraco.Tests.Persistence.Repositories // Act repository.Save(read); - unitOfWork.Flush(); var exists = repository.Exists(read.Id); @@ -263,10 +257,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var item = repository.Get(1); @@ -275,7 +269,6 @@ namespace Umbraco.Tests.Persistence.Repositories item.Translations = translations; repository.Save(item); - unitOfWork.Flush(); var dictionaryItem = repository.Get(1); @@ -290,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_WithNewTranslation_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); var languageNo = new Language("nb-NO") { CultureName = "nb-NO" }; ServiceContext.LocalizationService.Save(languageNo); @@ -305,7 +298,6 @@ namespace Umbraco.Tests.Persistence.Repositories item.Translations = translations; repository.Save(item); - unitOfWork.Flush(); var dictionaryItem = (DictionaryItem) repository.Get(1); @@ -320,15 +312,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var item = repository.Get(1); repository.Delete(item); - unitOfWork.Flush(); var exists = repository.Exists(1); @@ -341,10 +332,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_DictionaryRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); // Act var exists = repository.Exists(1); @@ -359,10 +350,10 @@ namespace Umbraco.Tests.Persistence.Repositories { Dictionary keyMap; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(); keyMap = repository.GetDictionaryItemKeyMap(); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs index 8c1fdf5f55..ae51e861ff 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs @@ -8,7 +8,7 @@ using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -19,27 +19,28 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class DomainRepositoryTest : TestWithDatabaseBase { - private DomainRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out DocumentRepository documentRepository, out LanguageRepository languageRepository) + private DomainRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository, out DocumentRepository documentRepository, out LanguageRepository languageRepository) { - var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository); - documentRepository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); - languageRepository = new LanguageRepository(unitOfWork, DisabledCache, Logger); - var domainRepository = new DomainRepository(unitOfWork, DisabledCache, Logger); + var accessor = (IScopeAccessor) provider; + var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(accessor, DisabledCache, Logger); + contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository); + documentRepository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + languageRepository = new LanguageRepository(accessor, DisabledCache, Logger); + var domainRepository = new DomainRepository(accessor, DisabledCache, Logger); return domainRepository; } private int CreateTestData(string isoName, out ContentType ct) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = new Language(isoName); langRepo.Save(lang); @@ -48,7 +49,7 @@ namespace Umbraco.Tests.Persistence.Repositories contentTypeRepo.Save(ct); var content = new Content("test", -1, ct) { CreatorId = 0, WriterId = 0 }; documentRepo.Save(content); - unitOfWork.Complete(); + scope.Complete(); return content.Id; } } @@ -59,21 +60,20 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); //re-get domain = repo.Get(domain.Id); @@ -94,20 +94,19 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var content = documentRepo.Get(contentId); var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id }; repo.Save(domain); - unitOfWork.Flush(); //re-get domain = repo.Get(domain.Id); @@ -127,26 +126,24 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); var domain1 = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain1); - unitOfWork.Flush(); var domain2 = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id }; - repo.Save(domain2); - Assert.Throws(unitOfWork.Flush); + Assert.Throws(() => repo.Save(domain2)); } } @@ -156,24 +153,22 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); repo.Delete(domain); - unitOfWork.Flush(); //re-get domain = repo.Get(domain.Id); @@ -189,14 +184,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId1 = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var content1 = documentRepo.Get(contentId1); @@ -206,12 +201,10 @@ namespace Umbraco.Tests.Persistence.Repositories langRepo.Save(lang2); var content2 = new Content("test", -1, ct) { CreatorId = 0, WriterId = 0 }; documentRepo.Save(content2); - unitOfWork.Flush(); var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content1.Id, LanguageId = lang1.Id }; repo.Save(domain); - unitOfWork.Flush(); //re-get domain = repo.Get(domain.Id); @@ -220,7 +213,6 @@ namespace Umbraco.Tests.Persistence.Repositories domain.RootContentId = content2.Id; domain.LanguageId = lang2.Id; repo.Save(domain); - unitOfWork.Flush(); //re-get domain = repo.Get(domain.Id); @@ -239,14 +231,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); @@ -255,7 +247,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var domain = (IDomain)new UmbracoDomain("test" + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var found = repo.Exists("test1.com"); @@ -270,14 +261,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); @@ -286,7 +277,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var domain = (IDomain)new UmbracoDomain("test" + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var found = repo.GetByName("test1.com"); @@ -301,14 +291,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); @@ -317,7 +307,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var all = repo.GetMany(); @@ -332,14 +321,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); @@ -349,7 +338,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); ids.Add(domain.Id); } @@ -365,14 +353,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var lang = langRepo.GetByIsoCode("en-AU"); var content = documentRepo.Get(contentId); @@ -385,7 +373,6 @@ namespace Umbraco.Tests.Persistence.Repositories LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var all = repo.GetAll(false); @@ -400,14 +387,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var contentItems = new List(); @@ -419,7 +406,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var c = new Content("test" + i, -1, ct) { CreatorId = 0, WriterId = 0 }; documentRepo.Save(c); - unitOfWork.Flush(); contentItems.Add(c); } @@ -431,7 +417,6 @@ namespace Umbraco.Tests.Persistence.Repositories LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var all1 = repo.GetAssignedDomains(contentItems[0].Id, true); @@ -451,14 +436,14 @@ namespace Umbraco.Tests.Persistence.Repositories ContentType ct; var contentId = CreateTestData("en-AU", out ct); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { DocumentRepository documentRepo; LanguageRepository langRepo; ContentTypeRepository contentTypeRepo; - var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo); + var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); var contentItems = new List(); @@ -470,7 +455,6 @@ namespace Umbraco.Tests.Persistence.Repositories { var c = new Content("test" + i, -1, ct) { CreatorId = 0, WriterId = 0 }; documentRepo.Save(c); - unitOfWork.Flush(); contentItems.Add(c); } @@ -482,7 +466,6 @@ namespace Umbraco.Tests.Persistence.Repositories LanguageId = lang.Id }; repo.Save(domain); - unitOfWork.Flush(); } var all1 = repo.GetAssignedDomains(contentItems[0].Id, false); diff --git a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs index 14030852ae..3d0b484a50 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs @@ -11,7 +11,7 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -28,9 +28,9 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private LanguageRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private LanguageRepository CreateRepository(IScopeProvider provider) { - return new LanguageRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + return new LanguageRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); } @@ -39,11 +39,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true; - var repository = CreateRepository(unitOfWork); + scope.Database.AsUmbracoDatabase().EnableSqlTrace = true; + var repository = CreateRepository(provider); // Act var language = repository.Get(1); @@ -59,10 +59,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Get_By_Iso_Code_On_LanguageRepository() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var au = CultureInfo.GetCultureInfo("en-AU"); var language = (ILanguage)new Language(au.Name) @@ -70,7 +70,6 @@ namespace Umbraco.Tests.Persistence.Repositories CultureName = au.DisplayName }; repository.Save(language); - unitOfWork.Flush(); //re-get language = repository.GetByIsoCode(au.Name); @@ -86,10 +85,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Get_By_Culture_Name_On_LanguageRepository() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var au = CultureInfo.GetCultureInfo("en-AU"); var language = (ILanguage)new Language(au.Name) @@ -97,7 +96,6 @@ namespace Umbraco.Tests.Persistence.Repositories CultureName = au.DisplayName }; repository.Save(language); - unitOfWork.Flush(); //re-get language = repository.GetByCultureName(au.DisplayName); @@ -114,10 +112,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Get_WhenIdDoesntExist_ReturnsNull() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var language = repository.Get(0); @@ -131,10 +129,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var languages = repository.GetMany(); @@ -151,10 +149,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_With_Params_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var languages = repository.GetMany(1, 2); @@ -171,13 +169,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.IsoCode == "da-DK"); + var query = scope.SqlContext.Query().Where(x => x.IsoCode == "da-DK"); var result = repository.Get(query); // Assert @@ -191,13 +189,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.IsoCode.StartsWith("D")); + var query = scope.SqlContext.Query().Where(x => x.IsoCode.StartsWith("D")); int count = repository.Count(query); // Assert @@ -209,15 +207,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var languageBR = new Language("pt-BR") {CultureName = "pt-BR"}; repository.Save(languageBR); - unitOfWork.Flush(); // Assert Assert.That(languageBR.HasIdentity, Is.True); @@ -229,10 +226,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var language = repository.Get(5); @@ -240,7 +237,6 @@ namespace Umbraco.Tests.Persistence.Repositories language.CultureName = "pt-BR"; repository.Save(language); - unitOfWork.Flush(); var languageUpdated = repository.Get(5); @@ -255,15 +251,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var language = repository.Get(3); repository.Delete(language); - unitOfWork.Flush(); var exists = repository.Exists(3); @@ -276,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_LanguageRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var exists = repository.Exists(3); diff --git a/src/Umbraco.Tests/Persistence/Repositories/MacroRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MacroRepositoryTest.cs index 00c6666f68..de013426b7 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MacroRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MacroRepositoryTest.cs @@ -11,7 +11,7 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -32,15 +32,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Cannot_Add_Duplicate_Macros() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = new Macro("test1", "Test", "~/usercontrol/blah.ascx", "MyAssembly", "test.xslt", "~/views/macropartials/test.cshtml"); - repository.Save(macro); + ; - Assert.Throws(unitOfWork.Flush); + Assert.Throws(() => repository.Save(macro)); } } @@ -49,15 +49,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Cannot_Update_To_Duplicate_Macro_Alias() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = repository.Get(1); macro.Alias = "test2"; - repository.Save(macro); - Assert.Throws(unitOfWork.Flush); + + Assert.Throws(() => repository.Save(macro)); } } @@ -66,10 +66,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Instantiate_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Assert Assert.That(repository, Is.Not.Null); @@ -80,10 +80,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var macro = repository.Get(1); @@ -111,10 +111,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var macros = repository.GetMany(); @@ -129,13 +129,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Alias.ToUpper() == "TEST1"); + var query = scope.SqlContext.Query().Where(x => x.Alias.ToUpper() == "TEST1"); var result = repository.Get(query); // Assert @@ -147,13 +147,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Name.StartsWith("Test")); + var query = scope.SqlContext.Query().Where(x => x.Name.StartsWith("Test")); int count = repository.Count(query); // Assert @@ -165,16 +165,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var macro = new Macro("test", "Test", "~/usercontrol/blah.ascx", "MyAssembly", "test.xslt", "~/views/macropartials/test.cshtml"); macro.Properties.Add(new MacroProperty("test", "Test", 0, "test")); repository.Save(macro); - unitOfWork.Flush(); // Assert Assert.That(macro.HasIdentity, Is.True); @@ -187,10 +186,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var macro = repository.Get(2); @@ -206,7 +205,6 @@ namespace Umbraco.Tests.Persistence.Repositories macro.XsltPath = ""; repository.Save(macro); - unitOfWork.Flush(); var macroUpdated = repository.Get(2); @@ -229,16 +227,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var macro = repository.Get(3); Assert.IsNotNull(macro); repository.Delete(macro); - unitOfWork.Flush(); var exists = repository.Exists(3); @@ -251,10 +248,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); // Act var exists = repository.Exists(3); @@ -270,17 +267,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Add_Property_For_Macro() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = repository.Get(1); macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test")); repository.Save(macro); - unitOfWork.Flush(); // Assert Assert.Greater(macro.Properties.First().Id, 0); //ensure id is returned @@ -298,17 +294,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Add_New_Macro_With_Property() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml"); macro.Properties.Add(new MacroProperty("blah1", "New1", 4, "test.editor")); repository.Save(macro); - unitOfWork.Flush(); // Assert var result = repository.Get(macro.Id); @@ -324,20 +319,18 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Remove_Macro_Property() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml"); macro.Properties.Add(new MacroProperty("blah1", "New1", 4, "test.editor")); repository.Save(macro); - unitOfWork.Flush(); var result = repository.Get(macro.Id); result.Properties.Remove("blah1"); repository.Save(result); - unitOfWork.Flush(); // Assert result = repository.Get(macro.Id); @@ -350,10 +343,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Add_Remove_Macro_Properties() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml"); var prop1 = new MacroProperty("blah1", "New1", 4, "test.editor"); @@ -367,7 +360,6 @@ namespace Umbraco.Tests.Persistence.Repositories macro.Properties.Add(prop2); repository.Save(macro); - unitOfWork.Flush(); // Assert var result = repository.Get(macro.Id); @@ -382,21 +374,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Update_Property_For_Macro() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = repository.Get(1); macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test")); repository.Save(macro); - unitOfWork.Flush(); //Act macro = repository.Get(1); macro.Properties["new1"].Name = "this is a new name"; repository.Save(macro); - unitOfWork.Flush(); // Assert @@ -411,21 +401,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Update_Macro_Property_Alias() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); var macro = repository.Get(1); macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test")); repository.Save(macro); - unitOfWork.Flush(); //Act macro = repository.Get(1); macro.Properties.UpdateProperty("new1", newAlias: "newAlias"); repository.Save(macro); - unitOfWork.Flush(); // Assert var result = repository.Get(1); @@ -441,15 +429,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void CreateTestData() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); repository.Save(new Macro("test1", "Test1", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml")); repository.Save(new Macro("test2", "Test2", "~/usercontrol/test2.ascx", "MyAssembly2", "test2.xslt", "~/views/macropartials/test2.cshtml")); repository.Save(new Macro("test3", "Tet3", "~/usercontrol/test3.ascx", "MyAssembly3", "test3.xslt", "~/views/macropartials/test3.cshtml")); - unitOfWork.Complete(); + scope.Complete(); } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs index c24d114453..6915bc0e40 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs @@ -9,11 +9,11 @@ using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.Testing; namespace Umbraco.Tests.Persistence.Repositories @@ -29,13 +29,14 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private MediaRepository CreateRepository(IScopeUnitOfWork unitOfWork, out MediaTypeRepository mediaTypeRepository, CacheHelper cacheHelper = null) + private MediaRepository CreateRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository, CacheHelper cacheHelper = null) { cacheHelper = cacheHelper ?? CacheHelper; + var scopeAccessor = (IScopeAccessor) provider; - mediaTypeRepository = new MediaTypeRepository(unitOfWork, cacheHelper, Logger); - var tagRepository = new TagRepository(unitOfWork, cacheHelper, Logger); - var repository = new MediaRepository(unitOfWork, cacheHelper, Logger, mediaTypeRepository, tagRepository, Mock.Of()); + mediaTypeRepository = new MediaTypeRepository(scopeAccessor, cacheHelper, Logger); + var tagRepository = new TagRepository(scopeAccessor, cacheHelper, Logger); + var repository = new MediaRepository(scopeAccessor, cacheHelper, Logger, mediaTypeRepository, tagRepository, Mock.Of()); return repository; } @@ -50,12 +51,12 @@ namespace Umbraco.Tests.Persistence.Repositories new StaticCacheProvider(), new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider())); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out mediaTypeRepository, cacheHelper: realCache); + var repository = CreateRepository(provider, out mediaTypeRepository, cacheHelper: realCache); - var udb = (UmbracoDatabase)unitOfWork.Database; + var udb = (UmbracoDatabase)scope.Database; udb.EnableSqlCount = false; @@ -63,7 +64,6 @@ namespace Umbraco.Tests.Persistence.Repositories var media = MockedMedia.CreateSimpleMedia(mediaType, "hello", -1); mediaTypeRepository.Save(mediaType); repository.Save(media); - unitOfWork.Complete(); udb.EnableSqlCount = true; @@ -92,11 +92,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void SaveMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); var mediaType = mediaTypeRepository.Get(1032); var image = MockedMedia.CreateMediaImage(mediaType, -1); @@ -104,7 +104,6 @@ namespace Umbraco.Tests.Persistence.Repositories // Act mediaTypeRepository.Save(mediaType); repository.Save(image); - unitOfWork.Flush(); var fetched = repository.Get(image.Id); @@ -120,22 +119,20 @@ namespace Umbraco.Tests.Persistence.Repositories public void SaveMediaMultiple() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); var mediaType = mediaTypeRepository.Get(1032); var file = MockedMedia.CreateMediaFile(mediaType, -1); // Act repository.Save(file); - unitOfWork.Flush(); var image = MockedMedia.CreateMediaImage(mediaType, -1); repository.Save(image); - unitOfWork.Flush(); // Assert Assert.That(file.HasIdentity, Is.True); @@ -151,11 +148,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetMediaIsNotDirty() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var media = repository.Get(NodeDto.NodeIdSeed + 1); @@ -170,17 +167,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void UpdateMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var content = repository.Get(NodeDto.NodeIdSeed + 2); content.Name = "Test File Updated"; repository.Save(content); - unitOfWork.Flush(); var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2); @@ -194,16 +190,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void DeleteMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var media = repository.Get(NodeDto.NodeIdSeed + 2); repository.Delete(media); - unitOfWork.Flush(); var deleted = repository.Get(NodeDto.NodeIdSeed + 2); var exists = repository.Exists(NodeDto.NodeIdSeed + 2); @@ -218,11 +213,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var media = repository.Get(NodeDto.NodeIdSeed + 1); @@ -245,14 +240,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void QueryMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); var result = repository.Get(query); // Assert @@ -265,10 +260,10 @@ namespace Umbraco.Tests.Persistence.Repositories { // Arrange var folderMediaType = ServiceContext.MediaTypeService.Get(1031); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository); + var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository); // Act for (int i = 0; i < 10; i++) @@ -276,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1); repository.Save(folder); } - unitOfWork.Flush(); + var types = new[] { 1031 }; - var query = unitOfWork.SqlContext.Query().Where(x => types.Contains(x.ContentTypeId)); + var query = scope.SqlContext.Query().Where(x => types.Contains(x.ContentTypeId)); var result = repository.Get(query); // Assert @@ -296,10 +291,10 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var folderMediaType = ServiceContext.MediaTypeService.Get(1031); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository); + var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository); // Act for (int i = 0; i < 10; i++) @@ -307,10 +302,10 @@ namespace Umbraco.Tests.Persistence.Repositories var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1); repository.Save(folder); } - unitOfWork.Flush(); + var types = new[] { "Folder" }; - var query = unitOfWork.SqlContext.Query().Where(x => types.Contains(x.ContentType.Alias)); + var query = scope.SqlContext.Query().Where(x => types.Contains(x.ContentType.Alias)); var result = repository.Get(query); // Assert @@ -322,13 +317,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_FirstPage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository); + var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true); @@ -343,14 +338,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_SecondPage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; var result = repository.GetPage(query, 1, 1, out totalRecords, "SortOrder", Direction.Ascending, true); @@ -365,14 +360,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_SinglePage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; var result = repository.GetPage(query, 0, 2, out totalRecords, "SortOrder", Direction.Ascending, true); @@ -387,14 +382,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_DescendingOrder() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Descending, true); @@ -409,14 +404,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_AlternateOrder() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; var result = repository.GetPage(query, 0, 1, out totalRecords, "Name", Direction.Ascending, true); @@ -431,17 +426,17 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_FilterMatchingSome() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; - var filter = unitOfWork.SqlContext.Query().Where(x => x.Name.Contains("File")); + var filter = scope.SqlContext.Query().Where(x => x.Name.Contains("File")); var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true, filter); // Assert @@ -455,17 +450,17 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetPagedResultsByQuery_FilterMatchingAll() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == 2); + var query = scope.SqlContext.Query().Where(x => x.Level == 2); long totalRecords; - var filter = unitOfWork.SqlContext.Query().Where(x => x.Name.Contains("Test")); + var filter = scope.SqlContext.Query().Where(x => x.Name.Contains("Test")); var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true, filter); // Assert @@ -479,11 +474,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetAllMediaByIds() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var medias = repository.GetMany(NodeDto.NodeIdSeed + 1, NodeDto.NodeIdSeed + 2); @@ -499,11 +494,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void GetAllMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var medias = repository.GetMany(); @@ -529,11 +524,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void ExistMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act var exists = repository.Exists(NodeDto.NodeIdSeed + 1); @@ -551,15 +546,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void CountMedia() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MediaTypeRepository mediaTypeRepository; - var repository = CreateRepository(unitOfWork, out mediaTypeRepository); + var repository = CreateRepository(provider, out mediaTypeRepository); // Act int level = 2; - var query = unitOfWork.SqlContext.Query().Where(x => x.Level == level); + var query = scope.SqlContext.Query().Where(x => x.Level == level); var result = repository.Count(query); // Assert diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs index e0a6b623ea..7192757bfe 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs @@ -7,7 +7,7 @@ using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -18,38 +18,38 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class MediaTypeRepositoryTest : TestWithDatabaseBase { - private MediaTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private MediaTypeRepository CreateRepository(IScopeProvider provider) { - return new MediaTypeRepository(unitOfWork, DisabledCache, Logger); + return new MediaTypeRepository((IScopeAccessor) provider, DisabledCache, Logger); } - private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork) + private EntityContainerRepository CreateContainerRepository(IScopeProvider provider) { - return new EntityContainerRepository(unitOfWork, DisabledCache, Logger, Constants.ObjectTypes.MediaTypeContainer); + return new EntityContainerRepository((IScopeAccessor) provider, DisabledCache, Logger, Constants.ObjectTypes.MediaTypeContainer); } [Test] public void Can_Move() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(provider); + var repository = CreateRepository(provider); var container1 = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah1" }; containerRepository.Save(container1); - unitOfWork.Flush(); + var container2 = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah2", ParentId = container1.Id }; containerRepository.Save(container2); - unitOfWork.Flush(); + var contentType = (IMediaType)MockedContentTypes.CreateVideoMediaType(); contentType.ParentId = container2.Id; repository.Save(contentType); - unitOfWork.Flush(); + //create a var contentType2 = (IMediaType)new MediaType(contentType, "hello") @@ -58,10 +58,10 @@ namespace Umbraco.Tests.Persistence.Repositories }; contentType.ParentId = contentType.Id; repository.Save(contentType2); - unitOfWork.Flush(); + var result = repository.Move(contentType, container1).ToArray(); - unitOfWork.Flush(); + Assert.AreEqual(2, result.Length); @@ -79,14 +79,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); + var containerRepository = CreateContainerRepository(provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + Assert.That(container.Id, Is.GreaterThan(0)); var found = containerRepository.Get(container.Id); @@ -97,19 +97,19 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); + var containerRepository = CreateContainerRepository(provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + Assert.That(container.Id, Is.GreaterThan(0)); // Act containerRepository.Delete(container); - unitOfWork.Flush(); + var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -119,20 +119,20 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Container_Containing_Media_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(provider); + var repository = CreateRepository(provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + var contentType = MockedContentTypes.CreateVideoMediaType(); contentType.ParentId = container.Id; repository.Save(contentType); - unitOfWork.Flush(); + Assert.AreEqual(container.Id, contentType.ParentId); } @@ -141,24 +141,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete_Container_Containing_Media_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var containerRepository = CreateContainerRepository(unitOfWork); - var repository = CreateRepository(unitOfWork); + var containerRepository = CreateContainerRepository(provider); + var repository = CreateRepository(provider); var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" }; containerRepository.Save(container); - unitOfWork.Flush(); + IMediaType contentType = MockedContentTypes.CreateVideoMediaType(); contentType.ParentId = container.Id; repository.Save(contentType); - unitOfWork.Flush(); + // Act containerRepository.Delete(container); - unitOfWork.Flush(); + var found = containerRepository.Get(container.Id); Assert.IsNull(found); @@ -173,15 +173,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var contentType = MockedContentTypes.CreateVideoMediaType(); repository.Save(contentType); - unitOfWork.Flush(); + var fetched = repository.Get(contentType.Id); @@ -201,14 +201,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var videoMediaType = MockedContentTypes.CreateVideoMediaType(); repository.Save(videoMediaType); - unitOfWork.Flush(); + // Act var mediaType = repository.Get(NodeDto.NodeIdSeed); @@ -223,7 +223,7 @@ namespace Umbraco.Tests.Persistence.Repositories DataTypeDefinitionId = -88 }); repository.Save(mediaType); - unitOfWork.Flush(); + var dirty = ((MediaType) mediaType).IsDirty(); @@ -239,19 +239,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var mediaType = MockedContentTypes.CreateVideoMediaType(); repository.Save(mediaType); - unitOfWork.Flush(); + var contentType2 = repository.Get(mediaType.Id); repository.Delete(contentType2); - unitOfWork.Flush(); + var exists = repository.Exists(mediaType.Id); @@ -264,10 +264,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var mediaType = repository.Get(1033); //File @@ -283,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_By_Guid_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var mediaType = repository.Get(1033); //File @@ -304,15 +304,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var mediaTypes = repository.GetMany(); int count = - unitOfWork.Database.ExecuteScalar( + scope.Database.ExecuteScalar( "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", new { NodeObjectType = Constants.ObjectTypes.MediaType }); @@ -326,10 +326,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_By_Guid_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var allGuidIds = repository.GetMany().Select(x => x.Key).ToArray(); @@ -338,7 +338,7 @@ namespace Umbraco.Tests.Persistence.Repositories var mediaTypes = ((IReadRepository)repository).GetMany(allGuidIds); int count = - unitOfWork.Database.ExecuteScalar( + scope.Database.ExecuteScalar( "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", new { NodeObjectType = Constants.ObjectTypes.MediaType }); @@ -352,10 +352,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_MediaTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var exists = repository.Exists(1032); //Image @@ -369,20 +369,20 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Update_MediaType_With_PropertyType_Removed() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var mediaType = MockedContentTypes.CreateVideoMediaType(); repository.Save(mediaType); - unitOfWork.Flush(); + // Act var mediaTypeV2 = repository.Get(NodeDto.NodeIdSeed); mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title"); repository.Save(mediaTypeV2); - unitOfWork.Flush(); + var mediaTypeV3 = repository.Get(NodeDto.NodeIdSeed); @@ -397,14 +397,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_PropertyTypes_On_Video_MediaType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var mediaType = MockedContentTypes.CreateVideoMediaType(); repository.Save(mediaType); - unitOfWork.Flush(); + // Act var contentType = repository.Get(NodeDto.NodeIdSeed); @@ -419,10 +419,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_PropertyTypes_On_File_MediaType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var contentType = repository.Get(1033); //File diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs index 9bf7479820..091a1eafe8 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs @@ -15,7 +15,7 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -26,24 +26,25 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class MemberRepositoryTest : TestWithDatabaseBase { - private MemberRepository CreateRepository(IScopeUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository) + private MemberRepository CreateRepository(IScopeProvider provider, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository) { - memberTypeRepository = new MemberTypeRepository(unitOfWork, DisabledCache, Logger); - memberGroupRepository = new MemberGroupRepository(unitOfWork, DisabledCache, Logger); - var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger); - var repository = new MemberRepository(unitOfWork, DisabledCache, Logger, memberTypeRepository, memberGroupRepository, tagRepo); + var accessor = (IScopeAccessor) provider; + memberTypeRepository = new MemberTypeRepository(accessor, DisabledCache, Logger); + memberGroupRepository = new MemberGroupRepository(accessor, DisabledCache, Logger); + var tagRepo = new TagRepository(accessor, DisabledCache, Logger); + var repository = new MemberRepository(accessor, DisabledCache, Logger, memberTypeRepository, memberGroupRepository, tagRepo); return repository; } [Test] public void GetMember() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var member = CreateTestMember(); @@ -57,12 +58,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetMembers() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var type = CreateTestMemberType(); var m1 = CreateTestMember(type, "Test 1", "test1@test.com", "pass1", "test1"); @@ -80,12 +81,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetAllMembers() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var type = CreateTestMemberType(); for (var i = 0; i < 5; i++) @@ -106,18 +107,18 @@ namespace Umbraco.Tests.Persistence.Repositories public void QueryMember() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var key = Guid.NewGuid(); var member = CreateTestMember(key: key); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Key == key); + var query = scope.SqlContext.Query().Where(x => x.Key == key); var result = repository.Get(query); // Assert @@ -129,12 +130,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void SaveMember() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var member = CreateTestMember(); @@ -154,20 +155,20 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void MemberHasBuiltinProperties() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var memberType = MockedContentTypes.CreateSimpleMemberType(); memberTypeRepository.Save(memberType); - unitOfWork.Flush(); + var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty"); repository.Save(member); - unitOfWork.Flush(); + var sut = repository.Get(member.Id); @@ -188,26 +189,26 @@ namespace Umbraco.Tests.Persistence.Repositories public void SavingPreservesPassword() { IMember sut; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var memberType = MockedContentTypes.CreateSimpleMemberType(); memberTypeRepository.Save(memberType); - unitOfWork.Flush(); + var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty"); repository.Save(member); - unitOfWork.Flush(); + sut = repository.Get(member.Id); //when the password is null it will not overwrite what is already there. sut.RawPasswordValue = null; repository.Save(sut); - unitOfWork.Flush(); + sut = repository.Get(member.Id); Assert.That(sut.RawPasswordValue, Is.EqualTo("123")); @@ -218,26 +219,26 @@ namespace Umbraco.Tests.Persistence.Repositories public void SavingUpdatesNameAndEmail() { IMember sut; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var memberType = MockedContentTypes.CreateSimpleMemberType(); memberTypeRepository.Save(memberType); - unitOfWork.Flush(); + var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty"); repository.Save(member); - unitOfWork.Flush(); + sut = repository.Get(member.Id); sut.Username = "This is new"; sut.Email = "thisisnew@hello.com"; repository.Save(sut); - unitOfWork.Flush(); + sut = repository.Get(member.Id); Assert.That(sut.Email, Is.EqualTo("thisisnew@hello.com")); @@ -248,7 +249,7 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void QueryMember_WithSubQuery() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); var query = provider.SqlContext.Query().Where(x => ((Member) x).LongStringPropertyValue.Contains("1095") && @@ -268,23 +269,23 @@ namespace Umbraco.Tests.Persistence.Repositories private IMember CreateTestMember(IMemberType memberType = null, string name = null, string email = null, string password = null, string username = null, Guid? key = null) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); if (memberType == null) { memberType = MockedContentTypes.CreateSimpleMemberType(); memberTypeRepository.Save(memberType); - unitOfWork.Flush(); + } var member = MockedMember.CreateSimpleMember(memberType, name ?? "Johnny Hefty", email ?? "johnny@example.com", password ?? "123", username ?? "hefty", key); repository.Save(member); - unitOfWork.Complete(); + scope.Complete(); return member; } @@ -292,23 +293,23 @@ namespace Umbraco.Tests.Persistence.Repositories private IMemberType CreateTestMemberType(string alias = null) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { MemberTypeRepository memberTypeRepository; MemberGroupRepository memberGroupRepository; - var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository); + var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository); var memberType = MockedContentTypes.CreateSimpleMemberType(alias); memberTypeRepository.Save(memberType); - unitOfWork.Complete(); + scope.Complete(); return memberType; } } private Sql GetBaseQuery(bool isCount) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); if (isCount) { var sqlCount = provider.SqlContext.Sql() @@ -348,7 +349,7 @@ namespace Umbraco.Tests.Persistence.Repositories private Sql GetSubquery() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); var sql = provider.SqlContext.Sql(); sql.Select("umbracoNode.id") .From() diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs index ba4eb137bf..c26faee52d 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -20,22 +20,22 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class MemberTypeRepositoryTest : TestWithDatabaseBase { - private MemberTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private MemberTypeRepository CreateRepository(IScopeProvider provider) { - return new MemberTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + return new MemberTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); } [Test] public void Can_Persist_Member_Type() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType = (IMemberType) MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Flush(); + var sut = repository.Get(memberType.Id); @@ -55,15 +55,15 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Persist_Member_Type_Same_Property_Keys() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType = (IMemberType)MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Complete(); + scope.Complete(); var propertyKeys = memberType.PropertyTypes.Select(x => x.Key).OrderBy(x => x).ToArray(); var groupKeys = memberType.PropertyGroups.Select(x => x.Key).OrderBy(x => x).ToArray(); @@ -81,36 +81,36 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Cannot_Persist_Member_Type_Without_Alias() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType = MockedContentTypes.CreateSimpleMemberType(); memberType.Alias = null; - repository.Save(memberType); + - Assert.Throws(unitOfWork.Flush); + Assert.Throws(() => repository.Save(memberType)); } } [Test] public void Can_Get_All_Member_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType1 = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType1); - unitOfWork.Flush(); + var memberType2 = MockedContentTypes.CreateSimpleMemberType(); memberType2.Name = "AnotherType"; memberType2.Alias = "anotherType"; repository.Save(memberType2); - unitOfWork.Flush(); + var result = repository.GetMany(); @@ -122,20 +122,20 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_All_Member_Types_By_Guid_Ids() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType1 = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType1); - unitOfWork.Flush(); + var memberType2 = MockedContentTypes.CreateSimpleMemberType(); memberType2.Name = "AnotherType"; memberType2.Alias = "anotherType"; repository.Save(memberType2); - unitOfWork.Flush(); + var result = ((IReadRepository)repository).GetMany(memberType1.Key, memberType2.Key); @@ -147,20 +147,20 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Member_Types_By_Guid_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType1 = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType1); - unitOfWork.Flush(); + var memberType2 = MockedContentTypes.CreateSimpleMemberType(); memberType2.Name = "AnotherType"; memberType2.Alias = "anotherType"; repository.Save(memberType2); - unitOfWork.Flush(); + var result = repository.Get(memberType1.Key); @@ -175,22 +175,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_All_Members_When_No_Properties_Assigned() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var memberType1 = MockedContentTypes.CreateSimpleMemberType(); memberType1.PropertyTypeCollection.Clear(); repository.Save(memberType1); - unitOfWork.Flush(); + var memberType2 = MockedContentTypes.CreateSimpleMemberType(); memberType2.PropertyTypeCollection.Clear(); memberType2.Name = "AnotherType"; memberType2.Alias = "anotherType"; repository.Save(memberType2); - unitOfWork.Flush(); + var result = repository.GetMany(); @@ -203,14 +203,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Member_Type_By_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); IMemberType memberType = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Flush(); + memberType = repository.Get(memberType.Id); Assert.That(memberType, Is.Not.Null); } @@ -219,14 +219,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Member_Type_By_Guid_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); IMemberType memberType = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Flush(); + memberType = repository.Get(memberType.Key); Assert.That(memberType, Is.Not.Null); } @@ -235,14 +235,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Built_In_Member_Type_Properties_Are_Automatically_Added_When_Creating() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); IMemberType memberType = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Flush(); + memberType = repository.Get(memberType.Id); @@ -256,16 +256,16 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Built_In_Member_Type_Properties_Are_Not_Reused_For_Different_Member_Types() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); IMemberType memberType1 = MockedContentTypes.CreateSimpleMemberType(); IMemberType memberType2 = MockedContentTypes.CreateSimpleMemberType("test2"); repository.Save(memberType1); repository.Save(memberType2); - unitOfWork.Flush(); + var m1Ids = memberType1.PropertyTypes.Select(x => x.Id).ToArray(); var m2Ids = memberType2.PropertyTypes.Select(x => x.Id).ToArray(); @@ -278,19 +278,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Delete_MemberType() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act IMemberType memberType = MockedContentTypes.CreateSimpleMemberType(); repository.Save(memberType); - unitOfWork.Flush(); + var contentType2 = repository.Get(memberType.Id); repository.Delete(contentType2); - unitOfWork.Flush(); + var exists = repository.Exists(memberType.Id); diff --git a/src/Umbraco.Tests/Persistence/Repositories/NotificationsRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/NotificationsRepositoryTest.cs index 9111c18584..dff6dff85b 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/NotificationsRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/NotificationsRepositoryTest.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -22,13 +22,13 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CreateNotification() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new NotificationsRepository(unitOfWork); + var repo = new NotificationsRepository((IScopeAccessor) provider); var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,123", SortOrder = 1, Text = "hello", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - var result = unitOfWork.Database.Insert(node); + var result = scope.Database.Insert(node); var entity = Mock.Of(e => e.Id == node.NodeId); var user = Mock.Of(e => e.Id == node.UserId); @@ -44,14 +44,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetUserNotifications() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new NotificationsRepository(unitOfWork); + var repo = new NotificationsRepository((IScopeAccessor) provider); var userDto = new UserDto { Email = "test", Login = "test", Password = "test", UserName = "test", UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now }; - unitOfWork.Database.Insert(userDto); + scope.Database.Insert(userDto); var userNew = Mock.Of(e => e.Id == userDto.Id); var userAdmin = Mock.Of(e => e.Id == 0); @@ -59,7 +59,7 @@ namespace Umbraco.Tests.Persistence.Repositories for (var i = 0; i < 10; i++) { var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1," + i, SortOrder = 1, Text = "hello" + i, Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - var result = unitOfWork.Database.Insert(node); + var result = scope.Database.Insert(node); var entity = Mock.Of(e => e.Id == node.NodeId); var notification = repo.CreateNotification((i%2 == 0) ? userAdmin : userNew, entity, i.ToString(CultureInfo.InvariantCulture)); } @@ -73,23 +73,23 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void GetEntityNotifications() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new NotificationsRepository(unitOfWork); + var repo = new NotificationsRepository((IScopeAccessor) provider); var node1 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,1", SortOrder = 1, Text = "hello1", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - unitOfWork.Database.Insert(node1); + scope.Database.Insert(node1); var entity1 = Mock.Of(e => e.Id == node1.NodeId); var node2 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,2", SortOrder = 1, Text = "hello2", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - unitOfWork.Database.Insert(node2); + scope.Database.Insert(node2); var entity2 = Mock.Of(e => e.Id == node2.NodeId); for (var i = 0; i < 10; i++) { var userDto = new UserDto { Email = "test" + i, Login = "test" + i, Password = "test", UserName = "test" + i, UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now }; - unitOfWork.Database.Insert(userDto); + scope.Database.Insert(userDto); var userNew = Mock.Of(e => e.Id == userDto.Id); var notification = repo.CreateNotification(userNew, (i%2 == 0) ? entity1 : entity2, i.ToString(CultureInfo.InvariantCulture)); } @@ -103,23 +103,23 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Delete_By_Entity() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new NotificationsRepository(unitOfWork); + var repo = new NotificationsRepository((IScopeAccessor) provider); var node1 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,1", SortOrder = 1, Text = "hello1", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - unitOfWork.Database.Insert(node1); + scope.Database.Insert(node1); var entity1 = Mock.Of(e => e.Id == node1.NodeId); var node2 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,2", SortOrder = 1, Text = "hello2", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - unitOfWork.Database.Insert(node2); + scope.Database.Insert(node2); var entity2 = Mock.Of(e => e.Id == node2.NodeId); for (var i = 0; i < 10; i++) { var userDto = new UserDto { Email = "test" + i, Login = "test" + i, Password = "test", UserName = "test" + i, UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now }; - unitOfWork.Database.Insert(userDto); + scope.Database.Insert(userDto); var userNew = Mock.Of(e => e.Id == userDto.Id); var notification = repo.CreateNotification(userNew, (i%2 == 0) ? entity1 : entity2, i.ToString(CultureInfo.InvariantCulture)); } @@ -133,14 +133,14 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Delete_By_User() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new NotificationsRepository(unitOfWork); + var repo = new NotificationsRepository((IScopeAccessor) provider); var userDto = new UserDto { Email = "test", Login = "test", Password = "test", UserName = "test", UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now }; - unitOfWork.Database.Insert(userDto); + scope.Database.Insert(userDto); var userNew = Mock.Of(e => e.Id == userDto.Id); var userAdmin = Mock.Of(e => e.Id == 0); @@ -148,7 +148,7 @@ namespace Umbraco.Tests.Persistence.Repositories for (var i = 0; i < 10; i++) { var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1," + i, SortOrder = 1, Text = "hello" + i, Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 }; - var result = unitOfWork.Database.Insert(node); + var result = scope.Database.Insert(node); var entity = Mock.Of(e => e.Id == node.NodeId); var notification = repo.CreateNotification((i%2 == 0) ? userAdmin : userNew, entity, i.ToString(CultureInfo.InvariantCulture)); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/PartialViewRepositoryTests.cs b/src/Umbraco.Tests/Persistence/Repositories/PartialViewRepositoryTests.cs index 2b846d88ba..b9503277d7 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/PartialViewRepositoryTests.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/PartialViewRepositoryTests.cs @@ -3,10 +3,10 @@ using NUnit.Framework; using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Composing; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -37,21 +37,19 @@ namespace Umbraco.Tests.Persistence.Repositories { // unless noted otherwise, no changes / 7.2.8 - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new PartialViewRepository(unitOfWork, _fileSystem); + var repository = new PartialViewRepository(_fileSystem); var partialView = new PartialView(PartialViewType.PartialView, "test-path-1.cshtml") { Content = "// partialView" }; repository.Save(partialView); - unitOfWork.Flush(); Assert.IsTrue(_fileSystem.FileExists("test-path-1.cshtml")); Assert.AreEqual("test-path-1.cshtml", partialView.Path); Assert.AreEqual("/Views/Partials/test-path-1.cshtml", partialView.VirtualPath); partialView = new PartialView(PartialViewType.PartialView, "path-2/test-path-2.cshtml") { Content = "// partialView" }; repository.Save(partialView); - unitOfWork.Flush(); Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.cshtml")); Assert.AreEqual("path-2\\test-path-2.cshtml", partialView.Path); // fixed in 7.3 - 7.2.8 does not update the path Assert.AreEqual("/Views/Partials/path-2/test-path-2.cshtml", partialView.VirtualPath); @@ -63,7 +61,6 @@ namespace Umbraco.Tests.Persistence.Repositories partialView = new PartialView(PartialViewType.PartialView, "path-2\\test-path-3.cshtml") { Content = "// partialView" }; repository.Save(partialView); - unitOfWork.Flush(); Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.cshtml")); Assert.AreEqual("path-2\\test-path-3.cshtml", partialView.Path); Assert.AreEqual("/Views/Partials/path-2/test-path-3.cshtml", partialView.VirtualPath); diff --git a/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs index acda39ced9..6e89ddb782 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -26,10 +26,10 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -40,10 +40,10 @@ namespace Umbraco.Tests.Persistence.Repositories }, }); repo.Save(entry); - unitOfWork.Flush(); + repo.Delete(entry); - unitOfWork.Flush(); + entry = repo.Get(entry.Key); Assert.IsNull(entry); @@ -55,11 +55,11 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true; - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + scope.Database.AsUmbracoDatabase().EnableSqlTrace = true; + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -70,7 +70,7 @@ namespace Umbraco.Tests.Persistence.Repositories }, }); repo.Save(entry); - unitOfWork.Flush(); + var found = repo.GetMany().ToArray(); @@ -95,11 +95,11 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true; - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + scope.Database.AsUmbracoDatabase().EnableSqlTrace = true; + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -115,7 +115,7 @@ namespace Umbraco.Tests.Persistence.Repositories }, }); repo.Save(entry); - unitOfWork.Flush(); + var found = repo.GetMany().ToArray(); @@ -141,10 +141,10 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -155,7 +155,7 @@ namespace Umbraco.Tests.Persistence.Repositories }, }); repo.Save(entry); - unitOfWork.Flush(); + //re-get entry = repo.Get(entry.Key); @@ -164,7 +164,7 @@ namespace Umbraco.Tests.Persistence.Repositories entry.Rules.First().RuleType = "asdf"; repo.Save(entry); - unitOfWork.Flush(); + //re-get entry = repo.Get(entry.Key); @@ -179,10 +179,10 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -193,7 +193,7 @@ namespace Umbraco.Tests.Persistence.Repositories }, }); repo.Save(entry); - unitOfWork.Flush(); + //re-get entry = repo.Get(entry.Key); @@ -207,10 +207,10 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(30).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var allEntries = new List(); for (int i = 0; i < 10; i++) @@ -226,7 +226,7 @@ namespace Umbraco.Tests.Persistence.Repositories } var entry1 = new PublicAccessEntry(content[i], content[i + 1], content[i + 2], rules); repo.Save(entry1); - unitOfWork.Flush(); + allEntries.Add(entry1); } @@ -249,7 +249,7 @@ namespace Umbraco.Tests.Persistence.Repositories } allEntries[i].AddRule("newrule" + i, "newrule" + i); repo.Save(allEntries[i]); - unitOfWork.Flush(); + } } @@ -271,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories { var content = CreateTestData(3).ToArray(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger); + var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger); var entry1 = new PublicAccessEntry(content[0], content[1], content[2], new[] { @@ -296,7 +296,7 @@ namespace Umbraco.Tests.Persistence.Repositories }); repo.Save(entry2); - unitOfWork.Flush(); + var found = repo.GetMany(entry1.Key).ToArray(); Assert.AreEqual(1, found.Count()); @@ -304,26 +304,27 @@ namespace Umbraco.Tests.Persistence.Repositories } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + private DocumentRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository) { - var templateRepository = new TemplateRepository(unitOfWork, CacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, CacheHelper, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper, Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + var templateRepository = new TemplateRepository(accessor, CacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(accessor, CacheHelper, Logger); + contentTypeRepository = new ContentTypeRepository(accessor, CacheHelper, Logger, templateRepository); + var repository = new DocumentRepository(accessor, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } private IEnumerable CreateTestData(int count) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { ContentTypeRepository ctRepo; - var repo = CreateRepository(unitOfWork, out ctRepo); + var repo = CreateRepository(provider, out ctRepo); var ct = MockedContentTypes.CreateBasicContentType("testing"); ctRepo.Save(ct); - unitOfWork.Flush(); + var result = new List(); for (int i = 0; i < count; i++) { @@ -331,7 +332,7 @@ namespace Umbraco.Tests.Persistence.Repositories repo.Save(c); result.Add(c); } - unitOfWork.Complete(); + scope.Complete(); return result; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/RedirectUrlRepositoryTests.cs b/src/Umbraco.Tests/Persistence/Repositories/RedirectUrlRepositoryTests.cs index 65e54d8156..ca2c713a27 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RedirectUrlRepositoryTests.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RedirectUrlRepositoryTests.cs @@ -5,7 +5,7 @@ using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -26,11 +26,11 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CanSaveAndGet() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = new RedirectUrl { ContentKey = _textpage.Key, @@ -42,9 +42,9 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreNotEqual(0, rurl.Id); } - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = repo.GetMostRecentUrl("blah"); scope.Complete(); @@ -56,13 +56,13 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CanSaveAndGetMostRecent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); Assert.AreNotEqual(_textpage.Id, _otherpage.Id); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = new RedirectUrl { ContentKey = _textpage.Key, @@ -90,9 +90,9 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreNotEqual(0, rurl.Id); } - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = repo.GetMostRecentUrl("blah"); scope.Complete(); @@ -104,11 +104,11 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CanSaveAndGetByContent() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = new RedirectUrl { ContentKey = _textpage.Key, @@ -133,9 +133,9 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreNotEqual(0, rurl.Id); } - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurls = repo.GetContentUrls(_textpage.Key).ToArray(); scope.Complete(); @@ -148,11 +148,11 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void CanSaveAndDelete() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); var rurl = new RedirectUrl { ContentKey = _textpage.Key, @@ -174,9 +174,9 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.AreNotEqual(0, rurl.Id); } - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { - var repo = CreateRepository(uow); + var repo = CreateRepository(provider); repo.DeleteContentUrls(_textpage.Key); scope.Complete(); @@ -186,9 +186,9 @@ namespace Umbraco.Tests.Persistence.Repositories } } - private IRedirectUrlRepository CreateRepository(IScopeUnitOfWork uow) + private IRedirectUrlRepository CreateRepository(IScopeProvider provider) { - return new RedirectUrlRepository(uow, CacheHelper, Logger); + return new RedirectUrlRepository((IScopeAccessor) provider, CacheHelper, Logger); } private IContent _textpage, _subpage, _otherpage, _trashed; diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs index 2ec19bd802..21c6e89eac 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -27,10 +27,11 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private RelationRepository CreateRepository(IScopeUnitOfWork unitOfWork, out RelationTypeRepository relationTypeRepository) + private RelationRepository CreateRepository(IScopeProvider provider, out RelationTypeRepository relationTypeRepository) { - relationTypeRepository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); - var repository = new RelationRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), relationTypeRepository); + var accessor = (IScopeAccessor) provider; + relationTypeRepository = new RelationTypeRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new RelationRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), relationTypeRepository); return repository; } @@ -38,17 +39,17 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relationType = repositoryType.Get(1); var relation = new Relation(NodeDto.NodeIdSeed + 2, NodeDto.NodeIdSeed + 3, relationType); repository.Save(relation); - unitOfWork.Flush(); + // Assert Assert.That(relation, Is.Not.Null); @@ -60,17 +61,17 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relation = repository.Get(1); relation.Comment = "This relation has been updated"; repository.Save(relation); - unitOfWork.Flush(); + var relationUpdated = repository.Get(1); @@ -85,16 +86,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relation = repository.Get(2); repository.Delete(relation); - unitOfWork.Flush(); + var exists = repository.Exists(2); @@ -107,11 +108,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relation = repository.Get(1); @@ -129,11 +130,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relations = repository.GetMany(); @@ -150,11 +151,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_With_Params_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var relations = repository.GetMany(1, 2); @@ -171,11 +172,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act var exists = repository.Exists(2); @@ -191,14 +192,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.ParentId == NodeDto.NodeIdSeed + 2); + var query = scope.SqlContext.Query().Where(x => x.ParentId == NodeDto.NodeIdSeed + 2); int count = repository.Count(query); // Assert @@ -210,14 +211,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_RelationRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.RelationTypeId == RelationTypeDto.NodeIdSeed); + var query = scope.SqlContext.Query().Where(x => x.RelationTypeId == RelationTypeDto.NodeIdSeed); var relations = repository.Get(query); // Assert @@ -232,11 +233,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Delete_Content_And_Verify_Relation_Is_Removed() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { RelationTypeRepository repositoryType; - var repository = CreateRepository(unitOfWork, out repositoryType); + var repository = CreateRepository(provider, out repositoryType); var content = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 3); ServiceContext.ContentService.Delete(content, 0); @@ -262,15 +263,15 @@ namespace Umbraco.Tests.Persistence.Repositories var relateContent = new RelationType(Constants.ObjectTypes.Document, new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy") { IsBidirectional = true, Name = "Relate Content on Copy" }; var relateContentType = new RelationType(Constants.ObjectTypes.DocumentType, new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" }; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var relationTypeRepository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); - var relationRepository = new RelationRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), relationTypeRepository); + var relationTypeRepository = new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var relationRepository = new RelationRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), relationTypeRepository); relationTypeRepository.Save(relateContent); relationTypeRepository.Save(relateContentType); - unitOfWork.Flush(); + //Create and Save ContentType "umbTextpage" -> (NodeDto.NodeIdSeed) ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); @@ -293,7 +294,7 @@ namespace Umbraco.Tests.Persistence.Repositories var relation2 = new Relation(textpage.Id, subpage2.Id, relateContent) { Comment = string.Empty }; relationRepository.Save(relation); relationRepository.Save(relation2); - unitOfWork.Complete(); + scope.Complete(); } } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs index 5bd99b9f19..be01d71591 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -26,9 +26,9 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private RelationTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private RelationTypeRepository CreateRepository(IScopeProvider provider) { - return new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + return new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); } @@ -36,10 +36,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relateMemberToContent = new RelationType(Constants.ObjectTypes.Member, @@ -47,7 +47,6 @@ namespace Umbraco.Tests.Persistence.Repositories "relateMemberToContent") { IsBidirectional = true, Name = "Relate Member to Content" }; repository.Save(relateMemberToContent); - unitOfWork.Flush(); // Assert Assert.That(relateMemberToContent.HasIdentity, Is.True); @@ -59,17 +58,16 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relationType = repository.Get(3); relationType.Alias = relationType.Alias + "Updated"; relationType.Name = relationType.Name + " Updated"; repository.Save(relationType); - unitOfWork.Flush(); var relationTypeUpdated = repository.Get(3); @@ -85,15 +83,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relationType = repository.Get(3); repository.Delete(relationType); - unitOfWork.Flush(); var exists = repository.Exists(3); @@ -106,10 +103,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relationType = repository.Get(RelationTypeDto.NodeIdSeed); @@ -126,10 +123,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relationTypes = repository.GetMany(); @@ -146,10 +143,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_With_Params_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var relationTypes = repository.GetMany(2, 3); @@ -166,10 +163,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var exists = repository.Exists(3); @@ -185,13 +182,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Alias.StartsWith("relate")); + var query = scope.SqlContext.Query().Where(x => x.Alias.StartsWith("relate")); int count = repository.Count(query); // Assert @@ -203,14 +200,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_RelationTypeRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var childObjType = Constants.ObjectTypes.DocumentType; - var query = unitOfWork.SqlContext.Query().Where(x => x.ChildObjectType == childObjType); + var query = scope.SqlContext.Query().Where(x => x.ChildObjectType == childObjType); var result = repository.Get(query); // Assert @@ -232,14 +229,14 @@ namespace Umbraco.Tests.Persistence.Repositories var relateContent = new RelationType(Constants.ObjectTypes.Document, new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy") { IsBidirectional = true, Name = "Relate Content on Copy" }; var relateContentType = new RelationType(Constants.ObjectTypes.DocumentType, new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" }; - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); repository.Save(relateContent);//Id 2 repository.Save(relateContentType);//Id 3 - unitOfWork.Complete(); + scope.Complete(); } } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index e46034cee5..2be813d0d8 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -9,8 +9,8 @@ using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.PropertyEditors; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -44,12 +44,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Instantiate_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { // Act - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Assert Assert.That(repository, Is.Not.Null); @@ -60,15 +60,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Act var script = new Script("test-add-script.js") { Content = "/// " }; repository.Save(script); - unitOfWork.Flush(); + //Assert Assert.That(_fileSystem.FileExists("test-add-script.js"), Is.True); @@ -79,19 +79,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Act var script = new Script("test-updated-script.js") { Content = "/// " }; repository.Save(script); - unitOfWork.Flush(); + script.Content = "/// "; repository.Save(script); - unitOfWork.Flush(); + var scriptUpdated = repository.Get("test-updated-script.js"); @@ -105,15 +105,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Act var script = repository.Get("test-script.js"); repository.Delete(script); - unitOfWork.Flush(); + // Assert @@ -125,10 +125,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Act var exists = repository.Get("test-script.js"); @@ -144,10 +144,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); var script = new Script("test-script1.js") { Content = "/// " }; repository.Save(script); @@ -155,7 +155,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(script2); var script3 = new Script("test-script3.js") { Content = "/// " }; repository.Save(script3); - unitOfWork.Flush(); + // Act var scripts = repository.GetMany(); @@ -172,10 +172,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_With_Params_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); var script = new Script("test-script1.js") { Content = "/// " }; repository.Save(script); @@ -183,7 +183,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(script2); var script3 = new Script("test-script3.js") { Content = "/// " }; repository.Save(script3); - unitOfWork.Flush(); + // Act var scripts = repository.GetMany("test-script1.js", "test-script2.js"); @@ -200,10 +200,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_ScriptRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); // Act var exists = repository.Exists("test-script.js"); @@ -219,20 +219,20 @@ namespace Umbraco.Tests.Persistence.Repositories const string content = "/// "; // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); var script = new Script("test-move-script.js") { Content = content }; repository.Save(script); - unitOfWork.Flush(); + // Act script = repository.Get("test-move-script.js"); script.Path = "moved/test-move-script.js"; repository.Save(script); - unitOfWork.Flush(); + var existsOld = repository.Exists("test-move-script.js"); var existsNew = repository.Exists("moved/test-move-script.js"); @@ -252,14 +252,14 @@ namespace Umbraco.Tests.Persistence.Repositories { // unless noted otherwise, no changes / 7.2.8 - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of()); + var repository = new ScriptRepository(_fileSystem, Mock.Of()); var script = new Script("test-path-1.js") { Content = "// script" }; repository.Save(script); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("test-path-1.js")); Assert.AreEqual("test-path-1.js", script.Path); Assert.AreEqual("/scripts/test-path-1.js", script.VirtualPath); @@ -267,14 +267,14 @@ namespace Umbraco.Tests.Persistence.Repositories //ensure you can prefix the same path as the root path name script = new Script("scripts/path-2/test-path-2.js") { Content = "// script" }; repository.Save(script); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("scripts/path-2/test-path-2.js")); Assert.AreEqual("scripts\\path-2\\test-path-2.js", script.Path); Assert.AreEqual("/scripts/scripts/path-2/test-path-2.js", script.VirtualPath); script = new Script("path-2/test-path-2.js") { Content = "// script" }; repository.Save(script); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.js")); Assert.AreEqual("path-2\\test-path-2.js", script.Path); // fixed in 7.3 - 7.2.8 does not update the path Assert.AreEqual("/scripts/path-2/test-path-2.js", script.VirtualPath); @@ -286,7 +286,7 @@ namespace Umbraco.Tests.Persistence.Repositories script = new Script("path-2\\test-path-3.js") { Content = "// script" }; repository.Save(script); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.js")); Assert.AreEqual("path-2\\test-path-3.js", script.Path); Assert.AreEqual("/scripts/path-2/test-path-3.js", script.VirtualPath); diff --git a/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs index 9cd4422bb2..fe4e60e715 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs @@ -6,7 +6,7 @@ using Umbraco.Core.Cache; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -26,24 +26,23 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } - private ServerRegistrationRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private ServerRegistrationRepository CreateRepository(IScopeProvider provider) { - return new ServerRegistrationRepository(unitOfWork, Logger); + return new ServerRegistrationRepository((IScopeAccessor) provider, Logger); } [Test] public void Cannot_Add_Duplicate_Server_Identities() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var server = new ServerRegistration("http://shazwazza.com", "COMPUTER1", DateTime.Now); - repository.Save(server); - Assert.Throws(unitOfWork.Flush); + Assert.Throws(() => repository.Save(server)); } } @@ -52,15 +51,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Cannot_Update_To_Duplicate_Server_Identities() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var server = repository.Get(1); server.ServerIdentity = "COMPUTER2"; - repository.Save(server); - Assert.Throws(unitOfWork.Flush); + + Assert.Throws(() => repository.Save(server)); } } @@ -69,10 +68,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Instantiate_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Assert Assert.That(repository, Is.Not.Null); @@ -83,10 +82,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var server = repository.Get(1); @@ -104,10 +103,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var servers = repository.GetMany(); @@ -124,9 +123,9 @@ namespace Umbraco.Tests.Persistence.Repositories //public void Can_Perform_GetByQuery_On_Repository() //{ // // Arrange - // var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + // var provider = TestObjects.GetScopeProvider(Logger); // using (var unitOfWork = provider.GetUnitOfWork()) - // using (var repository = CreateRepository(unitOfWork)) + // using (var repository = CreateRepository(provider)) // { // // Act // var query = Query.Builder.Where(x => x.ServerIdentity.ToUpper() == "COMPUTER3"); @@ -141,9 +140,9 @@ namespace Umbraco.Tests.Persistence.Repositories //public void Can_Perform_Count_On_Repository() //{ // // Arrange - // var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + // var provider = TestObjects.GetScopeProvider(Logger); // using (var unitOfWork = provider.GetUnitOfWork()) - // using (var repository = CreateRepository(unitOfWork)) + // using (var repository = CreateRepository(provider)) // { // // Act // var query = Query.Builder.Where(x => x.ServerAddress.StartsWith("http://")); @@ -158,15 +157,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var server = new ServerRegistration("http://shazwazza.com", "COMPUTER4", DateTime.Now); repository.Save(server); - unitOfWork.Flush(); // Assert Assert.That(server.HasIdentity, Is.True); @@ -178,10 +176,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var server = repository.Get(2); @@ -189,7 +187,6 @@ namespace Umbraco.Tests.Persistence.Repositories server.IsActive = true; repository.Save(server); - unitOfWork.Flush(); var serverUpdated = repository.Get(2); @@ -204,16 +201,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var server = repository.Get(3); Assert.IsNotNull(server); repository.Delete(server); - unitOfWork.Flush(); var exists = repository.Exists(3); @@ -226,10 +222,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var exists = repository.Exists(3); @@ -249,15 +245,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void CreateTestData() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.Save(new ServerRegistration("http://localhost", "COMPUTER1", DateTime.Now) { IsActive = true }); repository.Save(new ServerRegistration("http://www.mydomain.com", "COMPUTER2", DateTime.Now)); repository.Save(new ServerRegistration("https://www.another.domain.com", "Computer3", DateTime.Now)); - unitOfWork.Complete(); + scope.Complete(); } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index 181baa3372..4ca76cea97 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -11,7 +11,6 @@ using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -37,11 +36,11 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Instantiate_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { // Act - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Assert @@ -53,15 +52,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = new Stylesheet("test-add.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + //Assert Assert.That(_fileSystem.FileExists("test-add.css"), Is.True); @@ -72,20 +71,20 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + var stylesheetUpdate = repository.Get("test-update.css"); stylesheetUpdate.Content = "body { color:#000; }"; repository.Save(stylesheetUpdate); - unitOfWork.Flush(); + var stylesheetUpdated = repository.Get("test-update.css"); @@ -100,20 +99,20 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_With_Property() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + stylesheet.AddProperty(new StylesheetProperty("Test", "p", "font-size:2em;")); repository.Save(stylesheet); - unitOfWork.Flush(); + //re-get stylesheet = repository.Get(stylesheet.Name); @@ -131,15 +130,15 @@ p{font-size:2em;}")); public void Throws_When_Adding_Duplicate_Properties() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + stylesheet.AddProperty(new StylesheetProperty("Test", "p", "font-size:2em;")); @@ -151,18 +150,18 @@ p{font-size:2em;}")); public void Can_Perform_Delete() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = new Stylesheet("test-delete.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + repository.Delete(stylesheet); - unitOfWork.Flush(); + //Assert Assert.That(_fileSystem.FileExists("test-delete.css"), Is.False); @@ -173,10 +172,10 @@ p{font-size:2em;}")); public void Can_Perform_Get() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var stylesheet = repository.Get("styles.css"); @@ -193,14 +192,14 @@ p{font-size:2em;}")); public void Can_Perform_GetAll() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + // Act var stylesheets = repository.GetMany(); @@ -217,14 +216,14 @@ p{font-size:2em;}")); public void Can_Perform_GetAll_With_Params() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + // Act var stylesheets = repository.GetMany("styles-v2.css", "styles.css"); @@ -241,10 +240,10 @@ p{font-size:2em;}")); public void Can_Perform_Exists() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); // Act var exists = repository.Exists("styles.css"); @@ -259,21 +258,21 @@ p{font-size:2em;}")); { // unless noted otherwise, no changes / 7.2.8 - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = new StylesheetRepository(_fileSystem); var stylesheet = new Stylesheet("test-path-1.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("test-path-1.css")); Assert.AreEqual("test-path-1.css", stylesheet.Path); Assert.AreEqual("/css/test-path-1.css", stylesheet.VirtualPath); stylesheet = new Stylesheet("path-2/test-path-2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.css")); Assert.AreEqual("path-2\\test-path-2.css", stylesheet.Path); // fixed in 7.3 - 7.2.8 does not update the path Assert.AreEqual("/css/path-2/test-path-2.css", stylesheet.VirtualPath); @@ -285,7 +284,7 @@ p{font-size:2em;}")); stylesheet = new Stylesheet("path-2\\test-path-3.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" }; repository.Save(stylesheet); - unitOfWork.Flush(); + Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.css")); Assert.AreEqual("path-2\\test-path-3.css", stylesheet.Path); Assert.AreEqual("/css/path-2/test-path-3.css", stylesheet.VirtualPath); diff --git a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs index 8e78789350..fad675e4d1 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs @@ -6,7 +6,7 @@ using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -17,9 +17,9 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class TagRepositoryTest : TestWithDatabaseBase { - private TagRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private TagRepository CreateRepository(IScopeProvider provider) { - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); + var tagRepository = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); return tagRepository; } @@ -27,10 +27,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var tag = new Tag() { @@ -40,7 +40,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Act repository.Save(tag); - unitOfWork.Flush(); + // Assert Assert.That(tag.HasIdentity, Is.True); @@ -51,10 +51,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Multiple_Adds_On_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var tag = new Tag() { @@ -64,7 +64,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Act repository.Save(tag); - unitOfWork.Flush(); + var tag2 = new Tag() { @@ -72,7 +72,7 @@ namespace Umbraco.Tests.Persistence.Repositories Text = "Test2" }; repository.Save(tag2); - unitOfWork.Flush(); + // Assert Assert.That(tag.HasIdentity, Is.True); @@ -85,22 +85,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Create_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -117,22 +117,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Append_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -158,22 +158,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Replace_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -202,22 +202,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Merge_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -244,22 +244,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Clear_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -282,22 +282,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Remove_Specific_Tags_From_Property() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content.Id, contentType.PropertyTypes.First().Id, @@ -328,24 +328,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Content_By_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -374,24 +374,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Content_By_Key() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -421,24 +421,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_All() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -458,24 +458,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_All_With_Ids() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var tags = new[] { new Tag {Text = "tag1", Group = "test"}, @@ -500,24 +500,24 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Content_For_Group() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -546,22 +546,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Property_By_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -593,22 +593,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Property_By_Key() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -639,22 +639,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Property_For_Group() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -686,30 +686,30 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Entity_Type() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { MediaTypeRepository mediaTypeRepository; ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); - var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); + var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + var mediaType = MockedContentTypes.CreateImageMediaType("image2"); mediaTypeRepository.Save(mediaType); - unitOfWork.Flush(); + var media1 = MockedMedia.CreateMediaImage(mediaType, -1); mediaRepository.Save(media1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -746,30 +746,30 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tags_For_Entity_Type_For_Group() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { MediaTypeRepository mediaTypeRepository; ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); - var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); + var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + var mediaType = MockedContentTypes.CreateImageMediaType("image2"); mediaTypeRepository.Save(mediaType); - unitOfWork.Flush(); + var media1 = MockedMedia.CreateMediaImage(mediaType, -1); mediaRepository.Save(media1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -801,22 +801,22 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Cascade_Deletes_Tag_Relations() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -830,9 +830,9 @@ namespace Umbraco.Tests.Persistence.Repositories contentRepository.Delete(content1); - unitOfWork.Flush(); + - Assert.AreEqual(0, unitOfWork.Database.ExecuteScalar( + Assert.AreEqual(0, scope.Database.ExecuteScalar( "SELECT COUNT(*) FROM cmsTagRelationship WHERE nodeId=@nodeId AND propertyTypeId=@propTypeId", new { nodeId = content1.Id, propTypeId = contentType.PropertyTypes.First().Id })); } @@ -841,36 +841,36 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tagged_Entities_For_Tag_Group() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { MediaTypeRepository mediaTypeRepository; ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); - var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); + var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + var mediaType = MockedContentTypes.CreateImageMediaType("image2"); mediaTypeRepository.Save(mediaType); - unitOfWork.Flush(); + var media1 = MockedMedia.CreateMediaImage(mediaType, -1); mediaRepository.Save(media1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -927,36 +927,36 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Get_Tagged_Entities_For_Tag() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { MediaTypeRepository mediaTypeRepository; ContentTypeRepository contentTypeRepository; - var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository); - var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository); + var contentRepository = CreateContentRepository(provider, out contentTypeRepository); + var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository); //create data to relate to var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); - unitOfWork.Flush(); + var content1 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content1); - unitOfWork.Flush(); + var content2 = MockedContent.CreateSimpleContent(contentType); contentRepository.Save(content2); - unitOfWork.Flush(); + var mediaType = MockedContentTypes.CreateImageMediaType("image2"); mediaTypeRepository.Save(mediaType); - unitOfWork.Flush(); + var media1 = MockedMedia.CreateMediaImage(mediaType, -1); mediaRepository.Save(media1); - unitOfWork.Flush(); + - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); repository.AssignTagsToProperty( content1.Id, contentType.PropertyTypes.First().Id, @@ -1006,20 +1006,22 @@ namespace Umbraco.Tests.Persistence.Repositories } } - private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + private DocumentRepository CreateContentRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository) { - var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(accessor, DisabledCache, Logger); + contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository); + var repository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } - private MediaRepository CreateMediaRepository(IScopeUnitOfWork unitOfWork, out MediaTypeRepository mediaTypeRepository) + private MediaRepository CreateMediaRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository) { - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); - mediaTypeRepository = new MediaTypeRepository(unitOfWork, DisabledCache, Logger); - var repository = new MediaRepository(unitOfWork, DisabledCache, Logger, mediaTypeRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + var tagRepository = new TagRepository(accessor, DisabledCache, Logger); + mediaTypeRepository = new MediaTypeRepository(accessor, DisabledCache, Logger); + var repository = new MediaRepository(accessor, DisabledCache, Logger, mediaTypeRepository, tagRepository, Mock.Of()); return repository; } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/TaskRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TaskRepositoryTest.cs index 1506b5aba3..26201e7ee9 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TaskRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TaskRepositoryTest.cs @@ -5,7 +5,7 @@ using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -18,10 +18,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var created = DateTime.Now; var task = new Task(new TaskType("asdfasdf")) @@ -33,10 +33,10 @@ namespace Umbraco.Tests.Persistence.Repositories OwnerUserId = 0 }; repo.Save(task); - unitOfWork.Flush(); + repo.Delete(task); - unitOfWork.Flush(); + task = repo.Get(task.Id); Assert.IsNull(task); @@ -46,10 +46,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Add() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var created = DateTime.Now; repo.Save(new Task(new TaskType("asdfasdf")) @@ -60,7 +60,7 @@ namespace Umbraco.Tests.Persistence.Repositories EntityId = -1, OwnerUserId = 0 }); - unitOfWork.Flush(); + var found = repo.GetMany().ToArray(); @@ -79,10 +79,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Update() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var task = new Task(new TaskType("asdfasdf")) { @@ -94,7 +94,7 @@ namespace Umbraco.Tests.Persistence.Repositories }; repo.Save(task); - unitOfWork.Flush(); + //re-get task = repo.Get(task.Id); @@ -103,7 +103,7 @@ namespace Umbraco.Tests.Persistence.Repositories task.Closed = true; repo.Save(task); - unitOfWork.Flush(); + //re-get task = repo.Get(task.Id); @@ -116,10 +116,10 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Get_By_Id() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var task = new Task(new TaskType("asdfasdf")) { @@ -131,7 +131,7 @@ namespace Umbraco.Tests.Persistence.Repositories }; repo.Save(task); - unitOfWork.Flush(); + //re-get task = repo.Get(task.Id); @@ -145,10 +145,10 @@ namespace Umbraco.Tests.Persistence.Repositories { CreateTestData(false, 20); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var found = repo.GetMany().ToArray(); Assert.AreEqual(20, found.Count()); @@ -161,10 +161,10 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(false, 10); CreateTestData(true, 5); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var found = repo.GetTasks(includeClosed: true).ToArray(); Assert.AreEqual(15, found.Count()); @@ -177,10 +177,10 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(false, 10, -20); CreateTestData(false, 5, -21); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var found = repo.GetTasks(itemId:-20).ToArray(); Assert.AreEqual(10, found.Count()); @@ -193,10 +193,10 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(false, 10); CreateTestData(true, 5); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); var found = repo.GetTasks(includeClosed: false); Assert.AreEqual(10, found.Count()); @@ -205,10 +205,10 @@ namespace Umbraco.Tests.Persistence.Repositories private void CreateTestData(bool closed, int count, int entityId = -1) { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); for (int i = 0; i < count; i++) { @@ -222,7 +222,7 @@ namespace Umbraco.Tests.Persistence.Repositories }); } - unitOfWork.Complete(); + scope.Complete(); } } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/TaskTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TaskTypeRepositoryTest.cs index d64bf21adc..8ecc0537a9 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TaskTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TaskTypeRepositoryTest.cs @@ -4,7 +4,7 @@ using NUnit.Framework; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -17,12 +17,12 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Delete() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { var taskType = new TaskType("asdfasdf"); - var repo = new TaskRepository(unitOfWork, CacheHelper, Logger); - var taskTypeRepo = new TaskTypeRepository(unitOfWork, CacheHelper, Logger); + var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger); + var taskTypeRepo = new TaskTypeRepository((IScopeAccessor) provider, CacheHelper, Logger); var created = DateTime.Now; var task = new Task(taskType) @@ -34,12 +34,10 @@ namespace Umbraco.Tests.Persistence.Repositories OwnerUserId = 0 }; repo.Save(task); - unitOfWork.Flush(); - + var alltasktypes = taskTypeRepo.GetMany(); taskTypeRepo.Delete(taskType); - unitOfWork.Flush(); Assert.AreEqual(alltasktypes.Count() - 1, taskTypeRepo.GetMany().Count()); Assert.AreEqual(0, repo.GetMany().Count()); diff --git a/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs index acb72771b9..a42ba9b70b 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs @@ -11,7 +11,7 @@ using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -25,10 +25,11 @@ namespace Umbraco.Tests.Persistence.Repositories private IFileSystem _masterPageFileSystem; private IFileSystem _viewsFileSystem; - private ITemplateRepository CreateRepository(IScopeUnitOfWork unitOfWork, ITemplatesSection templatesSection = null) + private ITemplateRepository CreateRepository(IScopeProvider provider, ITemplatesSection templatesSection = null) { - return new TemplateRepository(unitOfWork, DisabledCache, Logger, _masterPageFileSystem, _viewsFileSystem, - templatesSection ?? Mock.Of(t => t.DefaultRenderingEngine == RenderingEngine.Mvc)); + return new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, + templatesSection ?? Mock.Of(t => t.DefaultRenderingEngine == RenderingEngine.Mvc), + _masterPageFileSystem, _viewsFileSystem); } public override void SetUp() @@ -43,10 +44,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Instantiate_Repository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Assert Assert.That(repository, Is.Not.Null); @@ -58,10 +59,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_MasterPage_Detect_Content() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -69,7 +70,7 @@ namespace Umbraco.Tests.Persistence.Repositories Content = @"<%@ Master Language=""C#"" %>" }; repository.Save(template); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test"), Is.Not.Null); @@ -82,15 +83,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_MasterPage_With_Default_Content() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork, Mock.Of(x => x.DefaultRenderingEngine == RenderingEngine.WebForms)); + var repository = CreateRepository(provider, Mock.Of(x => x.DefaultRenderingEngine == RenderingEngine.WebForms)); // Act var template = new Template("test", "test"); repository.Save(template); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test"), Is.Not.Null); @@ -109,21 +110,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_MasterPage_With_Default_Content_With_Parent() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork, Mock.Of(x => x.DefaultRenderingEngine == RenderingEngine.WebForms)); + var repository = CreateRepository(provider, Mock.Of(x => x.DefaultRenderingEngine == RenderingEngine.WebForms)); //NOTE: This has to be persisted first var template = new Template("test", "test"); repository.Save(template); - unitOfWork.Flush(); + // Act var template2 = new Template("test2", "test2"); template2.SetMasterTemplate(template); repository.Save(template2); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test2"), Is.Not.Null); @@ -139,15 +140,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_View() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test"); repository.Save(template); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test"), Is.Not.Null); @@ -160,10 +161,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_View_With_Default_Content() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -171,7 +172,7 @@ namespace Umbraco.Tests.Persistence.Repositories Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test"), Is.Not.Null); @@ -187,21 +188,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_View_With_Default_Content_With_Parent() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); //NOTE: This has to be persisted first var template = new Template("test", "test"); repository.Save(template); - unitOfWork.Flush(); + // Act var template2 = new Template("test2", "test2"); template2.SetMasterTemplate(template); repository.Save(template2); - unitOfWork.Flush(); + //Assert Assert.That(repository.Get("test2"), Is.Not.Null); @@ -216,10 +217,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Add_Unique_Alias() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -227,14 +228,14 @@ namespace Umbraco.Tests.Persistence.Repositories Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template); - unitOfWork.Flush(); + var template2 = new Template("test", "test") { Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template2); - unitOfWork.Flush(); + //Assert Assert.AreEqual("test1", template2.Alias); @@ -246,10 +247,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_Unique_Alias() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -257,18 +258,18 @@ namespace Umbraco.Tests.Persistence.Repositories Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template); - unitOfWork.Flush(); + var template2 = new Template("test1", "test1") { Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template2); - unitOfWork.Flush(); + template.Alias = "test1"; repository.Save(template); - unitOfWork.Flush(); + //Assert Assert.AreEqual("test11", template.Alias); @@ -282,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_MasterPage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -293,11 +294,11 @@ namespace Umbraco.Tests.Persistence.Repositories Content = @"<%@ Master Language=""C#"" %>" }; repository.Save(template); - unitOfWork.Flush(); + template.Content = @"<%@ Master Language=""VB"" %>"; repository.Save(template); - unitOfWork.Flush(); + var updated = repository.Get("test"); @@ -313,10 +314,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_View() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); // Act var template = new Template("test", "test") @@ -324,11 +325,11 @@ namespace Umbraco.Tests.Persistence.Repositories Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template); - unitOfWork.Flush(); + template.Content += ""; repository.Save(template); - unitOfWork.Flush(); + var updated = repository.Get("test"); @@ -342,23 +343,23 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_MasterPage() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var template = new Template("test", "test") { Content = @"<%@ Master Language=""C#"" %>" }; repository.Save(template); - unitOfWork.Flush(); + // Act var templates = repository.Get("test"); Assert.That(_masterPageFileSystem.FileExists("test.master"), Is.True); repository.Delete(templates); - unitOfWork.Flush(); + // Assert Assert.IsNull(repository.Get("test")); @@ -370,23 +371,23 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_View() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var template = new Template("test", "test") { Content = ViewHelper.GetDefaultFileContent() }; repository.Save(template); - unitOfWork.Flush(); + // Act var templates = repository.Get("test"); Assert.That(_viewsFileSystem.FileExists("test.cshtml"), Is.True); repository.Delete(templates); - unitOfWork.Flush(); + // Assert Assert.IsNull(repository.Get("test")); @@ -398,21 +399,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_When_Assigned_To_Doc() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var templateRepository = CreateRepository(unitOfWork); + var templateRepository = CreateRepository(provider); - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); - var contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository); - var contentRepo = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var tagRepository = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); + var contentTypeRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, templateRepository); + var contentRepo = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage"); ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType! contentTypeRepository.Save(contentType); var textpage = MockedContent.CreateSimpleContent(contentType); contentRepo.Save(textpage); - unitOfWork.Flush(); + var template = new Template("test", "test") @@ -420,16 +421,16 @@ namespace Umbraco.Tests.Persistence.Repositories Content = @"<%@ Master Language=""C#"" %>" }; templateRepository.Save(template); - unitOfWork.Flush(); + textpage.Template = template; contentRepo.Save(textpage); - unitOfWork.Flush(); + // Act var templates = templateRepository.Get("test"); templateRepository.Delete(templates); - unitOfWork.Flush(); + // Assert Assert.IsNull(templateRepository.Get("test")); @@ -440,10 +441,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_Nested_Templates() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var parent = new Template("parent", "parent") { @@ -464,12 +465,12 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(parent); repository.Save(child); repository.Save(baby); - unitOfWork.Flush(); + // Act var templates = repository.Get("parent"); repository.Delete(templates); - unitOfWork.Flush(); + // Assert Assert.IsNull(repository.Get("test")); @@ -480,12 +481,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Get_Template_Tree() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateHierarchy(repository, unitOfWork); + CreateHierarchy(repository); // Act var rootNode = repository.GetTemplateNode("parent"); @@ -507,12 +508,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Get_All() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var created = CreateHierarchy(repository, unitOfWork).ToArray(); + var created = CreateHierarchy(repository).ToArray(); // Act var all = repository.GetAll(); @@ -535,12 +536,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Get_Children() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var created = CreateHierarchy(repository, unitOfWork).ToArray(); + var created = CreateHierarchy(repository).ToArray(); // Act var childrenById = repository.GetChildren(created[1].Id); @@ -559,12 +560,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Get_Children_At_Root() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateHierarchy(repository, unitOfWork).ToArray(); + CreateHierarchy(repository).ToArray(); // Act var children = repository.GetChildren(-1); @@ -580,12 +581,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Get_Descendants() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var created = CreateHierarchy(repository, unitOfWork).ToArray(); + var created = CreateHierarchy(repository).ToArray(); // Act var descendantsById = repository.GetDescendants(created[1].Id); @@ -605,10 +606,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Path_Is_Set_Correctly_On_Creation() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var parent = new Template("parent", "parent"); var child1 = new Template("child1", "child1"); @@ -648,7 +649,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(toddler4); repository.Save(baby1); repository.Save(baby2); - unitOfWork.Flush(); + // Assert Assert.AreEqual(string.Format("-1,{0}", parent.Id), parent.Path); @@ -668,10 +669,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Path_Is_Set_Correctly_On_Update() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var parent = new Template("parent", "parent"); var child1 = new Template("child1", "child1"); @@ -693,12 +694,12 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(child2); repository.Save(toddler1); repository.Save(toddler2); - unitOfWork.Flush(); + //Act toddler2.SetMasterTemplate(child2); repository.Save(toddler2); - unitOfWork.Flush(); + //Assert Assert.AreEqual($"-1,{parent.Id},{child2.Id},{toddler2.Id}", toddler2.Path); @@ -709,10 +710,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Path_Is_Set_Correctly_On_Update_With_Master_Template_Removal() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var parent = new Template("parent", "parent"); var child1 = new Template("child1", "child1"); @@ -722,12 +723,12 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(parent); repository.Save(child1); - unitOfWork.Flush(); + //Act child1.SetMasterTemplate(null); repository.Save(child1); - unitOfWork.Flush(); + //Assert Assert.AreEqual($"-1,{child1.Id}", child1.Path); @@ -767,7 +768,7 @@ namespace Umbraco.Tests.Persistence.Repositories return stream; } - private IEnumerable CreateHierarchy(ITemplateRepository repository, IScopeUnitOfWork unitOfWork) + private IEnumerable CreateHierarchy(ITemplateRepository repository) { var parent = new Template("parent", "parent") { @@ -839,7 +840,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(toddler4); repository.Save(baby1); repository.Save(baby2); - unitOfWork.Flush(); + return new[] {parent, child1, child2, toddler1, toddler2, toddler3, toddler4, baby1, baby2}; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserGroupRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserGroupRepositoryTest.cs index 8571cc4f84..aeec6065df 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserGroupRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserGroupRepositoryTest.cs @@ -6,7 +6,7 @@ using Umbraco.Core.Logging; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -17,25 +17,25 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class UserGroupRepositoryTest : TestWithDatabaseBase { - private UserGroupRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private UserGroupRepository CreateRepository(IScopeProvider provider) { - return new UserGroupRepository(unitOfWork, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + return new UserGroupRepository((IScopeAccessor) provider, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); } [Test] public void Can_Perform_Add_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup = MockedUserGroup.CreateUserGroup(); // Act repository.Save(userGroup); - unitOfWork.Complete(); + scope.Complete(); // Assert Assert.That(userGroup.HasIdentity, Is.True); @@ -46,19 +46,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Multiple_Adds_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup1 = MockedUserGroup.CreateUserGroup("1"); var userGroup2 = MockedUserGroup.CreateUserGroup("2"); // Act repository.Save(userGroup1); - unitOfWork.Flush(); + repository.Save(userGroup2); - unitOfWork.Complete(); + scope.Complete(); // Assert Assert.That(userGroup1.HasIdentity, Is.True); @@ -70,14 +70,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_Fresh_Entity_Is_Not_Dirty() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup = MockedUserGroup.CreateUserGroup(); repository.Save(userGroup); - unitOfWork.Complete(); + scope.Complete(); // Act var resolved = repository.Get(userGroup.Id); @@ -92,21 +92,21 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Update_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup = MockedUserGroup.CreateUserGroup(); repository.Save(userGroup); - unitOfWork.Flush(); + // Act var resolved = repository.Get(userGroup.Id); resolved.Name = "New Name"; resolved.Permissions = new[] { "Z", "Y", "X" }; repository.Save(resolved); - unitOfWork.Complete(); + scope.Complete(); var updatedItem = repository.Get(userGroup.Id); // Assert @@ -119,21 +119,21 @@ namespace Umbraco.Tests.Persistence.Repositories [Test] public void Can_Perform_Delete_On_UserGroupRepository() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup = MockedUserGroup.CreateUserGroup(); // Act repository.Save(userGroup); - unitOfWork.Flush(); + var id = userGroup.Id; - var repository2 = new UserGroupRepository(unitOfWork, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Logger); + var repository2 = new UserGroupRepository((IScopeAccessor) provider, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Logger); repository2.Delete(userGroup); - unitOfWork.Complete(); + scope.Complete(); var resolved = repository2.Get(id); @@ -146,14 +146,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var userGroup = MockedUserGroup.CreateUserGroup(); repository.Save(userGroup); - unitOfWork.Complete(); + scope.Complete(); // Act var resolved = repository.Get(userGroup.Id); @@ -172,15 +172,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateAndCommitMultipleUserGroups(repository, unitOfWork); + CreateAndCommitMultipleUserGroups(repository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Alias == "testUserGroup1"); + var query = scope.SqlContext.Query().Where(x => x.Alias == "testUserGroup1"); var result = repository.Get(query); // Assert @@ -192,12 +192,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_By_Param_Ids_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var userGroups = CreateAndCommitMultipleUserGroups(repository); // Act var result = repository.GetMany(userGroups[0].Id, userGroups[1].Id); @@ -213,12 +213,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateAndCommitMultipleUserGroups(repository, unitOfWork); + CreateAndCommitMultipleUserGroups(repository); // Act var result = repository.GetMany(); @@ -234,12 +234,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var userGroups = CreateAndCommitMultipleUserGroups(repository); // Act var exists = repository.Exists(userGroups[0].Id); @@ -253,15 +253,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_UserGroupRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var userGroups = CreateAndCommitMultipleUserGroups(repository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Alias == "testUserGroup1" || x.Alias == "testUserGroup2"); + var query = scope.SqlContext.Query().Where(x => x.Alias == "testUserGroup1" || x.Alias == "testUserGroup2"); var result = repository.Count(query); // Assert @@ -273,12 +273,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Remove_Section_For_Group() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var groups = CreateAndCommitMultipleUserGroups(repository); // Act @@ -293,7 +293,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(groups[0]); repository.Save(groups[1]); - unitOfWork.Complete(); + scope.Complete(); // Assert var result = repository.GetMany((int)groups[0].Id, (int)groups[1].Id).ToArray(); @@ -308,12 +308,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Add_Section_ForGroup() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var groups = CreateAndCommitMultipleUserGroups(repository); // Act @@ -336,7 +336,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(groups[0]); repository.Save(groups[1]); repository.Save(groups[2]); - unitOfWork.Complete(); + scope.Complete(); for (var i = 0; i < 3; i++) Assert.IsNotNull(repository.Get(groups[i].Id)); @@ -359,12 +359,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Update_Section_For_Group() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork); + var groups = CreateAndCommitMultipleUserGroups(repository); // Act @@ -372,7 +372,7 @@ namespace Umbraco.Tests.Persistence.Repositories groups[0].AddAllowedSection("settings"); repository.Save(groups[0]); - unitOfWork.Complete(); + scope.Complete(); // Assert var result = repository.Get(groups[0].Id); @@ -387,10 +387,10 @@ namespace Umbraco.Tests.Persistence.Repositories public void Get_Groups_Assigned_To_Section() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = ScopeProvider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var user1 = MockedUserGroup.CreateUserGroup("1", allowedSections: new[] { "test1" }); var user2 = MockedUserGroup.CreateUserGroup("2", allowedSections: new[] { "test2" }); @@ -398,7 +398,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(user1); repository.Save(user2); repository.Save(user3); - unitOfWork.Complete(); + scope.Complete(); // Act var groups = repository.GetGroupsAssignedToSection("test1"); @@ -412,7 +412,7 @@ namespace Umbraco.Tests.Persistence.Repositories } } - private IUserGroup[] CreateAndCommitMultipleUserGroups(IUserGroupRepository repository, IUnitOfWork unitOfWork) + private IUserGroup[] CreateAndCommitMultipleUserGroups(IUserGroupRepository repository) { var userGroup1 = MockedUserGroup.CreateUserGroup("1"); var userGroup2 = MockedUserGroup.CreateUserGroup("2"); @@ -420,7 +420,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(userGroup1); repository.Save(userGroup2); repository.Save(userGroup3); - unitOfWork.Complete(); + return new IUserGroup[] { userGroup1, userGroup2, userGroup3 }; } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs index 6a957e682f..c2e4d175fe 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs @@ -10,7 +10,7 @@ using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -21,54 +21,58 @@ namespace Umbraco.Tests.Persistence.Repositories [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class UserRepositoryTest : TestWithDatabaseBase { - private MediaRepository CreateMediaRepository(IScopeUnitOfWork unitOfWork, out IMediaTypeRepository mediaTypeRepository) + private MediaRepository CreateMediaRepository(IScopeProvider provider, out IMediaTypeRepository mediaTypeRepository) { - mediaTypeRepository = new MediaTypeRepository(unitOfWork, CacheHelper, Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, CacheHelper, Mock.Of()); - var repository = new MediaRepository(unitOfWork, CacheHelper, Mock.Of(), mediaTypeRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + mediaTypeRepository = new MediaTypeRepository(accessor, CacheHelper, Mock.Of()); + var tagRepository = new TagRepository(accessor, CacheHelper, Mock.Of()); + var repository = new MediaRepository(accessor, CacheHelper, Mock.Of(), mediaTypeRepository, tagRepository, Mock.Of()); return repository; } - private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out IContentTypeRepository contentTypeRepository) + private DocumentRepository CreateContentRepository(IScopeProvider provider, out IContentTypeRepository contentTypeRepository) { ITemplateRepository tr; - return CreateContentRepository(unitOfWork, out contentTypeRepository, out tr); + return CreateContentRepository(provider, out contentTypeRepository, out tr); } - private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out IContentTypeRepository contentTypeRepository, out ITemplateRepository templateRepository) + private DocumentRepository CreateContentRepository(IScopeProvider provider, out IContentTypeRepository contentTypeRepository, out ITemplateRepository templateRepository) { - templateRepository = new TemplateRepository(unitOfWork, CacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, CacheHelper, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper, Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + templateRepository = new TemplateRepository(accessor, CacheHelper, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(accessor, CacheHelper, Logger); + contentTypeRepository = new ContentTypeRepository(accessor, CacheHelper, Logger, templateRepository); + var repository = new DocumentRepository(accessor, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } - private UserRepository CreateRepository(IScopeUnitOfWork unitOfWork) + private UserRepository CreateRepository(IScopeProvider provider) { - var repository = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of()); + var accessor = (IScopeAccessor) provider; + var repository = new UserRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of(), Mock.Of()); return repository; } - private UserGroupRepository CreateUserGroupRepository(IScopeUnitOfWork unitOfWork) + private UserGroupRepository CreateUserGroupRepository(IScopeProvider provider) { - return new UserGroupRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var accessor = (IScopeAccessor) provider; + return new UserGroupRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); } [Test] public void Can_Perform_Add_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var user = MockedUser.CreateUser(); // Act repository.Save(user); - unitOfWork.Flush(); + // Assert Assert.That(user.HasIdentity, Is.True); @@ -79,19 +83,19 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Multiple_Adds_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var user1 = MockedUser.CreateUser("1"); var use2 = MockedUser.CreateUser("2"); // Act repository.Save(user1); - unitOfWork.Flush(); + repository.Save(use2); - unitOfWork.Flush(); + // Assert Assert.That(user1.HasIdentity, Is.True); @@ -103,14 +107,14 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Verify_Fresh_Entity_Is_Not_Dirty() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var user = MockedUser.CreateUser(); repository.Save(user); - unitOfWork.Flush(); + // Act var resolved = repository.Get((int)user.Id); @@ -130,23 +134,23 @@ namespace Umbraco.Tests.Persistence.Repositories var media = MockedMedia.CreateSimpleMedia(mt, "asdf", -1); // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var userRepository = CreateRepository(unitOfWork); - var contentRepository = CreateContentRepository(unitOfWork, out var contentTypeRepo); - var mediaRepository = CreateMediaRepository(unitOfWork, out var mediaTypeRepo); - var userGroupRepository = CreateUserGroupRepository(unitOfWork); + var userRepository = CreateRepository(provider); + var contentRepository = CreateContentRepository(provider, out var contentTypeRepo); + var mediaRepository = CreateMediaRepository(provider, out var mediaTypeRepo); + var userGroupRepository = CreateUserGroupRepository(provider); contentTypeRepo.Save(ct); mediaTypeRepo.Save(mt); - unitOfWork.Flush(); + contentRepository.Save(content); mediaRepository.Save(media); - unitOfWork.Flush(); + - var user = CreateAndCommitUserWithGroup(userRepository, userGroupRepository, unitOfWork); + var user = CreateAndCommitUserWithGroup(userRepository, userGroupRepository); // Act var resolved = (User) userRepository.Get(user.Id); @@ -164,7 +168,7 @@ namespace Umbraco.Tests.Persistence.Repositories resolved.Username = "newName"; userRepository.Save(resolved); - unitOfWork.Flush(); + var updatedItem = (User) userRepository.Get(user.Id); // Assert @@ -188,22 +192,22 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Delete_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); var user = MockedUser.CreateUser(); // Act repository.Save(user); - unitOfWork.Flush(); + var id = user.Id; - var repository2 = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of()); + var repository2 = new UserRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of()); repository2.Delete(user); - unitOfWork.Flush(); + var resolved = repository2.Get((int) id); @@ -217,13 +221,13 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Get_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); - var userGroupRepository = CreateUserGroupRepository(unitOfWork); + var repository = CreateRepository(provider); + var userGroupRepository = CreateUserGroupRepository(provider); - var user = CreateAndCommitUserWithGroup(repository, userGroupRepository, unitOfWork); + var user = CreateAndCommitUserWithGroup(repository, userGroupRepository); // Act var updatedItem = repository.Get(user.Id); @@ -241,15 +245,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetByQuery_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateAndCommitMultipleUsers(repository, unitOfWork); + CreateAndCommitMultipleUsers(repository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Username == "TestUser1"); + var query = scope.SqlContext.Query().Where(x => x.Username == "TestUser1"); var result = repository.Get(query); // Assert @@ -261,12 +265,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_By_Param_Ids_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + var users = CreateAndCommitMultipleUsers(repository); // Act var result = repository.GetMany((int) users[0].Id, (int) users[1].Id); @@ -282,12 +286,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_GetAll_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - CreateAndCommitMultipleUsers(repository, unitOfWork); + CreateAndCommitMultipleUsers(repository); // Act var result = repository.GetMany(); @@ -303,12 +307,12 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Exists_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + var users = CreateAndCommitMultipleUsers(repository); // Act var exists = repository.Exists(users[0].Id); @@ -322,15 +326,15 @@ namespace Umbraco.Tests.Persistence.Repositories public void Can_Perform_Count_On_UserRepository() { // Arrange - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = CreateRepository(unitOfWork); + var repository = CreateRepository(provider); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + var users = CreateAndCommitMultipleUsers(repository); // Act - var query = unitOfWork.SqlContext.Query().Where(x => x.Username == "TestUser1" || x.Username == "TestUser2"); + var query = scope.SqlContext.Query().Where(x => x.Username == "TestUser1" || x.Username == "TestUser2"); var result = repository.Count(query); // Assert @@ -355,20 +359,20 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.IsTrue(updatedItem.AllowedSections.Contains(allowedSection)); } - private static User CreateAndCommitUserWithGroup(IUserRepository repository, IUserGroupRepository userGroupRepository, IScopeUnitOfWork unitOfWork) + private static User CreateAndCommitUserWithGroup(IUserRepository repository, IUserGroupRepository userGroupRepository) { var user = MockedUser.CreateUser(); repository.Save(user); - unitOfWork.Flush(); + var group = MockedUserGroup.CreateUserGroup(); userGroupRepository.AddOrUpdateGroupWithUsers(@group, new[] { user.Id }); - unitOfWork.Flush(); + return user; } - private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository, IUnitOfWork unitOfWork) + private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository) { var user1 = MockedUser.CreateUser("1"); var user2 = MockedUser.CreateUser("2"); @@ -376,7 +380,6 @@ namespace Umbraco.Tests.Persistence.Repositories repository.Save(user1); repository.Save(user2); repository.Save(user3); - unitOfWork.Complete(); return new IUser[] { user1, user2, user3 }; } } diff --git a/src/Umbraco.Tests/Persistence/UnitOfWorkTests.cs b/src/Umbraco.Tests/Persistence/UnitOfWorkTests.cs index 0232b76f1f..5651dd1457 100644 --- a/src/Umbraco.Tests/Persistence/UnitOfWorkTests.cs +++ b/src/Umbraco.Tests/Persistence/UnitOfWorkTests.cs @@ -13,10 +13,10 @@ namespace Umbraco.Tests.Persistence [Test] public void ReadLockNonExisting() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); Assert.Throws(() => { - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { scope.ReadLock(-666); scope.Complete(); @@ -27,8 +27,8 @@ namespace Umbraco.Tests.Persistence [Test] public void ReadLockExisting() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { scope.ReadLock(Constants.Locks.Servers); scope.Complete(); @@ -38,10 +38,10 @@ namespace Umbraco.Tests.Persistence [Test] public void WriteLockNonExisting() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); + var provider = TestObjects.GetScopeProvider(Logger); Assert.Throws(() => { - using (var uow = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { scope.WriteLock(-666); scope.Complete(); @@ -52,8 +52,8 @@ namespace Umbraco.Tests.Persistence [Test] public void WriteLockExisting() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { scope.WriteLock(Constants.Locks.Servers); scope.Complete(); diff --git a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs index 178f4e1b84..551a746afb 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs @@ -64,7 +64,7 @@ namespace Umbraco.Tests.PublishedContent /// internal IPublishedContent GetNode(int id, UmbracoContext umbracoContext) { - var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache); + var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache); var doc = cache.GetById(id); Assert.IsNotNull(doc); return doc; @@ -458,7 +458,7 @@ namespace Umbraco.Tests.PublishedContent "); var node = xml.DescendantsAndSelf("Image").Single(x => (int)x.Attribute("id") == nodeId); - var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); + var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); var nav = node.CreateNavigator(); @@ -478,7 +478,7 @@ namespace Umbraco.Tests.PublishedContent var errorXml = new XElement("error", string.Format("No media is maching '{0}'", 1234)); var nav = errorXml.CreateNavigator(); - var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); + var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache); var converted = publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/"), 1234); Assert.IsNull(converted); diff --git a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs index bcb7178799..0cf892c891 100644 --- a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs @@ -79,10 +79,10 @@ namespace Umbraco.Tests.Scoping runtimeStateMock.Object, ServiceContext, contentTypeFactory, - UowProvider, publishedSnapshotAccessor, Logger, - ScopeProvider); + ScopeProvider, + null, null, null); } protected UmbracoContext GetUmbracoContextNu(string url, int templateId = 1234, RouteData routeData = null, bool setSingleton = false, IUmbracoSettingsSection umbracoSettings = null, IEnumerable urlProviders = null) diff --git a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs index 22e72cf367..b4f4665a25 100644 --- a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs +++ b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs @@ -12,6 +12,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.TestHelpers.Stubs; @@ -157,13 +158,13 @@ namespace Umbraco.Tests.Services var pages = MockedContent.CreateTextpageContent(contentType, -1, 100); ServiceContext.ContentService.Save(pages, 0); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger); - var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); + var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); + var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository); + var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); // Act Stopwatch watch = Stopwatch.StartNew(); @@ -189,13 +190,13 @@ namespace Umbraco.Tests.Services var pages = MockedContent.CreateTextpageContent(contentType, -1, 1000); ServiceContext.ContentService.Save(pages, 0); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger); - var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); + var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); + var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository); + var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); // Act Stopwatch watch = Stopwatch.StartNew(); @@ -219,13 +220,13 @@ namespace Umbraco.Tests.Services var pages = MockedContent.CreateTextpageContent(contentType, -1, 100); ServiceContext.ContentService.Save(pages, 0); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger); - var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); + var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); + var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository); + var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); // Act var contents = repository.GetMany(); @@ -252,13 +253,13 @@ namespace Umbraco.Tests.Services var pages = MockedContent.CreateTextpageContent(contentType, -1, 1000); ServiceContext.ContentService.Save(pages, 0); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger); - var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); + var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger); + var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository); + var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of()); // Act var contents = repository.GetMany(); diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs index 85fc1164c6..c1597eabdb 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs @@ -14,12 +14,12 @@ using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.Rdbms; using LightInject; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Core.Events; using Umbraco.Core.Logging; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.Testing; namespace Umbraco.Tests.Services @@ -1202,10 +1202,9 @@ namespace Umbraco.Tests.Services content.PublishValues(); var published = contentService.SaveAndPublish(content, 0); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = ScopeProvider.CreateScope()) { - Assert.IsTrue(uow.Database.Exists(content.Id)); + Assert.IsTrue(scope.Database.Exists(content.Id)); } // Act @@ -1216,9 +1215,9 @@ namespace Umbraco.Tests.Services Assert.That(unpublished.Success, Is.True); Assert.That(content.Published, Is.False); - using (var uow = provider.CreateUnitOfWork()) + using (var scope = ScopeProvider.CreateScope()) { - Assert.IsFalse(uow.Database.Exists(content.Id)); + Assert.IsFalse(scope.Database.Exists(content.Id)); } } @@ -2114,7 +2113,7 @@ namespace Umbraco.Tests.Services [Test] public void Can_Save_Lazy_Content() { - var provider = TestObjects.GetScopeUnitOfWorkProvider(Mock.Of()); + var provider = TestObjects.GetScopeProvider(Mock.Of()); var contentType = ServiceContext.ContentTypeService.Get("umbTextpage"); var root = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 2); @@ -2122,15 +2121,14 @@ namespace Umbraco.Tests.Services var c2 = new Lazy(() => MockedContent.CreateSimpleContent(contentType, "Hierarchy Simple Text Subpage", c.Value.Id)); var list = new List> {c, c2}; - using (var unitOfWork = provider.CreateUnitOfWork()) + using (var scope = provider.CreateScope()) { ContentTypeRepository contentTypeRepository; - var repository = CreateRepository(unitOfWork, out contentTypeRepository); + var repository = CreateRepository(provider, out contentTypeRepository); foreach (var content in list) { repository.Save(content.Value); - unitOfWork.Flush(); } Assert.That(c.Value.HasIdentity, Is.True); @@ -2213,7 +2211,7 @@ namespace Umbraco.Tests.Services using (var scope = ScopeProvider.CreateScope()) { - Assert.IsFalse(uow.Database.Exists(content.Id)); + Assert.IsFalse(scope.Database.Exists(content.Id)); } content.PublishValues(); @@ -2221,7 +2219,7 @@ namespace Umbraco.Tests.Services using (var scope = ScopeProvider.CreateScope()) { - Assert.IsTrue(uow.Database.Exists(content.Id)); + Assert.IsTrue(scope.Database.Exists(content.Id)); } } @@ -2236,7 +2234,7 @@ namespace Umbraco.Tests.Services using (var scope = ScopeProvider.CreateScope()) { - Assert.IsTrue(uow.Database.SingleOrDefault("WHERE nodeId=@nodeId", new{nodeId = content.Id}) != null); + Assert.IsTrue(scope.Database.SingleOrDefault("WHERE nodeId=@nodeId", new{nodeId = content.Id}) != null); } } @@ -2472,12 +2470,13 @@ namespace Umbraco.Tests.Services return list; } - private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + private DocumentRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository) { - var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); - var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger); - contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository); - var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); + var accessor = (IScopeAccessor) provider; + var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of(), Mock.Of(), Mock.Of()); + var tagRepository = new TagRepository(accessor, DisabledCache, Logger); + contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository); + var repository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of()); return repository; } } diff --git a/src/Umbraco.Tests/Services/MacroServiceTests.cs b/src/Umbraco.Tests/Services/MacroServiceTests.cs index c20ff2490a..c0c9c42e7d 100644 --- a/src/Umbraco.Tests/Services/MacroServiceTests.cs +++ b/src/Umbraco.Tests/Services/MacroServiceTests.cs @@ -8,6 +8,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; using Umbraco.Tests.Testing; namespace Umbraco.Tests.Services @@ -20,15 +21,15 @@ namespace Umbraco.Tests.Services { base.CreateTestData(); - var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger); - using (var unitOfWork = provider.CreateUnitOfWork()) + var provider = TestObjects.GetScopeProvider(Logger); + using (var scope = provider.CreateScope()) { - var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); + var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of()); repository.Save(new Macro("test1", "Test1", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml")); repository.Save(new Macro("test2", "Test2", "~/usercontrol/test2.ascx", "MyAssembly2", "test2.xslt", "~/views/macropartials/test2.cshtml")); repository.Save(new Macro("test3", "Tet3", "~/usercontrol/test3.ascx", "MyAssembly3", "test3.xslt", "~/views/macropartials/test3.cshtml")); - unitOfWork.Complete(); + scope.Complete(); } } diff --git a/src/Umbraco.Tests/Services/MediaServiceTests.cs b/src/Umbraco.Tests/Services/MediaServiceTests.cs index e8b45cae44..f9cc08ca6d 100644 --- a/src/Umbraco.Tests/Services/MediaServiceTests.cs +++ b/src/Umbraco.Tests/Services/MediaServiceTests.cs @@ -9,7 +9,6 @@ using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -123,7 +122,7 @@ namespace Umbraco.Tests.Services using (var scope = ScopeProvider.CreateScope()) { - Assert.IsTrue(uow.Database.Exists(media.Id)); + Assert.IsTrue(scope.Database.Exists(media.Id)); } } diff --git a/src/Umbraco.Tests/Services/MemberServiceTests.cs b/src/Umbraco.Tests/Services/MemberServiceTests.cs index 4305d2d9c1..ab41c94507 100644 --- a/src/Umbraco.Tests/Services/MemberServiceTests.cs +++ b/src/Umbraco.Tests/Services/MemberServiceTests.cs @@ -1182,7 +1182,7 @@ namespace Umbraco.Tests.Services using (var scope = ScopeProvider.CreateScope()) { - Assert.IsTrue(uow.Database.Exists(customMember.Id)); + Assert.IsTrue(scope.Database.Exists(customMember.Id)); } } } diff --git a/src/Umbraco.Tests/Templates/TemplateRepositoryTests.cs b/src/Umbraco.Tests/Templates/TemplateRepositoryTests.cs index 41f56a7906..340f0ea79f 100644 --- a/src/Umbraco.Tests/Templates/TemplateRepositoryTests.cs +++ b/src/Umbraco.Tests/Templates/TemplateRepositoryTests.cs @@ -10,7 +10,7 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Persistence.UnitOfWork; +using Umbraco.Core.Scoping; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Templates @@ -31,11 +31,13 @@ namespace Umbraco.Tests.Templates { var logger = Mock.Of(); - var unitOfWorkMock = new Mock(); + var accessorMock = new Mock(); + var scopeMock = new Mock(); var database = TestObjects.GetUmbracoSqlCeDatabase(logger); - unitOfWorkMock.Setup(x => x.Database).Returns(database); + scopeMock.Setup(x => x.Database).Returns(database); + accessorMock.Setup(x => x.AmbientScope).Returns(scopeMock.Object); - _templateRepository = new TemplateRepository(unitOfWorkMock.Object, _cacheMock.Object, logger, _masterpageFileSystemMock.Object, _viewFileSystemMock.Object, _templateConfigMock.Object); + _templateRepository = new TemplateRepository(accessorMock.Object, _cacheMock.Object, logger, _templateConfigMock.Object, _masterpageFileSystemMock.Object, _viewFileSystemMock.Object); } diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs index e5261dfdfc..410cc36630 100644 --- a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs +++ b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs @@ -9,7 +9,6 @@ using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Events; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers.Stubs; using Umbraco.Web; @@ -77,14 +76,6 @@ namespace Umbraco.Tests.TestHelpers MockService()); } - public static IScopeUnitOfWork GetUnitOfWorkMock() - { - var unitOfWorkMock = new Mock(); - unitOfWorkMock.Setup(x => x.Messages).Returns(() => new EventMessages()); - unitOfWorkMock.Setup(x => x.Events).Returns(() => new PassThroughEventDispatcher()); - return unitOfWorkMock.Object; - } - private T MockService(IServiceFactory container = null) where T : class { diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects.cs b/src/Umbraco.Tests/TestHelpers/TestObjects.cs index c609b57b6f..bebc16a7ec 100644 --- a/src/Umbraco.Tests/TestHelpers/TestObjects.cs +++ b/src/Umbraco.Tests/TestHelpers/TestObjects.cs @@ -13,8 +13,8 @@ using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Mappers; +using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.SqlSyntax; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Scoping; using Umbraco.Core.Services; using Umbraco.Core.Strings; @@ -96,31 +96,30 @@ namespace Umbraco.Tests.TestHelpers /// A ServiceContext. /// Should be used sparingly for integration tests only - for unit tests /// just mock the services to be passed to the ctor of the ServiceContext. - public ServiceContext GetServiceContext(RepositoryFactory repositoryFactory, - IScopeUnitOfWorkProvider dbUnitOfWorkProvider, + public ServiceContext GetServiceContext( + IScopeProvider scopeProvider, IScopeAccessor scopeAccessor, CacheHelper cache, ILogger logger, IEventMessagesFactory eventMessagesFactory, IEnumerable urlSegmentProviders, IServiceFactory container = null) { - if (repositoryFactory == null) throw new ArgumentNullException(nameof(repositoryFactory)); - if (dbUnitOfWorkProvider == null) throw new ArgumentNullException(nameof(dbUnitOfWorkProvider)); + if (scopeProvider == null) throw new ArgumentNullException(nameof(scopeProvider)); + if (scopeAccessor == null) throw new ArgumentNullException(nameof(scopeAccessor)); if (cache == null) throw new ArgumentNullException(nameof(cache)); if (logger == null) throw new ArgumentNullException(nameof(logger)); if (eventMessagesFactory == null) throw new ArgumentNullException(nameof(eventMessagesFactory)); - var provider = dbUnitOfWorkProvider; var mediaFileSystem = new MediaFileSystem(Mock.Of()); - var migrationEntryService = GetLazyService(container, () => new MigrationEntryService(provider, logger, eventMessagesFactory)); - var externalLoginService = GetLazyService(container, () => new ExternalLoginService(provider, logger, eventMessagesFactory)); - var publicAccessService = GetLazyService(container, () => new PublicAccessService(provider, logger, eventMessagesFactory)); - var taskService = GetLazyService(container, () => new TaskService(provider, logger, eventMessagesFactory)); - var domainService = GetLazyService(container, () => new DomainService(provider, logger, eventMessagesFactory)); - var auditService = GetLazyService(container, () => new AuditService(provider, logger, eventMessagesFactory)); + var migrationEntryService = GetLazyService(container, c => new MigrationEntryService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var externalLoginService = GetLazyService(container, c => new ExternalLoginService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var publicAccessService = GetLazyService(container, c => new PublicAccessService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var taskService = GetLazyService(container, c => new TaskService(scopeProvider, logger, eventMessagesFactory, GetRepo(c), GetRepo(c))); + var domainService = GetLazyService(container, c => new DomainService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var auditService = GetLazyService(container, c => new AuditService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); - var localizedTextService = GetLazyService(container, () => new LocalizedTextService( + var localizedTextService = GetLazyService(container, c => new LocalizedTextService( new Lazy(() => { var mainLangFolder = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Umbraco + "/config/lang/")); @@ -153,36 +152,37 @@ namespace Umbraco.Tests.TestHelpers logger)); var runtimeState = Mock.Of(); - var idkMap = new IdkMap(provider); + var idkMap = new IdkMap(scopeProvider); - var userService = GetLazyService(container, () => new UserService(provider, logger, eventMessagesFactory, runtimeState)); - var dataTypeService = GetLazyService(container, () => new DataTypeService(provider, logger, eventMessagesFactory)); - var contentService = GetLazyService(container, () => new ContentService(provider, logger, eventMessagesFactory, mediaFileSystem)); - var notificationService = GetLazyService(container, () => new NotificationService(provider, userService.Value, contentService.Value, logger)); - var serverRegistrationService = GetLazyService(container, () => new ServerRegistrationService(provider, logger, eventMessagesFactory)); - var memberGroupService = GetLazyService(container, () => new MemberGroupService(provider, logger, eventMessagesFactory)); - var memberService = GetLazyService(container, () => new MemberService(provider, logger, eventMessagesFactory, memberGroupService.Value, mediaFileSystem)); - var mediaService = GetLazyService(container, () => new MediaService(provider, mediaFileSystem, logger, eventMessagesFactory)); - var contentTypeService = GetLazyService(container, () => new ContentTypeService(provider, logger, eventMessagesFactory, contentService.Value)); - var mediaTypeService = GetLazyService(container, () => new MediaTypeService(provider, logger, eventMessagesFactory, mediaService.Value)); - var fileService = GetLazyService(container, () => new FileService(provider, logger, eventMessagesFactory)); - var localizationService = GetLazyService(container, () => new LocalizationService(provider, logger, eventMessagesFactory)); + var userService = GetLazyService(container, c => new UserService(scopeProvider, logger, eventMessagesFactory, runtimeState, GetRepo(c), GetRepo(c))); + var dataTypeService = GetLazyService(container, c => new DataTypeService(scopeProvider, logger, eventMessagesFactory, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var contentService = GetLazyService(container, c => new ContentService(scopeProvider, logger, eventMessagesFactory, mediaFileSystem, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var notificationService = GetLazyService(container, c => new NotificationService(scopeProvider, userService.Value, contentService.Value, logger, GetRepo(c))); + var serverRegistrationService = GetLazyService(container, c => new ServerRegistrationService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var memberGroupService = GetLazyService(container, c => new MemberGroupService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var memberService = GetLazyService(container, c => new MemberService(scopeProvider, logger, eventMessagesFactory, memberGroupService.Value, mediaFileSystem, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var mediaService = GetLazyService(container, c => new MediaService(scopeProvider, mediaFileSystem, logger, eventMessagesFactory, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var contentTypeService = GetLazyService(container, c => new ContentTypeService(scopeProvider, logger, eventMessagesFactory, contentService.Value, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var mediaTypeService = GetLazyService(container, c => new MediaTypeService(scopeProvider, logger, eventMessagesFactory, mediaService.Value, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var fileService = GetLazyService(container, c => new FileService(scopeProvider, logger, eventMessagesFactory, GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c), GetRepo(c))); + var localizationService = GetLazyService(container, c => new LocalizationService(scopeProvider, logger, eventMessagesFactory, GetRepo(c), GetRepo(c), GetRepo(c))); - var memberTypeService = GetLazyService(container, () => new MemberTypeService(provider, logger, eventMessagesFactory, memberService.Value)); - var entityService = GetLazyService(container, () => new EntityService( - provider, logger, eventMessagesFactory, + var memberTypeService = GetLazyService(container, c => new MemberTypeService(scopeProvider, logger, eventMessagesFactory, memberService.Value, GetRepo(c), GetRepo(c), GetRepo(c))); + var entityService = GetLazyService(container, c => new EntityService( + scopeProvider, logger, eventMessagesFactory, contentService.Value, contentTypeService.Value, mediaService.Value, mediaTypeService.Value, dataTypeService.Value, memberService.Value, memberTypeService.Value, idkMap, //TODO: Consider making this an isolated cache instead of using the global one - cache.RuntimeCache)); + cache.RuntimeCache, + GetRepo(c))); - var macroService = GetLazyService(container, () => new MacroService(provider, logger, eventMessagesFactory)); - var packagingService = GetLazyService(container, () => new PackagingService(logger, contentService.Value, contentTypeService.Value, mediaService.Value, macroService.Value, dataTypeService.Value, fileService.Value, localizationService.Value, entityService.Value, userService.Value, provider, urlSegmentProviders)); - var relationService = GetLazyService(container, () => new RelationService(provider, logger, eventMessagesFactory, entityService.Value)); - var treeService = GetLazyService(container, () => new ApplicationTreeService(logger, cache)); - var tagService = GetLazyService(container, () => new TagService(provider, logger, eventMessagesFactory)); - var sectionService = GetLazyService(container, () => new SectionService(userService.Value, treeService.Value, provider, cache)); - var redirectUrlService = GetLazyService(container, () => new RedirectUrlService(provider, logger, eventMessagesFactory)); + var macroService = GetLazyService(container, c => new MacroService(scopeProvider, logger, eventMessagesFactory, GetRepo(c), GetRepo(c))); + var packagingService = GetLazyService(container, c => new PackagingService(logger, contentService.Value, contentTypeService.Value, mediaService.Value, macroService.Value, dataTypeService.Value, fileService.Value, localizationService.Value, entityService.Value, userService.Value, scopeProvider, urlSegmentProviders, GetRepo(c), GetRepo(c))); + var relationService = GetLazyService(container, c => new RelationService(scopeProvider, logger, eventMessagesFactory, entityService.Value, GetRepo(c), GetRepo(c))); + var treeService = GetLazyService(container, c => new ApplicationTreeService(logger, cache)); + var tagService = GetLazyService(container, c => new TagService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); + var sectionService = GetLazyService(container, c => new SectionService(userService.Value, treeService.Value, scopeProvider, cache)); + var redirectUrlService = GetLazyService(container, c => new RedirectUrlService(scopeProvider, logger, eventMessagesFactory, GetRepo(c))); return new ServiceContext( migrationEntryService, @@ -215,10 +215,16 @@ namespace Umbraco.Tests.TestHelpers redirectUrlService); } - private Lazy GetLazyService(IServiceFactory container, Func ctor) + private Lazy GetLazyService(IServiceFactory container, Func ctor) where T : class { - return new Lazy(() => container?.TryGetInstance() ?? ctor()); + return new Lazy(() => container?.TryGetInstance() ?? ctor(container)); + } + + private T GetRepo(IServiceFactory container) + where T : class, IRepository + { + return container?.TryGetInstance() ?? Mock.Of(); } public IScopeProvider GetScopeProvider(ILogger logger, FileSystems fileSystems = null, IUmbracoDatabaseFactory databaseFactory = null) @@ -236,24 +242,5 @@ namespace Umbraco.Tests.TestHelpers var scopeProvider = new ScopeProvider(databaseFactory, fileSystems, logger); return scopeProvider; } - - public IScopeUnitOfWorkProvider GetScopeUnitOfWorkProvider(ILogger logger, IUmbracoDatabaseFactory databaseFactory = null, RepositoryFactory repositoryFactory = null, IScopeProvider scopeProvider = null) - { - if (databaseFactory == null) - { - //var mappersBuilder = new MapperCollectionBuilder(Current.Container); // fixme - //mappersBuilder.AddCore(); - //var mappers = mappersBuilder.CreateCollection(); - var mappers = Current.Container.GetInstance(); - databaseFactory = new UmbracoDatabaseFactory(Constants.System.UmbracoConnectionName, GetDefaultSqlSyntaxProviders(logger), logger, mappers); - } - if (scopeProvider == null) - { - var fileSystems = new FileSystems(logger); - scopeProvider = new ScopeProvider(databaseFactory, fileSystems, logger); - } - repositoryFactory = repositoryFactory ?? new RepositoryFactory(Mock.Of()); - return new ScopeUnitOfWorkProvider(scopeProvider, databaseFactory.SqlContext, repositoryFactory); - } } } diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs index 9767cb1393..65b85caaf1 100644 --- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs +++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs @@ -14,7 +14,6 @@ using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.SqlSyntax; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; using Umbraco.Web; @@ -53,8 +52,6 @@ namespace Umbraco.Tests.TestHelpers protected CacheHelper DisabledCache => _disabledCacheHelper ?? (_disabledCacheHelper = CacheHelper.CreateDisabledCacheHelper()); - protected IScopeUnitOfWorkProvider UowProvider => Current.Container.GetInstance(); - protected PublishedContentTypeCache ContentTypesCache { get; private set; } protected override ISqlSyntaxProvider SqlSyntax => GetSyntaxProvider(); @@ -260,8 +257,9 @@ namespace Umbraco.Tests.TestHelpers Current.Services, Container.GetInstance(), (ScopeProvider) Current.ScopeProvider, - UowProvider, - cache, publishedSnapshotAccessor, Current.Logger, ContentTypesCache, null, true, Options.PublishedRepositoryEvents); + cache, publishedSnapshotAccessor, + null, null, null, + Current.Logger, ContentTypesCache, null, true, Options.PublishedRepositoryEvents); // initialize PublishedCacheService content with an Xml source service.XmlStore.GetXmlDocument = () => diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index 252230ae7a..53638fa9dd 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -294,9 +294,6 @@ namespace Umbraco.Tests.Testing Container.RegisterSingleton(factory => new FileSystems(factory.TryGetInstance())); Container.RegisterSingleton(factory => TestObjects.GetScopeProvider(factory.TryGetInstance(), factory.TryGetInstance(), factory.TryGetInstance())); - Container.RegisterSingleton(factory - => TestObjects.GetScopeUnitOfWorkProvider(factory.TryGetInstance(), factory.TryGetInstance(), - factory.TryGetInstance(), factory.TryGetInstance())); Container.RegisterFrom(); // composition root is doing weird things, fix diff --git a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs index 8a60a0c8fd..f5c88794a6 100644 --- a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs @@ -13,7 +13,6 @@ using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Logging; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Persistence; -using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; using Umbraco.Core.Services; @@ -423,9 +422,10 @@ namespace Umbraco.Tests.Web.Mvc var cache = new NullCacheProvider(); //var provider = new ScopeUnitOfWorkProvider(databaseFactory, new RepositoryFactory(Mock.Of())); var scopeProvider = TestObjects.GetScopeProvider(Mock.Of()); - var uowProvider = TestObjects.GetScopeUnitOfWorkProvider(Mock.Of(), scopeProvider: scopeProvider); var factory = Mock.Of(); - _service = new PublishedSnapshotService(svcCtx, factory, scopeProvider, uowProvider, cache, Enumerable.Empty(), null, Current.Logger, null, true, false); // no events + _service = new PublishedSnapshotService(svcCtx, factory, scopeProvider, cache, Enumerable.Empty(), null, + null, null, null, + Current.Logger, null, true, false); // no events var http = GetHttpContextFactory(url, routeData).HttpContext;