From 8fe7c0da9e145fb467b473684f295e8ba5512ea0 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 18 Sep 2013 11:40:40 +1000 Subject: [PATCH] Changed all repository tests to ensure they are not testing with cache enabled... now to fix the problems :( --- .../Repositories/ContentRepositoryTest.cs | 450 ++++++++-------- .../Repositories/ContentTypeRepositoryTest.cs | 485 ++++++++++-------- .../DataTypeDefinitionRepositoryTest.cs | 217 ++++---- .../Repositories/DictionaryRepositoryTest.cs | 218 ++++---- .../Repositories/LanguageRepositoryTest.cs | 176 ++++--- .../Repositories/MediaRepositoryTest.cs | 285 +++++----- .../Repositories/MediaTypeRepositoryTest.cs | 224 ++++---- .../Repositories/MemberRepositoryTest.cs | 160 +++--- .../Repositories/MemberTypeRepositoryTest.cs | 80 +++ .../Repositories/RelationRepositoryTest.cs | 221 ++++---- .../RelationTypeRepositoryTest.cs | 187 ++++--- .../Repositories/ScriptRepositoryTest.cs | 5 +- .../ServerRegistrationRepositoryTest.cs | 28 +- .../Repositories/StylesheetRepositoryTest.cs | 5 +- .../Repositories/UserRepositoryTest.cs | 457 +++++++++-------- .../Repositories/UserTypeRepositoryTest.cs | 238 +++++---- src/Umbraco.Tests/Umbraco.Tests.csproj | 1 + 17 files changed, 1942 insertions(+), 1495 deletions(-) create mode 100644 src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs index fec3d9ca62..1990785938 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs @@ -6,6 +6,7 @@ using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; @@ -34,17 +35,26 @@ namespace Umbraco.Tests.Persistence.Repositories base.TearDown(); } + private ContentRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + { + var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); + contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository); + return repository; + } + [Test] public void Ensures_Permissions_Are_Set_If_Parent_Entity_Permissions_Exist() - { + { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = (ContentRepository)RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); - contentType.AllowedContentTypes = new List + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); + contentType.AllowedContentTypes = new List { new ContentTypeSort { @@ -53,25 +63,27 @@ namespace Umbraco.Tests.Persistence.Repositories SortOrder = 0 } }; - var parentPage = MockedContent.CreateSimpleContent(contentType); - contentTypeRepository.AddOrUpdate(contentType); - repository.AddOrUpdate(parentPage); - unitOfWork.Commit(); + var parentPage = MockedContent.CreateSimpleContent(contentType); + contentTypeRepository.AddOrUpdate(contentType); + repository.AddOrUpdate(parentPage); + unitOfWork.Commit(); - // Act - repository.AssignEntityPermissions(parentPage, "A", new object[] {0}); - var childPage = MockedContent.CreateSimpleContent(contentType, "child", parentPage); - repository.AddOrUpdate(childPage); - unitOfWork.Commit(); + // Act + repository.AssignEntityPermissions(parentPage, "A", new object[] { 0 }); + var childPage = MockedContent.CreateSimpleContent(contentType, "child", parentPage); + repository.AddOrUpdate(childPage); + unitOfWork.Commit(); - // Assert - var permissions = repository.GetPermissionsForEntity(childPage.Id); - Assert.AreEqual(1, permissions.Count()); - Assert.AreEqual("A", permissions.Single().Permission); + // Assert + var permissions = repository.GetPermissionsForEntity(childPage.Id); + Assert.AreEqual(1, permissions.Count()); + Assert.AreEqual("A", permissions.Single().Permission); + } + } [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -90,20 +102,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); + Content textpage = MockedContent.CreateSimpleContent(contentType); - ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); - Content textpage = MockedContent.CreateSimpleContent(contentType); + // Act + contentTypeRepository.AddOrUpdate(contentType); + repository.AddOrUpdate(textpage); + unitOfWork.Commit(); - // Act - contentTypeRepository.AddOrUpdate(contentType); - repository.AddOrUpdate(textpage); - unitOfWork.Commit(); - - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(textpage.HasIdentity, Is.True); + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(textpage.HasIdentity, Is.True); + } } //Covers issue U4-2791 and U4-2607 @@ -113,28 +126,29 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); + Content textpage = MockedContent.CreateSimpleContent(contentType, "test@umbraco.org", -1); + Content anotherTextpage = MockedContent.CreateSimpleContent(contentType, "@lightgiants", -1); - ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); - Content textpage = MockedContent.CreateSimpleContent(contentType, "test@umbraco.org", -1); - Content anotherTextpage = MockedContent.CreateSimpleContent(contentType, "@lightgiants", -1); + // Act + contentTypeRepository.AddOrUpdate(contentType); + repository.AddOrUpdate(textpage); + repository.AddOrUpdate(anotherTextpage); + unitOfWork.Commit(); - // Act - contentTypeRepository.AddOrUpdate(contentType); - repository.AddOrUpdate(textpage); - repository.AddOrUpdate(anotherTextpage); - unitOfWork.Commit(); + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(textpage.HasIdentity, Is.True); - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(textpage.HasIdentity, Is.True); + var content = repository.Get(textpage.Id); + Assert.That(content.Name, Is.EqualTo(textpage.Name)); - var content = repository.Get(textpage.Id); - Assert.That(content.Name, Is.EqualTo(textpage.Name)); - - var content2 = repository.Get(anotherTextpage.Id); - Assert.That(content2.Name, Is.EqualTo(anotherTextpage.Name)); + var content2 = repository.Get(anotherTextpage.Id); + Assert.That(content2.Name, Is.EqualTo(anotherTextpage.Name)); + } } [Test] @@ -143,26 +157,28 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); + Content textpage = MockedContent.CreateSimpleContent(contentType); - ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); - Content textpage = MockedContent.CreateSimpleContent(contentType); - - // Act - contentTypeRepository.AddOrUpdate(contentType); - repository.AddOrUpdate(textpage); - unitOfWork.Commit(); - - Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id); - repository.AddOrUpdate(subpage); - unitOfWork.Commit(); + // Act + contentTypeRepository.AddOrUpdate(contentType); + repository.AddOrUpdate(textpage); + unitOfWork.Commit(); - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(textpage.HasIdentity, Is.True); - Assert.That(subpage.HasIdentity, Is.True); - Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId)); + Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id); + repository.AddOrUpdate(subpage); + unitOfWork.Commit(); + + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(textpage.HasIdentity, Is.True); + Assert.That(subpage.HasIdentity, Is.True); + Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId)); + } + } [Test] @@ -171,27 +187,28 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); + Content textpage = MockedContent.CreateSimpleContent(contentType); - ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage"); - Content textpage = MockedContent.CreateSimpleContent(contentType); + // Act + contentTypeRepository.AddOrUpdate(contentType); + repository.AddOrUpdate(textpage); + unitOfWork.Commit(); - // Act - contentTypeRepository.AddOrUpdate(contentType); - repository.AddOrUpdate(textpage); - unitOfWork.Commit(); + var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); + Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id); + repository2.AddOrUpdate(subpage); + unitOfWork.Commit(); - var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); - Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id); - repository2.AddOrUpdate(subpage); - unitOfWork.Commit(); - - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(textpage.HasIdentity, Is.True); - Assert.That(subpage.HasIdentity, Is.True); - Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId)); + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(textpage.HasIdentity, Is.True); + Assert.That(subpage.HasIdentity, Is.True); + Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId)); + } } [Test] @@ -200,14 +217,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var content = repository.Get(1048); + bool dirty = ((Content)content).IsDirty(); - // Act - var content = repository.Get(1048); - bool dirty = ((Content) content).IsDirty(); - - // Assert - Assert.That(dirty, Is.False); + // Assert + Assert.That(dirty, Is.False); + } } [Test] @@ -216,18 +235,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var content = repository.Get(1047); + content.Name = "About 2"; + repository.AddOrUpdate(content); + unitOfWork.Commit(); + var updatedContent = repository.Get(1047); - // Act - var content = repository.Get(1047); - content.Name = "About 2"; - repository.AddOrUpdate(content); - unitOfWork.Commit(); - var updatedContent = repository.Get(1047); - - // Assert - Assert.That(updatedContent.Id, Is.EqualTo(content.Id)); - Assert.That(updatedContent.Name, Is.EqualTo(content.Name)); + // Assert + Assert.That(updatedContent.Id, Is.EqualTo(content.Id)); + Assert.That(updatedContent.Name, Is.EqualTo(content.Name)); + } + } [Test] @@ -236,27 +258,28 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var contentTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + var contentType = contentTypeRepository.Get(1045); + var content = new Content("Textpage 2 Child Node", 1048, contentType); + content.CreatorId = 0; + content.WriterId = 0; - var contentType = contentTypeRepository.Get(1045); - var content = new Content("Textpage 2 Child Node", 1048, contentType); - content.CreatorId = 0; - content.WriterId = 0; + // Act + repository.AddOrUpdate(content); + unitOfWork.Commit(); + var id = content.Id; - // Act - repository.AddOrUpdate(content); - unitOfWork.Commit(); - var id = content.Id; + var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); + repository2.Delete(content); + unitOfWork.Commit(); - var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); - repository2.Delete(content); - unitOfWork.Commit(); + var content1 = repository2.Get(id); - var content1 = repository2.Get(id); - - // Assert - Assert.That(content1, Is.Null); + // Assert + Assert.That(content1, Is.Null); + } } [Test] @@ -265,22 +288,24 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var content = repository.Get(1048); - // Act - var content = repository.Get(1048); - - // Assert - Assert.That(content.Id, Is.EqualTo(1048)); - Assert.That(content.CreateDate, Is.GreaterThan(DateTime.MinValue)); - Assert.That(content.UpdateDate, Is.GreaterThan(DateTime.MinValue)); - Assert.That(content.ParentId, Is.Not.EqualTo(0)); - Assert.That(content.Name, Is.EqualTo("Text Page 2")); - Assert.That(content.SortOrder, Is.EqualTo(1)); - Assert.That(content.Version, Is.Not.EqualTo(Guid.Empty)); - Assert.That(content.ContentTypeId, Is.EqualTo(1045)); - Assert.That(content.Path, Is.Not.Empty); - Assert.That(content.Properties.Any(), Is.True); + // Assert + Assert.That(content.Id, Is.EqualTo(1048)); + Assert.That(content.CreateDate, Is.GreaterThan(DateTime.MinValue)); + Assert.That(content.UpdateDate, Is.GreaterThan(DateTime.MinValue)); + Assert.That(content.ParentId, Is.Not.EqualTo(0)); + Assert.That(content.Name, Is.EqualTo("Text Page 2")); + Assert.That(content.SortOrder, Is.EqualTo(1)); + Assert.That(content.Version, Is.Not.EqualTo(Guid.Empty)); + Assert.That(content.ContentTypeId, Is.EqualTo(1045)); + Assert.That(content.Path, Is.Not.Empty); + Assert.That(content.Properties.Any(), Is.True); + } } [Test] @@ -289,14 +314,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var query = Query.Builder.Where(x => x.Level == 2); + var result = repository.GetByQuery(query); - // Act - var query = Query.Builder.Where(x => x.Level == 2); - var result = repository.GetByQuery(query); - - // Assert - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(2)); + // Assert + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(2)); + } } [Test] @@ -305,15 +332,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var contents = repository.GetAll(1047, 1048); - // Act - var contents = repository.GetAll(1047, 1048); - - // Assert - Assert.That(contents, Is.Not.Null); - Assert.That(contents.Any(), Is.True); - Assert.That(contents.Count(), Is.EqualTo(2)); + // Assert + Assert.That(contents, Is.Not.Null); + Assert.That(contents.Any(), Is.True); + Assert.That(contents.Count(), Is.EqualTo(2)); + } } [Test] @@ -322,15 +351,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var contents = repository.GetAll(); - // Act - var contents = repository.GetAll(); + // Assert + Assert.That(contents, Is.Not.Null); + Assert.That(contents.Any(), Is.True); + Assert.That(contents.Count(), Is.GreaterThanOrEqualTo(4)); + } - // Assert - Assert.That(contents, Is.Not.Null); - Assert.That(contents.Any(), Is.True); - Assert.That(contents.Count(), Is.GreaterThanOrEqualTo(4)); + } [Test] @@ -339,13 +372,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var exists = repository.Exists(1046); - // Act - var exists = repository.Exists(1046); + // Assert + Assert.That(exists, Is.True); + } - // Assert - Assert.That(exists, Is.True); + } [Test] @@ -354,15 +391,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + int level = 2; + var query = Query.Builder.Where(x => x.Level == level); + var result = repository.Count(query); - // Act - int level = 2; - var query = Query.Builder.Where(x => x.Level == level); - var result = repository.Count(query); - - // Assert - Assert.That(result, Is.GreaterThanOrEqualTo(2)); + // Assert + Assert.That(result, Is.GreaterThanOrEqualTo(2)); + } } [Test] @@ -371,17 +410,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var textpage = repository.Get(1046); + var subpage = repository.Get(1047); + var trashed = repository.Get(1049); - // Act - var textpage = repository.Get(1046); - var subpage = repository.Get(1047); - var trashed = repository.Get(1049); - - // Assert - Assert.That(textpage.Key.ToString().ToUpper(), Is.EqualTo("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); - Assert.That(subpage.Key.ToString().ToUpper(), Is.EqualTo("FF11402B-7E53-4654-81A7-462AC2108059")); - Assert.That(trashed.Key, Is.Not.EqualTo(Guid.Empty)); + // Assert + Assert.That(textpage.Key.ToString().ToUpper(), Is.EqualTo("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); + Assert.That(subpage.Key.ToString().ToUpper(), Is.EqualTo("FF11402B-7E53-4654-81A7-462AC2108059")); + Assert.That(trashed.Key, Is.Not.EqualTo(Guid.Empty)); + } } [Test] @@ -390,15 +431,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + // Act + var query = Query.Builder.Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); + var content = repository.GetByQuery(query).SingleOrDefault(); - // Act - var query = Query.Builder.Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0")); - var content = repository.GetByQuery(query).SingleOrDefault(); - - // Assert - Assert.That(content, Is.Not.Null); - Assert.That(content.Id, Is.EqualTo(1046)); + // Assert + Assert.That(content, Is.Not.Null); + Assert.That(content.Id, Is.EqualTo(1046)); + } } @@ -408,23 +451,26 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var content = repository.Get(1047); + ContentTypeRepository contentTypeRepository; + using (var repository = CreateRepository(unitOfWork, out contentTypeRepository)) + { + var content = repository.Get(1047); - // Act - content.Language = "da-DK"; - content.Name = "Tekst Side 1"; - repository.AddOrUpdate(content); - unitOfWork.Commit(); + // Act + content.Language = "da-DK"; + content.Name = "Tekst Side 1"; + repository.AddOrUpdate(content); + unitOfWork.Commit(); - var latest = repository.Get(1047); - var english = repository.GetByLanguage(1047, "en-US"); - var danish = repository.GetByLanguage(1047, "da-DK"); + var latest = repository.Get(1047); + var english = repository.GetByLanguage(1047, "en-US"); + var danish = repository.GetByLanguage(1047, "da-DK"); - // Assert - Assert.That(latest.Name, Is.EqualTo("Tekst Side 1")); - Assert.That(english.Name, Is.EqualTo("Text Page 1")); - Assert.That(danish.Name, Is.EqualTo("Tekst Side 1")); + // Assert + Assert.That(latest.Name, Is.EqualTo("Tekst Side 1")); + Assert.That(english.Name, Is.EqualTo("Text Page 1")); + Assert.That(danish.Name, Is.EqualTo("Tekst Side 1")); + } } public void CreateTestData() diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs index c02030d75e..a099b3c5a2 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs @@ -6,6 +6,7 @@ using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; @@ -30,10 +31,25 @@ namespace Umbraco.Tests.Persistence.Repositories base.TearDown(); } + private ContentRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository) + { + var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); + contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository); + return repository; + } + + private ContentTypeRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); + var contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); + return contentTypeRepository; + } + //TODO Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id). [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -52,18 +68,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var contentType = MockedContentTypes.CreateSimpleContentType(); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Act - var contentType = MockedContentTypes.CreateSimpleContentType(); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); - - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True); - Assert.That(contentType.Path.Contains(","), Is.True); - Assert.That(contentType.SortOrder, Is.GreaterThan(0)); + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True); + Assert.That(contentType.Path.Contains(","), Is.True); + Assert.That(contentType.SortOrder, Is.GreaterThan(0)); + } + } [Test] @@ -72,32 +90,35 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - - // Act - var contentType = repository.Get(1046); - - contentType.Thumbnail = "Doc2.png"; - contentType.PropertyGroups["Content"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) + using (var repository = CreateRepository(unitOfWork)) { - Alias = "subtitle", - Name = "Subtitle", - Description = "Optional Subtitle", - HelpText = "", - Mandatory = false, - SortOrder = 1, - DataTypeDefinitionId = -88 - }); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Act + var contentType = repository.Get(1046); - var dirty = ((ICanBeDirty) contentType).IsDirty(); + contentType.Thumbnail = "Doc2.png"; + contentType.PropertyGroups["Content"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) + { + Alias = "subtitle", + Name = "Subtitle", + Description = "Optional Subtitle", + HelpText = "", + Mandatory = false, + SortOrder = 1, + DataTypeDefinitionId = -88 + }); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(dirty, Is.False); - Assert.That(contentType.Thumbnail, Is.EqualTo("Doc2.png")); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True); + var dirty = ((ICanBeDirty)contentType).IsDirty(); + + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(dirty, Is.False); + Assert.That(contentType.Thumbnail, Is.EqualTo("Doc2.png")); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True); + } + + } [Test] @@ -106,21 +127,22 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var contentType = MockedContentTypes.CreateSimpleContentType(); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Act - var contentType = MockedContentTypes.CreateSimpleContentType(); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + var contentType2 = repository.Get(contentType.Id); + repository.Delete(contentType2); + unitOfWork.Commit(); - var contentType2 = repository.Get(contentType.Id); - repository.Delete(contentType2); - unitOfWork.Commit(); + var exists = repository.Exists(contentType.Id); - var exists = repository.Exists(contentType.Id); - - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -129,14 +151,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var contentType = repository.Get(1046); + // Act + var contentType = repository.Get(1046); - // Assert - Assert.That(contentType, Is.Not.Null); - Assert.That(contentType.Id, Is.EqualTo(1046)); + // Assert + Assert.That(contentType, Is.Not.Null); + Assert.That(contentType.Id, Is.EqualTo(1046)); + } } [Test] @@ -145,18 +169,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var contentTypes = repository.GetAll(); - int count = - DatabaseContext.Database.ExecuteScalar( - "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", - new { NodeObjectType = new Guid(Constants.ObjectTypes.DocumentType) }); + // Act + var contentTypes = repository.GetAll(); + int count = + DatabaseContext.Database.ExecuteScalar( + "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", + new {NodeObjectType = new Guid(Constants.ObjectTypes.DocumentType)}); - // Assert - Assert.That(contentTypes.Any(), Is.True); - Assert.That(contentTypes.Count(), Is.EqualTo(count)); + // Assert + Assert.That(contentTypes.Any(), Is.True); + Assert.That(contentTypes.Count(), Is.EqualTo(count)); + } } [Test] @@ -165,13 +191,15 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var exists = repository.Exists(1045); + // Act + var exists = repository.Exists(1045); - // Assert - Assert.That(exists, Is.True); + // Assert + Assert.That(exists, Is.True); + } } [Test] @@ -180,21 +208,23 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + using (var repository = CreateRepository(unitOfWork)) + { + var contentType = repository.Get(1046); - // Act - var contentType2 = repository.Get(1046); - contentType2.PropertyGroups["Meta"].PropertyTypes.Remove("metaDescription"); - repository.AddOrUpdate(contentType2); - unitOfWork.Commit(); + // Act + var contentType2 = repository.Get(1046); + contentType2.PropertyGroups["Meta"].PropertyTypes.Remove("metaDescription"); + repository.AddOrUpdate(contentType2); + unitOfWork.Commit(); - var contentType3 = repository.Get(1046); + var contentType3 = repository.Get(1046); - // Assert - Assert.That(contentType3.PropertyTypes.Any(x => x.Alias == "metaDescription"), Is.False); - Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(contentType3.PropertyGroups.Count)); - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(contentType3.PropertyTypes.Count())); + // Assert + Assert.That(contentType3.PropertyTypes.Any(x => x.Alias == "metaDescription"), Is.False); + Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(contentType3.PropertyGroups.Count)); + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(contentType3.PropertyTypes.Count())); + } } [Test] @@ -203,14 +233,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var contentType = repository.Get(1045); + // Act + var contentType = repository.Get(1045); - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); - Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); + Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + } } [Test] @@ -219,14 +251,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var contentType = repository.Get(1046); + // Act + var contentType = repository.Get(1046); - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4)); - Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(2)); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4)); + Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(2)); + } } [Test] @@ -235,32 +269,34 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + using (var repository = CreateRepository(unitOfWork)) + { + var contentType = repository.Get(1046); - // Act - var urlAlias = new PropertyType(new Guid(), DataTypeDatabaseType.Nvarchar) - { - Alias = "urlAlias", - Name = "Url Alias", - Description = "", - HelpText = "", - Mandatory = false, - SortOrder = 1, - DataTypeDefinitionId = -88 - }; - - var addedPropertyType = contentType.AddPropertyType(urlAlias); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Act + var urlAlias = new PropertyType(new Guid(), DataTypeDatabaseType.Nvarchar) + { + Alias = "urlAlias", + Name = "Url Alias", + Description = "", + HelpText = "", + Mandatory = false, + SortOrder = 1, + DataTypeDefinitionId = -88 + }; - // Assert - var updated = repository.Get(1046); - Assert.That(addedPropertyType, Is.True); - Assert.That(updated.PropertyGroups.Count(), Is.EqualTo(2)); - Assert.That(updated.PropertyTypes.Count(), Is.EqualTo(5)); - Assert.That(updated.PropertyTypes.Any(x => x.Alias == "urlAlias"), Is.True); - Assert.That(updated.PropertyTypes.First(x => x.Alias == "urlAlias").PropertyGroupId, Is.Null); + var addedPropertyType = contentType.AddPropertyType(urlAlias); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); + + // Assert + var updated = repository.Get(1046); + Assert.That(addedPropertyType, Is.True); + Assert.That(updated.PropertyGroups.Count(), Is.EqualTo(2)); + Assert.That(updated.PropertyTypes.Count(), Is.EqualTo(5)); + Assert.That(updated.PropertyTypes.Any(x => x.Alias == "urlAlias"), Is.True); + Assert.That(updated.PropertyTypes.First(x => x.Alias == "urlAlias").PropertyGroupId, Is.Null); + } } [Test] @@ -269,40 +305,42 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var subpageContentType = MockedContentTypes.CreateSimpleContentType("umbSubpage", "Subpage"); - var simpleSubpageContentType = MockedContentTypes.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage"); - repository.AddOrUpdate(subpageContentType); - repository.AddOrUpdate(simpleSubpageContentType); - unitOfWork.Commit(); + var subpageContentType = MockedContentTypes.CreateSimpleContentType("umbSubpage", "Subpage"); + var simpleSubpageContentType = MockedContentTypes.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage"); + repository.AddOrUpdate(subpageContentType); + repository.AddOrUpdate(simpleSubpageContentType); + unitOfWork.Commit(); - // Act - var contentType = repository.Get(1045); - contentType.AllowedContentTypes = new List - { - new ContentTypeSort - { - Alias = subpageContentType.Alias, - Id = new Lazy(() => subpageContentType.Id), - SortOrder = 0 - }, - new ContentTypeSort - { - Alias = simpleSubpageContentType.Alias, - Id = new Lazy(() => simpleSubpageContentType.Id), - SortOrder = 1 - } - }; - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Act + var contentType = repository.Get(1045); + contentType.AllowedContentTypes = new List + { + new ContentTypeSort + { + Alias = subpageContentType.Alias, + Id = new Lazy(() => subpageContentType.Id), + SortOrder = 0 + }, + new ContentTypeSort + { + Alias = simpleSubpageContentType.Alias, + Id = new Lazy(() => simpleSubpageContentType.Id), + SortOrder = 1 + } + }; + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - //Assert - var updated = repository.Get(1045); + //Assert + var updated = repository.Get(1045); - Assert.That(updated.AllowedContentTypes.Any(), Is.True); - Assert.That(updated.AllowedContentTypes.Any(x => x.Alias == subpageContentType.Alias), Is.True); - Assert.That(updated.AllowedContentTypes.Any(x => x.Alias == simpleSubpageContentType.Alias), Is.True); + Assert.That(updated.AllowedContentTypes.Any(), Is.True); + Assert.That(updated.AllowedContentTypes.Any(x => x.Alias == subpageContentType.Alias), Is.True); + Assert.That(updated.AllowedContentTypes.Any(x => x.Alias == simpleSubpageContentType.Alias), Is.True); + } } [Test] @@ -311,23 +349,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + ContentTypeRepository repository; + using (var contentRepository = CreateRepository(unitOfWork, out repository)) + { + var contentType = repository.Get(1046); - var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); - contentRepository.AddOrUpdate(subpage); - unitOfWork.Commit(); + var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); + contentRepository.AddOrUpdate(subpage); + unitOfWork.Commit(); - // Act - contentType.RemovePropertyType("keywords"); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Act + contentType.RemovePropertyType("keywords"); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "keywords"), Is.False); - Assert.That(subpage.Properties.First(x => x.Alias == "metaDescription").Value, Is.EqualTo("This is the meta description for a textpage")); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "keywords"), Is.False); + Assert.That(subpage.Properties.First(x => x.Alias == "metaDescription").Value, Is.EqualTo("This is the meta description for a textpage")); + } } [Test] @@ -336,23 +376,26 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + ContentTypeRepository repository; + using (var contentRepository = CreateRepository(unitOfWork, out repository)) + { + var contentType = repository.Get(1046); - var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); - contentRepository.AddOrUpdate(subpage); - unitOfWork.Commit(); + var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); + contentRepository.AddOrUpdate(subpage); + unitOfWork.Commit(); - // Act - var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); - propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Act + var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); + propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); + } + } [Test] @@ -361,30 +404,32 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + ContentTypeRepository repository; + using (var contentRepository = CreateRepository(unitOfWork, out repository)) + { + var contentType = repository.Get(1046); - var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); - contentRepository.AddOrUpdate(subpage); - unitOfWork.Commit(); + var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); + contentRepository.AddOrUpdate(subpage); + unitOfWork.Commit(); - var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); - propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); + propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) {Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88}); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Act - var content = contentRepository.Get(subpage.Id); - content.SetValue("metaAuthor", "John Doe"); - contentRepository.AddOrUpdate(content); - unitOfWork.Commit(); + // Act + var content = contentRepository.Get(subpage.Id); + content.SetValue("metaAuthor", "John Doe"); + contentRepository.AddOrUpdate(content); + unitOfWork.Commit(); - //Assert - var updated = contentRepository.Get(subpage.Id); - Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe")); - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); + //Assert + var updated = contentRepository.Get(subpage.Id); + Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe")); + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5)); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); + } } [Test] @@ -395,36 +440,38 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var contentType = repository.Get(1046); + ContentTypeRepository repository; + using (var contentRepository = CreateRepository(unitOfWork, out repository)) + { + var contentType = repository.Get(1046); - var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); - contentRepository.AddOrUpdate(subpage); - unitOfWork.Commit(); + var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id); + contentRepository.AddOrUpdate(subpage); + unitOfWork.Commit(); - //Remove PropertyType - contentType.RemovePropertyType("keywords"); - //Add PropertyType - var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); - propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + //Remove PropertyType + contentType.RemovePropertyType("keywords"); + //Add PropertyType + var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta"); + propertyGroup.PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) {Alias = "metaAuthor", Name = "Meta Author", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88}); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Act - var content = contentRepository.Get(subpage.Id); - content.SetValue("metaAuthor", "John Doe"); - contentRepository.AddOrUpdate(content); - unitOfWork.Commit(); + // Act + var content = contentRepository.Get(subpage.Id); + content.SetValue("metaAuthor", "John Doe"); + contentRepository.AddOrUpdate(content); + unitOfWork.Commit(); - //Assert - var updated = contentRepository.Get(subpage.Id); - Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe")); - Assert.That(updated.Properties.First(x => x.Alias == "metaDescription").Value, Is.EqualTo("This is the meta description for a textpage")); + //Assert + var updated = contentRepository.Get(subpage.Id); + Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe")); + Assert.That(updated.Properties.First(x => x.Alias == "metaDescription").Value, Is.EqualTo("This is the meta description for a textpage")); - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4)); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); - Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "keywords"), Is.False); + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4)); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True); + Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "keywords"), Is.False); + } } public void CreateTestData() diff --git a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs index 0f19a5083f..3825677fa8 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs @@ -4,6 +4,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; +using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; @@ -21,15 +22,21 @@ namespace Umbraco.Tests.Persistence.Repositories base.Initialize(); } + private DataTypeDefinitionRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + var dataTypeDefinitionRepository = new DataTypeDefinitionRepository(unitOfWork, NullCacheProvider.Current); + return dataTypeDefinitionRepository; + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new DataTypeDefinitionRepository(unitOfWork); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); @@ -41,15 +48,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var dataTypeDefinition = repository.Get(-42); - // Act - var dataTypeDefinition = repository.Get(-42); - - // Assert - Assert.That(dataTypeDefinition, Is.Not.Null); - Assert.That(dataTypeDefinition.HasIdentity, Is.True); - Assert.That(dataTypeDefinition.Name, Is.EqualTo("Dropdown")); + // Assert + Assert.That(dataTypeDefinition, Is.Not.Null); + Assert.That(dataTypeDefinition.HasIdentity, Is.True); + Assert.That(dataTypeDefinition.Name, Is.EqualTo("Dropdown")); + } + } [Test] @@ -58,16 +67,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var dataTypeDefinitions = repository.GetAll(); + // Act + var dataTypeDefinitions = repository.GetAll(); - // Assert - Assert.That(dataTypeDefinitions, Is.Not.Null); - Assert.That(dataTypeDefinitions.Any(), Is.True); - Assert.That(dataTypeDefinitions.Any(x => x == null), Is.False); - Assert.That(dataTypeDefinitions.Count(), Is.EqualTo(24)); + // Assert + Assert.That(dataTypeDefinitions, Is.Not.Null); + Assert.That(dataTypeDefinitions.Any(), Is.True); + Assert.That(dataTypeDefinitions.Any(x => x == null), Is.False); + Assert.That(dataTypeDefinitions.Count(), Is.EqualTo(24)); + } } [Test] @@ -76,16 +87,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var dataTypeDefinitions = repository.GetAll(-40, -41, -42); + // Act + var dataTypeDefinitions = repository.GetAll(-40, -41, -42); - // Assert - Assert.That(dataTypeDefinitions, Is.Not.Null); - Assert.That(dataTypeDefinitions.Any(), Is.True); - Assert.That(dataTypeDefinitions.Any(x => x == null), Is.False); - Assert.That(dataTypeDefinitions.Count(), Is.EqualTo(3)); + // Assert + Assert.That(dataTypeDefinitions, Is.Not.Null); + Assert.That(dataTypeDefinitions.Any(), Is.True); + Assert.That(dataTypeDefinitions.Any(x => x == null), Is.False); + Assert.That(dataTypeDefinitions.Count(), Is.EqualTo(3)); + } } [Test] @@ -94,16 +107,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork, NullCacheProvider.Current); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var query = Query.Builder.Where(x => x.ControlId == new Guid(Constants.PropertyEditors.RadioButtonList)); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.ControlId == new Guid(Constants.PropertyEditors.RadioButtonList)); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.FirstOrDefault().Name, Is.EqualTo("Radiobox")); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.FirstOrDefault().Name, Is.EqualTo("Radiobox")); + } } [Test] @@ -112,14 +127,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var query = Query.Builder.Where(x => x.Name.StartsWith("D")); - int count = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.Name.StartsWith("D")); + int count = repository.Count(query); - // Assert - Assert.That(count, Is.EqualTo(4)); + // Assert + Assert.That(count, Is.EqualTo(4)); + } } [Test] @@ -128,23 +145,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) - { - DatabaseType = DataTypeDatabaseType.Integer, - Name = "AgeDataType", - CreatorId = 0 - }; + var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) + { + DatabaseType = DataTypeDatabaseType.Integer, + Name = "AgeDataType", + CreatorId = 0 + }; - // Act - repository.AddOrUpdate(dataTypeDefinition); - unitOfWork.Commit(); - var exists = repository.Exists(dataTypeDefinition.Id); + // Act + repository.AddOrUpdate(dataTypeDefinition); + unitOfWork.Commit(); + var exists = repository.Exists(dataTypeDefinition.Id); - // Assert - Assert.That(dataTypeDefinition.HasIdentity, Is.True); - Assert.That(exists, Is.True); + // Assert + Assert.That(dataTypeDefinition.HasIdentity, Is.True); + Assert.That(exists, Is.True); + } } [Test] @@ -153,28 +172,30 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) - { - DatabaseType = DataTypeDatabaseType.Integer, - Name = "AgeDataType", - CreatorId = 0 - }; - repository.AddOrUpdate(dataTypeDefinition); - unitOfWork.Commit(); + var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) + { + DatabaseType = DataTypeDatabaseType.Integer, + Name = "AgeDataType", + CreatorId = 0 + }; + repository.AddOrUpdate(dataTypeDefinition); + unitOfWork.Commit(); - // Act - var definition = repository.Get(dataTypeDefinition.Id); - definition.Name = "AgeDataType Updated"; - repository.AddOrUpdate(definition); - unitOfWork.Commit(); + // Act + var definition = repository.Get(dataTypeDefinition.Id); + definition.Name = "AgeDataType Updated"; + repository.AddOrUpdate(definition); + unitOfWork.Commit(); - var definitionUpdated = repository.Get(dataTypeDefinition.Id); + var definitionUpdated = repository.Get(dataTypeDefinition.Id); - // Assert - Assert.That(definitionUpdated, Is.Not.Null); - Assert.That(definitionUpdated.Name, Is.EqualTo("AgeDataType Updated")); + // Assert + Assert.That(definitionUpdated, Is.Not.Null); + Assert.That(definitionUpdated.Name, Is.EqualTo("AgeDataType Updated")); + } } [Test] @@ -183,28 +204,30 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) - { - DatabaseType = DataTypeDatabaseType.Integer, - Name = "AgeDataType", - CreatorId = 0 - }; + var dataTypeDefinition = new DataTypeDefinition(-1, new Guid("0FE4B127-D48C-4807-8371-67FC2A0E27D7")) + { + DatabaseType = DataTypeDatabaseType.Integer, + Name = "AgeDataType", + CreatorId = 0 + }; - // Act - repository.AddOrUpdate(dataTypeDefinition); - unitOfWork.Commit(); - var existsBefore = repository.Exists(dataTypeDefinition.Id); + // Act + repository.AddOrUpdate(dataTypeDefinition); + unitOfWork.Commit(); + var existsBefore = repository.Exists(dataTypeDefinition.Id); - repository.Delete(dataTypeDefinition); - unitOfWork.Commit(); + repository.Delete(dataTypeDefinition); + unitOfWork.Commit(); - var existsAfter = repository.Exists(dataTypeDefinition.Id); + var existsAfter = repository.Exists(dataTypeDefinition.Id); - // Assert - Assert.That(existsBefore, Is.True); - Assert.That(existsAfter, Is.False); + // Assert + Assert.That(existsBefore, Is.True); + Assert.That(existsAfter, Is.False); + } } [Test] @@ -213,15 +236,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new DataTypeDefinitionRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var exists = repository.Exists(1042);//Macro Container - var doesntExist = repository.Exists(-80); + // Act + var exists = repository.Exists(1042); //Macro Container + var doesntExist = repository.Exists(-80); - // Assert - Assert.That(exists, Is.True); - Assert.That(doesntExist, Is.False); + // Assert + Assert.That(exists, Is.True); + Assert.That(doesntExist, Is.False); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs index fe841d804b..554c0f7ec4 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs @@ -2,6 +2,8 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -20,16 +22,22 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private DictionaryRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out LanguageRepository languageRepository) + { + languageRepository = new LanguageRepository(unitOfWork, NullCacheProvider.Current); + var dictionaryRepository = new DictionaryRepository(unitOfWork, NullCacheProvider.Current, languageRepository); + return dictionaryRepository; + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); @@ -41,19 +49,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { + // Act + var dictionaryItem = repository.Get(1); - // Act - var dictionaryItem = repository.Get(1); - - // Assert - Assert.That(dictionaryItem, Is.Not.Null); - Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Read More")); - Assert.That(dictionaryItem.Translations.Any(), Is.True); - Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False); - Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Read More")); - Assert.That(dictionaryItem.Translations.Last().Value, Is.EqualTo("Læs mere")); + // Assert + Assert.That(dictionaryItem, Is.Not.Null); + Assert.That(dictionaryItem.ItemKey, Is.EqualTo("Read More")); + Assert.That(dictionaryItem.Translations.Any(), Is.True); + Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False); + Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Read More")); + Assert.That(dictionaryItem.Translations.Last().Value, Is.EqualTo("Læs mere")); + } + } [Test] @@ -62,18 +72,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var dictionaryItem = repository.Get(1); - var dictionaryItems = repository.GetAll(); + // Act + var dictionaryItem = repository.Get(1); + var dictionaryItems = repository.GetAll(); - // Assert - Assert.That(dictionaryItems, Is.Not.Null); - Assert.That(dictionaryItems.Any(), Is.True); - Assert.That(dictionaryItems.Any(x => x == null), Is.False); - Assert.That(dictionaryItems.Count(), Is.EqualTo(2)); + // Assert + Assert.That(dictionaryItems, Is.Not.Null); + Assert.That(dictionaryItems.Any(), Is.True); + Assert.That(dictionaryItems.Any(x => x == null), Is.False); + Assert.That(dictionaryItems.Count(), Is.EqualTo(2)); + } } [Test] @@ -82,17 +94,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var dictionaryItems = repository.GetAll(1, 2); + // Act + var dictionaryItems = repository.GetAll(1, 2); - // Assert - Assert.That(dictionaryItems, Is.Not.Null); - Assert.That(dictionaryItems.Any(), Is.True); - Assert.That(dictionaryItems.Any(x => x == null), Is.False); - Assert.That(dictionaryItems.Count(), Is.EqualTo(2)); + // Assert + Assert.That(dictionaryItems, Is.Not.Null); + Assert.That(dictionaryItems.Any(), Is.True); + Assert.That(dictionaryItems.Any(x => x == null), Is.False); + Assert.That(dictionaryItems.Count(), Is.EqualTo(2)); + } } [Test] @@ -101,17 +115,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var query = Query.Builder.Where(x => x.ItemKey == "Article"); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.ItemKey == "Article"); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.FirstOrDefault().ItemKey, Is.EqualTo("Article")); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.FirstOrDefault().ItemKey, Is.EqualTo("Article")); + } } [Test] @@ -120,15 +136,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var query = Query.Builder.Where(x => x.ItemKey.StartsWith("Read")); - var result = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.ItemKey.StartsWith("Read")); + var result = repository.Count(query); - // Assert - Assert.That(result, Is.EqualTo(1)); + // Assert + Assert.That(result, Is.EqualTo(1)); + } } [Test] @@ -137,54 +155,58 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - var language = languageRepository.Get(1); + var language = languageRepository.Get(1); - var read = new DictionaryItem("Read"); - var translations = new List - { - new DictionaryTranslation(language, "Read") - }; - read.Translations = translations; + var read = new DictionaryItem("Read"); + var translations = new List + { + new DictionaryTranslation(language, "Read") + }; + read.Translations = translations; - // Act - repository.AddOrUpdate(read); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(read); + unitOfWork.Commit(); - var exists = repository.Exists(read.Id); + var exists = repository.Exists(read.Id); - // Assert - Assert.That(read.HasIdentity, Is.True); - Assert.That(exists, Is.True); + // Assert + Assert.That(read.HasIdentity, Is.True); + Assert.That(exists, Is.True); + } } - [Ignore] + [NUnit.Framework.Ignore] [Test] public void Can_Perform_Update_On_DictionaryRepository() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var item = repository.Get(1); - var translations = item.Translations.ToList(); - translations[0].Value = "Read even more"; - item.Translations = translations; + // Act + var item = repository.Get(1); + var translations = item.Translations.ToList(); + translations[0].Value = "Read even more"; + item.Translations = translations; - repository.AddOrUpdate(item); - unitOfWork.Commit(); + repository.AddOrUpdate(item); + unitOfWork.Commit(); - var dictionaryItem = repository.Get(1); + var dictionaryItem = repository.Get(1); - // Assert - Assert.That(dictionaryItem, Is.Not.Null); - Assert.That(dictionaryItem.Translations.Count(), Is.EqualTo(2)); - Assert.That(dictionaryItem.Translations.FirstOrDefault().Value, Is.EqualTo("Read even more")); + // Assert + Assert.That(dictionaryItem, Is.Not.Null); + Assert.That(dictionaryItem.Translations.Count(), Is.EqualTo(2)); + Assert.That(dictionaryItem.Translations.FirstOrDefault().Value, Is.EqualTo("Read even more")); + } } [Test] @@ -193,18 +215,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var item = repository.Get(1); - repository.Delete(item); - unitOfWork.Commit(); + // Act + var item = repository.Get(1); + repository.Delete(item); + unitOfWork.Commit(); - var exists = repository.Exists(1); + var exists = repository.Exists(1); - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -213,14 +237,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var languageRepository = new LanguageRepository(unitOfWork); - var repository = new DictionaryRepository(unitOfWork, languageRepository); + LanguageRepository languageRepository; + using (var repository = CreateRepository(unitOfWork, out languageRepository)) + { - // Act - var exists = repository.Exists(1); + // Act + var exists = repository.Exists(1); - // Assert - Assert.That(exists, Is.True); + // Assert + Assert.That(exists, Is.True); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs index f4b7529c0e..c1ac5fa6a9 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/LanguageRepositoryTest.cs @@ -1,6 +1,8 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -19,15 +21,20 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private LanguageRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + return new LanguageRepository(unitOfWork, NullCacheProvider.Current); + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new LanguageRepository(unitOfWork); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); @@ -39,16 +46,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var language = repository.Get(1); - // Act - var language = repository.Get(1); - - // Assert - Assert.That(language, Is.Not.Null); - Assert.That(language.HasIdentity, Is.True); - Assert.That(language.CultureName, Is.EqualTo("en-US")); - Assert.That(language.IsoCode, Is.EqualTo("en-US")); + // Assert + Assert.That(language, Is.Not.Null); + Assert.That(language.HasIdentity, Is.True); + Assert.That(language.CultureName, Is.EqualTo("en-US")); + Assert.That(language.IsoCode, Is.EqualTo("en-US")); + } } [Test] @@ -57,16 +65,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var languages = repository.GetAll(); + // Act + var languages = repository.GetAll(); - // Assert - Assert.That(languages, Is.Not.Null); - Assert.That(languages.Any(), Is.True); - Assert.That(languages.Any(x => x == null), Is.False); - Assert.That(languages.Count(), Is.EqualTo(5)); + // Assert + Assert.That(languages, Is.Not.Null); + Assert.That(languages.Any(), Is.True); + Assert.That(languages.Any(x => x == null), Is.False); + Assert.That(languages.Count(), Is.EqualTo(5)); + } } [Test] @@ -75,16 +85,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var languages = repository.GetAll(1, 2); + // Act + var languages = repository.GetAll(1, 2); - // Assert - Assert.That(languages, Is.Not.Null); - Assert.That(languages.Any(), Is.True); - Assert.That(languages.Any(x => x == null), Is.False); - Assert.That(languages.Count(), Is.EqualTo(2)); + // Assert + Assert.That(languages, Is.Not.Null); + Assert.That(languages.Any(), Is.True); + Assert.That(languages.Any(x => x == null), Is.False); + Assert.That(languages.Count(), Is.EqualTo(2)); + } } [Test] @@ -93,16 +105,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var query = Query.Builder.Where(x => x.IsoCode == "da-DK"); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.IsoCode == "da-DK"); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.FirstOrDefault().CultureName, Is.EqualTo("da-DK")); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.FirstOrDefault().CultureName, Is.EqualTo("da-DK")); + } } [Test] @@ -111,14 +125,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var query = Query.Builder.Where(x => x.IsoCode.StartsWith("D")); - int count = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.IsoCode.StartsWith("D")); + int count = repository.Count(query); - // Assert - Assert.That(count, Is.EqualTo(2)); + // Assert + Assert.That(count, Is.EqualTo(2)); + } } [Test] @@ -127,16 +143,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var languageBR = new Language("pt-BR") { CultureName = "pt-BR" }; - repository.AddOrUpdate(languageBR); - unitOfWork.Commit(); + // Act + var languageBR = new Language("pt-BR") {CultureName = "pt-BR"}; + repository.AddOrUpdate(languageBR); + unitOfWork.Commit(); - // Assert - Assert.That(languageBR.HasIdentity, Is.True); - Assert.That(languageBR.Id, Is.EqualTo(6));//With 5 existing entries the Id should be 6 + // Assert + Assert.That(languageBR.HasIdentity, Is.True); + Assert.That(languageBR.Id, Is.EqualTo(6)); //With 5 existing entries the Id should be 6 + } } [Test] @@ -145,22 +163,24 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var language = repository.Get(5); - language.IsoCode = "pt-BR"; - language.CultureName = "pt-BR"; + // Act + var language = repository.Get(5); + language.IsoCode = "pt-BR"; + language.CultureName = "pt-BR"; - repository.AddOrUpdate(language); - unitOfWork.Commit(); + repository.AddOrUpdate(language); + unitOfWork.Commit(); - var languageUpdated = repository.Get(5); + var languageUpdated = repository.Get(5); - // Assert - Assert.That(languageUpdated, Is.Not.Null); - Assert.That(languageUpdated.IsoCode, Is.EqualTo("pt-BR")); - Assert.That(languageUpdated.CultureName, Is.EqualTo("pt-BR")); + // Assert + Assert.That(languageUpdated, Is.Not.Null); + Assert.That(languageUpdated.IsoCode, Is.EqualTo("pt-BR")); + Assert.That(languageUpdated.CultureName, Is.EqualTo("pt-BR")); + } } [Test] @@ -169,17 +189,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var language = repository.Get(3); - repository.Delete(language); - unitOfWork.Commit(); + // Act + var language = repository.Get(3); + repository.Delete(language); + unitOfWork.Commit(); - var exists = repository.Exists(3); + var exists = repository.Exists(3); - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -188,15 +210,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new LanguageRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var exists = repository.Exists(3); - var doesntExist = repository.Exists(10); + // Act + var exists = repository.Exists(3); + var doesntExist = repository.Exists(10); - // Assert - Assert.That(exists, Is.True); - Assert.That(doesntExist, Is.False); + // Assert + Assert.That(exists, Is.True); + Assert.That(doesntExist, Is.False); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs index b022b0ff97..28d89f4baf 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs @@ -5,6 +5,7 @@ using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -26,8 +27,15 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private MediaRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MediaTypeRepository mediaTypeRepository) + { + mediaTypeRepository = new MediaTypeRepository(unitOfWork, NullCacheProvider.Current); + var repository = new MediaRepository(unitOfWork, NullCacheProvider.Current, mediaTypeRepository); + return repository; + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -46,20 +54,22 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var mediaTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - var mediaType = mediaTypeRepository.Get(1032); - var image = MockedMedia.CreateMediaImage(mediaType, -1); + var mediaType = mediaTypeRepository.Get(1032); + var image = MockedMedia.CreateMediaImage(mediaType, -1); - // Act - mediaTypeRepository.AddOrUpdate(mediaType); - repository.AddOrUpdate(image); - unitOfWork.Commit(); + // Act + mediaTypeRepository.AddOrUpdate(mediaType); + repository.AddOrUpdate(image); + unitOfWork.Commit(); - // Assert - Assert.That(mediaType.HasIdentity, Is.True); - Assert.That(image.HasIdentity, Is.True); + // Assert + Assert.That(mediaType.HasIdentity, Is.True); + Assert.That(image.HasIdentity, Is.True); + } } [Test] @@ -68,27 +78,29 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var mediaTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - var mediaType = mediaTypeRepository.Get(1032); - var file = MockedMedia.CreateMediaFile(mediaType, -1); + var mediaType = mediaTypeRepository.Get(1032); + var file = MockedMedia.CreateMediaFile(mediaType, -1); - // Act - repository.AddOrUpdate(file); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(file); + unitOfWork.Commit(); - var image = MockedMedia.CreateMediaImage(mediaType, -1); - repository.AddOrUpdate(image); - unitOfWork.Commit(); + var image = MockedMedia.CreateMediaImage(mediaType, -1); + repository.AddOrUpdate(image); + unitOfWork.Commit(); - // Assert - Assert.That(file.HasIdentity, Is.True); - Assert.That(image.HasIdentity, Is.True); - Assert.That(file.Name, Is.EqualTo("Test File")); - Assert.That(image.Name, Is.EqualTo("Test Image")); - Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id)); - Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id)); + // Assert + Assert.That(file.HasIdentity, Is.True); + Assert.That(image.HasIdentity, Is.True); + Assert.That(file.Name, Is.EqualTo("Test File")); + Assert.That(image.Name, Is.EqualTo("Test Image")); + Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id)); + Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id)); + } } [Test] @@ -97,27 +109,29 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var mediaTypeRepository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - var mediaType = mediaTypeRepository.Get(1032); - var file = MockedMedia.CreateMediaFile(mediaType, -1); + var mediaType = mediaTypeRepository.Get(1032); + var file = MockedMedia.CreateMediaFile(mediaType, -1); - // Act - repository.AddOrUpdate(file); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(file); + unitOfWork.Commit(); - var image = MockedMedia.CreateMediaImage(mediaType, -1); - repository.AddOrUpdate(image); - unitOfWork.Commit(); + var image = MockedMedia.CreateMediaImage(mediaType, -1); + repository.AddOrUpdate(image); + unitOfWork.Commit(); - // Assert - Assert.That(file.HasIdentity, Is.True); - Assert.That(image.HasIdentity, Is.True); - Assert.That(file.Name, Is.EqualTo("Test File")); - Assert.That(image.Name, Is.EqualTo("Test Image")); - Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id)); - Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id)); + // Assert + Assert.That(file.HasIdentity, Is.True); + Assert.That(image.HasIdentity, Is.True); + Assert.That(file.Name, Is.EqualTo("Test File")); + Assert.That(image.Name, Is.EqualTo("Test Image")); + Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id)); + Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id)); + } } [Test] @@ -126,14 +140,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var media = repository.Get(1046); - bool dirty = ((ICanBeDirty)media).IsDirty(); + // Act + var media = repository.Get(1046); + bool dirty = ((ICanBeDirty) media).IsDirty(); - // Assert - Assert.That(dirty, Is.False); + // Assert + Assert.That(dirty, Is.False); + } } [Test] @@ -142,19 +159,22 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var content = repository.Get(1047); - content.Name = "Test File Updated"; - repository.AddOrUpdate(content); - unitOfWork.Commit(); + // Act + var content = repository.Get(1047); + content.Name = "Test File Updated"; + repository.AddOrUpdate(content); + unitOfWork.Commit(); - var updatedContent = repository.Get(1047); + var updatedContent = repository.Get(1047); - // Assert - Assert.That(updatedContent.Id, Is.EqualTo(content.Id)); - Assert.That(updatedContent.Name, Is.EqualTo(content.Name)); + // Assert + Assert.That(updatedContent.Id, Is.EqualTo(content.Id)); + Assert.That(updatedContent.Name, Is.EqualTo(content.Name)); + } } [Test] @@ -163,19 +183,22 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var media = repository.Get(1047); - repository.Delete(media); - unitOfWork.Commit(); + // Act + var media = repository.Get(1047); + repository.Delete(media); + unitOfWork.Commit(); - var deleted = repository.Get(1047); - var exists = repository.Exists(1047); + var deleted = repository.Get(1047); + var exists = repository.Exists(1047); - // Assert - Assert.That(deleted, Is.Null); - Assert.That(exists, Is.False); + // Assert + Assert.That(deleted, Is.Null); + Assert.That(exists, Is.False); + } } [Test] @@ -184,22 +207,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var media = repository.Get(1046); + // Act + var media = repository.Get(1046); - // Assert - Assert.That(media.Id, Is.EqualTo(1046)); - Assert.That(media.CreateDate, Is.GreaterThan(DateTime.MinValue)); - Assert.That(media.UpdateDate, Is.GreaterThan(DateTime.MinValue)); - Assert.That(media.ParentId, Is.Not.EqualTo(0)); - Assert.That(media.Name, Is.EqualTo("Test Image")); - Assert.That(media.SortOrder, Is.EqualTo(0)); - Assert.That(media.Version, Is.Not.EqualTo(Guid.Empty)); - Assert.That(media.ContentTypeId, Is.EqualTo(1032)); - Assert.That(media.Path, Is.Not.Empty); - Assert.That(media.Properties.Any(), Is.True); + // Assert + Assert.That(media.Id, Is.EqualTo(1046)); + Assert.That(media.CreateDate, Is.GreaterThan(DateTime.MinValue)); + Assert.That(media.UpdateDate, Is.GreaterThan(DateTime.MinValue)); + Assert.That(media.ParentId, Is.Not.EqualTo(0)); + Assert.That(media.Name, Is.EqualTo("Test Image")); + Assert.That(media.SortOrder, Is.EqualTo(0)); + Assert.That(media.Version, Is.Not.EqualTo(Guid.Empty)); + Assert.That(media.ContentTypeId, Is.EqualTo(1032)); + Assert.That(media.Path, Is.Not.Empty); + Assert.That(media.Properties.Any(), Is.True); + } } [Test] @@ -208,14 +234,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var query = Query.Builder.Where(x => x.Level == 2); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.Level == 2); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(2));//There should be two entities on level 2: File and Media + // Assert + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(2)); //There should be two entities on level 2: File and Media + } } [Test] @@ -224,15 +253,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var medias = repository.GetAll(1046, 1047); + // Act + var medias = repository.GetAll(1046, 1047); - // Assert - Assert.That(medias, Is.Not.Null); - Assert.That(medias.Any(), Is.True); - Assert.That(medias.Count(), Is.EqualTo(2)); + // Assert + Assert.That(medias, Is.Not.Null); + Assert.That(medias.Any(), Is.True); + Assert.That(medias.Count(), Is.EqualTo(2)); + } } [Test] @@ -241,15 +273,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var medias = repository.GetAll(); + // Act + var medias = repository.GetAll(); - // Assert - Assert.That(medias, Is.Not.Null); - Assert.That(medias.Any(), Is.True); - Assert.That(medias.Count(), Is.GreaterThanOrEqualTo(3)); + // Assert + Assert.That(medias, Is.Not.Null); + Assert.That(medias.Any(), Is.True); + Assert.That(medias.Count(), Is.GreaterThanOrEqualTo(3)); + } } [Test] @@ -258,17 +293,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - var exists = repository.Exists(1046); - var existsToo = repository.Exists(1046); - var doesntExists = repository.Exists(1050); + // Act + var exists = repository.Exists(1046); + var existsToo = repository.Exists(1046); + var doesntExists = repository.Exists(1050); - // Assert - Assert.That(exists, Is.True); - Assert.That(existsToo, Is.True); - Assert.That(doesntExists, Is.False); + // Assert + Assert.That(exists, Is.True); + Assert.That(existsToo, Is.True); + Assert.That(doesntExists, Is.False); + } } [Test] @@ -277,15 +315,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + MediaTypeRepository mediaTypeRepository; + using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository)) + { - // Act - int level = 2; - var query = Query.Builder.Where(x => x.Level == level); - var result = repository.Count(query); + // Act + int level = 2; + var query = Query.Builder.Where(x => x.Level == level); + var result = repository.Count(query); - // Assert - Assert.That(result, Is.GreaterThanOrEqualTo(2)); + // Assert + Assert.That(result, Is.GreaterThanOrEqualTo(2)); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs index 71351a6489..7c794d6f58 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs @@ -21,8 +21,13 @@ namespace Umbraco.Tests.Persistence.Repositories base.Initialize(); } + private MediaTypeRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + return new MediaTypeRepository(unitOfWork, NullCacheProvider.Current); + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -41,18 +46,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var contentType = MockedContentTypes.CreateVideoMediaType(); + repository.AddOrUpdate(contentType); + unitOfWork.Commit(); - // Act - var contentType = MockedContentTypes.CreateVideoMediaType(); - repository.AddOrUpdate(contentType); - unitOfWork.Commit(); + // Assert + Assert.That(contentType.HasIdentity, Is.True); + Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True); + Assert.That(contentType.Path.Contains(","), Is.True); + Assert.That(contentType.SortOrder, Is.GreaterThan(0)); + } - // Assert - Assert.That(contentType.HasIdentity, Is.True); - Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True); - Assert.That(contentType.Path.Contains(","), Is.True); - Assert.That(contentType.SortOrder, Is.GreaterThan(0)); + } [Test] @@ -61,35 +69,37 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var videoMediaType = MockedContentTypes.CreateVideoMediaType(); - repository.AddOrUpdate(videoMediaType); - unitOfWork.Commit(); - - // Act - var mediaType = repository.Get(1045); - - mediaType.Thumbnail = "Doc2.png"; - mediaType.PropertyGroups["Media"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) + using (var repository = CreateRepository(unitOfWork)) { - Alias = "subtitle", - Name = "Subtitle", - Description = "Optional Subtitle", - HelpText = "", - Mandatory = false, - SortOrder = 1, - DataTypeDefinitionId = -88 - }); - repository.AddOrUpdate(mediaType); - unitOfWork.Commit(); + var videoMediaType = MockedContentTypes.CreateVideoMediaType(); + repository.AddOrUpdate(videoMediaType); + unitOfWork.Commit(); - var dirty = ((MediaType)mediaType).IsDirty(); + // Act + var mediaType = repository.Get(1045); - // Assert - Assert.That(mediaType.HasIdentity, Is.True); - Assert.That(dirty, Is.False); - Assert.That(mediaType.Thumbnail, Is.EqualTo("Doc2.png")); - Assert.That(mediaType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True); + mediaType.Thumbnail = "Doc2.png"; + mediaType.PropertyGroups["Media"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) + { + Alias = "subtitle", + Name = "Subtitle", + Description = "Optional Subtitle", + HelpText = "", + Mandatory = false, + SortOrder = 1, + DataTypeDefinitionId = -88 + }); + repository.AddOrUpdate(mediaType); + unitOfWork.Commit(); + + var dirty = ((MediaType) mediaType).IsDirty(); + + // Assert + Assert.That(mediaType.HasIdentity, Is.True); + Assert.That(dirty, Is.False); + Assert.That(mediaType.Thumbnail, Is.EqualTo("Doc2.png")); + Assert.That(mediaType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True); + } } [Test] @@ -98,21 +108,23 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var mediaType = MockedContentTypes.CreateVideoMediaType(); - repository.AddOrUpdate(mediaType); - unitOfWork.Commit(); + // Act + var mediaType = MockedContentTypes.CreateVideoMediaType(); + repository.AddOrUpdate(mediaType); + unitOfWork.Commit(); - var contentType2 = repository.Get(mediaType.Id); - repository.Delete(contentType2); - unitOfWork.Commit(); + var contentType2 = repository.Get(mediaType.Id); + repository.Delete(contentType2); + unitOfWork.Commit(); - var exists = repository.Exists(mediaType.Id); + var exists = repository.Exists(mediaType.Id); - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -121,15 +133,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var mediaType = repository.Get(1033);//File + // Act + var mediaType = repository.Get(1033); //File - // Assert - Assert.That(mediaType, Is.Not.Null); - Assert.That(mediaType.Id, Is.EqualTo(1033)); - Assert.That(mediaType.Name, Is.EqualTo(Constants.Conventions.MediaTypes.File)); + // Assert + Assert.That(mediaType, Is.Not.Null); + Assert.That(mediaType.Id, Is.EqualTo(1033)); + Assert.That(mediaType.Name, Is.EqualTo(Constants.Conventions.MediaTypes.File)); + } } [Test] @@ -138,19 +152,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - InMemoryCacheProvider.Current.Clear(); + using (var repository = CreateRepository(unitOfWork)) + { + // Act + var mediaTypes = repository.GetAll(); + int count = + DatabaseContext.Database.ExecuteScalar( + "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", + new {NodeObjectType = new Guid(Constants.ObjectTypes.MediaType)}); - // Act - var mediaTypes = repository.GetAll(); - int count = - DatabaseContext.Database.ExecuteScalar( - "SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType", - new { NodeObjectType = new Guid(Constants.ObjectTypes.MediaType) }); - - // Assert - Assert.That(mediaTypes.Any(), Is.True); - Assert.That(mediaTypes.Count(), Is.EqualTo(count)); + // Assert + Assert.That(mediaTypes.Any(), Is.True); + Assert.That(mediaTypes.Count(), Is.EqualTo(count)); + } } [Test] @@ -159,13 +173,15 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var exists = repository.Exists(1032);//Image + // Act + var exists = repository.Exists(1032); //Image - // Assert - Assert.That(exists, Is.True); + // Assert + Assert.That(exists, Is.True); + } } [Test] @@ -174,23 +190,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var mediaType = MockedContentTypes.CreateVideoMediaType(); - repository.AddOrUpdate(mediaType); - unitOfWork.Commit(); + using (var repository = CreateRepository(unitOfWork)) + { + var mediaType = MockedContentTypes.CreateVideoMediaType(); + repository.AddOrUpdate(mediaType); + unitOfWork.Commit(); - // Act - var mediaTypeV2 = repository.Get(1045); - mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title"); - repository.AddOrUpdate(mediaTypeV2); - unitOfWork.Commit(); + // Act + var mediaTypeV2 = repository.Get(1045); + mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title"); + repository.AddOrUpdate(mediaTypeV2); + unitOfWork.Commit(); - var mediaTypeV3 = repository.Get(1045); + var mediaTypeV3 = repository.Get(1045); - // Assert - Assert.That(mediaTypeV3.PropertyTypes.Any(x => x.Alias == "title"), Is.False); - Assert.That(mediaType.PropertyGroups.Count, Is.EqualTo(mediaTypeV3.PropertyGroups.Count)); - Assert.That(mediaType.PropertyTypes.Count(), Is.EqualTo(mediaTypeV3.PropertyTypes.Count())); + // Assert + Assert.That(mediaTypeV3.PropertyTypes.Any(x => x.Alias == "title"), Is.False); + Assert.That(mediaType.PropertyGroups.Count, Is.EqualTo(mediaTypeV3.PropertyGroups.Count)); + Assert.That(mediaType.PropertyTypes.Count(), Is.EqualTo(mediaTypeV3.PropertyTypes.Count())); + } } [Test] @@ -199,17 +217,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var mediaType = MockedContentTypes.CreateVideoMediaType(); - repository.AddOrUpdate(mediaType); - unitOfWork.Commit(); + using (var repository = CreateRepository(unitOfWork)) + { + var mediaType = MockedContentTypes.CreateVideoMediaType(); + repository.AddOrUpdate(mediaType); + unitOfWork.Commit(); - // Act - var contentType = repository.Get(1045); + // Act + var contentType = repository.Get(1045); - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(2)); - Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(2)); + Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + } } [Test] @@ -218,14 +238,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var contentType = repository.Get(1033);//File + // Act + var contentType = repository.Get(1033); //File - // Assert - Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); - Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + // Assert + Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3)); + Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1)); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs index 288afe4fa9..6aa9609807 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs @@ -6,8 +6,10 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.ObjectResolution; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; +using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Publishing; @@ -47,41 +49,71 @@ namespace Umbraco.Tests.Persistence.Repositories #endregion + private MemberRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository) + { + memberTypeRepository = new MemberTypeRepository(unitOfWork, NullCacheProvider.Current); + var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository); + return repository; + } + + [Test] + public void Can_Instantiate_Repository_From_Resolver() + { + // Arrange + var provider = new PetaPocoUnitOfWorkProvider(); + var unitOfWork = provider.GetUnitOfWork(); + + // Act + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + + // Assert + Assert.That(repository, Is.Not.Null); + } + [Test] public void MemberRepository_Can_Get_Member_By_Id() { var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - var member = repository.Get(1341); + var member = repository.Get(1341); - Assert.That(member, Is.Not.Null); + Assert.That(member, Is.Not.Null); + } } [Test] public void MemberRepository_Can_Get_Specific_Members() { var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - var members = repository.GetAll(1341, 1383); + var members = repository.GetAll(1341, 1383); - Assert.That(members, Is.Not.Null); - Assert.That(members.Any(x => x == null), Is.False); - Assert.That(members.Count(), Is.EqualTo(2)); + Assert.That(members, Is.Not.Null); + Assert.That(members.Any(x => x == null), Is.False); + Assert.That(members.Count(), Is.EqualTo(2)); + } } [Test] public void MemberRepository_Can_Get_All_Members() { var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - var members = repository.GetAll(); + var members = repository.GetAll(); - Assert.That(members, Is.Not.Null); - Assert.That(members.Any(x => x == null), Is.False); - Assert.That(members.Count(), Is.EqualTo(6)); + Assert.That(members, Is.Not.Null); + Assert.That(members.Any(x => x == null), Is.False); + Assert.That(members.Count(), Is.EqualTo(6)); + } } [Test] @@ -89,15 +121,18 @@ namespace Umbraco.Tests.Persistence.Repositories { // Arrange var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - // Act - var query = Query.Builder.Where(x => x.Key == new Guid("A6B9CA6B-0615-42CA-B5F5-338417EC76BE")); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.Key == new Guid("A6B9CA6B-0615-42CA-B5F5-338417EC76BE")); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Count(), Is.EqualTo(1)); - Assert.That(result.First().Id, Is.EqualTo(1341)); + // Assert + Assert.That(result.Count(), Is.EqualTo(1)); + Assert.That(result.First().Id, Is.EqualTo(1341)); + } } [Test] @@ -105,16 +140,19 @@ namespace Umbraco.Tests.Persistence.Repositories { // Arrange var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - // Act - var query = Query.Builder.Where(x => ((Member)x).ShortStringPropertyValue.EndsWith("piquet_h")); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => ((Member) x).ShortStringPropertyValue.EndsWith("piquet_h")); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Any(x => x == null), Is.False); - Assert.That(result.Count(), Is.EqualTo(1)); - Assert.That(result.First().Id, Is.EqualTo(1341)); + // Assert + Assert.That(result.Any(x => x == null), Is.False); + Assert.That(result.Count(), Is.EqualTo(1)); + Assert.That(result.First().Id, Is.EqualTo(1341)); + } } [Test] @@ -122,15 +160,18 @@ namespace Umbraco.Tests.Persistence.Repositories { // Arrange var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberRepository(unitOfWork); + MemberTypeRepository memberTypeRepository; + using (var repository = CreateRepository(unitOfWork, out memberTypeRepository)) + { - // Act - var query = Query.Builder.Where(x => ((Member)x).LongStringPropertyValue.Contains("1095") && ((Member)x).PropertyTypeAlias == "headshot"); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => ((Member) x).LongStringPropertyValue.Contains("1095") && ((Member) x).PropertyTypeAlias == "headshot"); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Any(x => x == null), Is.False); - Assert.That(result.Count(), Is.EqualTo(5)); + // Assert + Assert.That(result.Any(x => x == null), Is.False); + Assert.That(result.Count(), Is.EqualTo(5)); + } } [Test] @@ -212,55 +253,6 @@ namespace Umbraco.Tests.Persistence.Repositories } } - [TestFixture, NUnit.Framework.Ignore] - public class MemberTypeRepositoryTest : MemberRepositoryBaseTest - { - #region Overrides of MemberRepositoryBaseTest - - [SetUp] - public override void Initialize() - { - base.Initialize(); - - SqlSyntaxContext.SqlSyntaxProvider = SqlServerSyntax.Provider; - } - - [TearDown] - public override void TearDown() - { - base.TearDown(); - } - - public override string ConnectionString - { - get { return @"server=.\SQLEXPRESS;database=Kloud-Website-Production;user id=umbraco;password=umbraco"; } - } - - public override string ProviderName - { - get { return "System.Data.SqlClient"; } - } - - #endregion - - [Test] - public void MemberTypeRepository_Can_Get_MemberType_By_Id() - { - var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.Factory.CreateMemberTypeRepository(unitOfWork); - - var memberType = repository.Get(1340); - - Assert.That(memberType, Is.Not.Null); - Assert.That(memberType.PropertyTypes.Count(), Is.EqualTo(13)); - Assert.That(memberType.PropertyGroups.Any(), Is.False); - - repository.AddOrUpdate(memberType); - unitOfWork.Commit(); - Assert.That(memberType.PropertyTypes.Any(x => x.HasIdentity == false), Is.False); - } - } - [TestFixture] public abstract class MemberRepositoryBaseTest { diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs new file mode 100644 index 0000000000..cc4553cce5 --- /dev/null +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs @@ -0,0 +1,80 @@ +using System.Linq; +using NUnit.Framework; +using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; +using Umbraco.Core.Persistence.Repositories; +using Umbraco.Core.Persistence.SqlSyntax; +using Umbraco.Core.Persistence.UnitOfWork; + +namespace Umbraco.Tests.Persistence.Repositories +{ + [TestFixture, NUnit.Framework.Ignore] + public class MemberTypeRepositoryTest : MemberRepositoryBaseTest + { + #region Overrides of MemberRepositoryBaseTest + + [SetUp] + public override void Initialize() + { + base.Initialize(); + + SqlSyntaxContext.SqlSyntaxProvider = SqlServerSyntax.Provider; + } + + [TearDown] + public override void TearDown() + { + base.TearDown(); + } + + public override string ConnectionString + { + get { return @"server=.\SQLEXPRESS;database=Kloud-Website-Production;user id=umbraco;password=umbraco"; } + } + + public override string ProviderName + { + get { return "System.Data.SqlClient"; } + } + + #endregion + + private MemberTypeRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + return new MemberTypeRepository(unitOfWork, NullCacheProvider.Current); + } + + [Test] + public void Can_Instantiate_Repository_From_Resolver() + { + // Arrange + var provider = new PetaPocoUnitOfWorkProvider(); + var unitOfWork = provider.GetUnitOfWork(); + + // Act + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + + // Assert + Assert.That(repository, Is.Not.Null); + } + + [Test] + public void MemberTypeRepository_Can_Get_MemberType_By_Id() + { + var unitOfWork = UnitOfWorkProvider.GetUnitOfWork(); + using (var repository = CreateRepository(unitOfWork)) + { + + var memberType = repository.Get(1340); + + Assert.That(memberType, Is.Not.Null); + Assert.That(memberType.PropertyTypes.Count(), Is.EqualTo(13)); + Assert.That(memberType.PropertyGroups.Any(), Is.False); + + repository.AddOrUpdate(memberType); + unitOfWork.Commit(); + Assert.That(memberType.PropertyTypes.Any(x => x.HasIdentity == false), Is.False); + } + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs index ec14d6aaf2..c727e04fd4 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs @@ -3,6 +3,7 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; @@ -25,16 +26,22 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private RelationRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out RelationTypeRepository relationTypeRepository) + { + relationTypeRepository = new RelationTypeRepository(unitOfWork, NullCacheProvider.Current); + var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, relationTypeRepository); + return repository; + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); @@ -46,18 +53,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relationType = repositoryType.Get(1); - var relation = new Relation(1047, 1048, relationType); - repository.AddOrUpdate(relation); - unitOfWork.Commit(); + // Act + var relationType = repositoryType.Get(1); + var relation = new Relation(1047, 1048, relationType); + repository.AddOrUpdate(relation); + unitOfWork.Commit(); - // Assert - Assert.That(relation, Is.Not.Null); - Assert.That(relation.HasIdentity, Is.True); + // Assert + Assert.That(relation, Is.Not.Null); + Assert.That(relation.HasIdentity, Is.True); + } } [Test] @@ -66,21 +75,23 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relation = repository.Get(1); - relation.Comment = "This relation has been updated"; - repository.AddOrUpdate(relation); - unitOfWork.Commit(); + // Act + var relation = repository.Get(1); + relation.Comment = "This relation has been updated"; + repository.AddOrUpdate(relation); + unitOfWork.Commit(); - var relationUpdated = repository.Get(1); + var relationUpdated = repository.Get(1); - // Assert - Assert.That(relationUpdated, Is.Not.Null); - Assert.That(relationUpdated.Comment, Is.EqualTo("This relation has been updated")); - Assert.AreNotEqual(relationUpdated.UpdateDate, relation.UpdateDate); + // Assert + Assert.That(relationUpdated, Is.Not.Null); + Assert.That(relationUpdated.Comment, Is.EqualTo("This relation has been updated")); + Assert.AreNotEqual(relationUpdated.UpdateDate, relation.UpdateDate); + } } [Test] @@ -89,18 +100,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relation = repository.Get(2); - repository.Delete(relation); - unitOfWork.Commit(); + // Act + var relation = repository.Get(2); + repository.Delete(relation); + unitOfWork.Commit(); - var exists = repository.Exists(2); + var exists = repository.Exists(2); - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -109,18 +122,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relation = repository.Get(1); + // Act + var relation = repository.Get(1); - // Assert - Assert.That(relation, Is.Not.Null); - Assert.That(relation.HasIdentity, Is.True); - Assert.That(relation.ChildId, Is.EqualTo(1047)); - Assert.That(relation.ParentId, Is.EqualTo(1046)); - Assert.That(relation.RelationType.Alias, Is.EqualTo("relateContentOnCopy")); + // Assert + Assert.That(relation, Is.Not.Null); + Assert.That(relation.HasIdentity, Is.True); + Assert.That(relation.ChildId, Is.EqualTo(1047)); + Assert.That(relation.ParentId, Is.EqualTo(1046)); + Assert.That(relation.RelationType.Alias, Is.EqualTo("relateContentOnCopy")); + } } [Test] @@ -129,17 +144,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relations = repository.GetAll(); + // Act + var relations = repository.GetAll(); - // Assert - Assert.That(relations, Is.Not.Null); - Assert.That(relations.Any(), Is.True); - Assert.That(relations.Any(x => x == null), Is.False); - Assert.That(relations.Count(), Is.EqualTo(2)); + // Assert + Assert.That(relations, Is.Not.Null); + Assert.That(relations.Any(), Is.True); + Assert.That(relations.Any(x => x == null), Is.False); + Assert.That(relations.Count(), Is.EqualTo(2)); + } } [Test] @@ -148,17 +165,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var relations = repository.GetAll(1, 2); + // Act + var relations = repository.GetAll(1, 2); - // Assert - Assert.That(relations, Is.Not.Null); - Assert.That(relations.Any(), Is.True); - Assert.That(relations.Any(x => x == null), Is.False); - Assert.That(relations.Count(), Is.EqualTo(2)); + // Assert + Assert.That(relations, Is.Not.Null); + Assert.That(relations.Any(), Is.True); + Assert.That(relations.Any(x => x == null), Is.False); + Assert.That(relations.Count(), Is.EqualTo(2)); + } } [Test] @@ -167,16 +186,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var exists = repository.Exists(2); - var doesntExist = repository.Exists(5); + // Act + var exists = repository.Exists(2); + var doesntExist = repository.Exists(5); - // Assert - Assert.That(exists, Is.True); - Assert.That(doesntExist, Is.False); + // Assert + Assert.That(exists, Is.True); + Assert.That(doesntExist, Is.False); + } } [Test] @@ -185,15 +206,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var query = Query.Builder.Where(x => x.ParentId == 1046); - int count = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.ParentId == 1046); + int count = repository.Count(query); - // Assert - Assert.That(count, Is.EqualTo(2)); + // Assert + Assert.That(count, Is.EqualTo(2)); + } } [Test] @@ -202,18 +225,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - // Act - var query = Query.Builder.Where(x => x.RelationTypeId == 2); - var relations = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.RelationTypeId == 2); + var relations = repository.GetByQuery(query); - // Assert - Assert.That(relations, Is.Not.Null); - Assert.That(relations.Any(), Is.True); - Assert.That(relations.Any(x => x == null), Is.False); - Assert.That(relations.Count(), Is.EqualTo(2)); + // Assert + Assert.That(relations, Is.Not.Null); + Assert.That(relations.Any(), Is.True); + Assert.That(relations.Any(x => x == null), Is.False); + Assert.That(relations.Count(), Is.EqualTo(2)); + } } [Test] @@ -222,19 +247,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repositoryType = new RelationTypeRepository(unitOfWork); - var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType); + RelationTypeRepository repositoryType; + using (var repository = CreateRepository(unitOfWork, out repositoryType)) + { - var content = ServiceContext.ContentService.GetById(1047); - ServiceContext.ContentService.Delete(content, 0); + var content = ServiceContext.ContentService.GetById(1047); + ServiceContext.ContentService.Delete(content, 0); - // Act - var shouldntExist = repository.Exists(1); - var shouldExist = repository.Exists(2); + // Act + var shouldntExist = repository.Exists(1); + var shouldExist = repository.Exists(2); - // Assert - Assert.That(shouldntExist, Is.False); - Assert.That(shouldExist, Is.True); + // Assert + Assert.That(shouldntExist, Is.False); + Assert.That(shouldExist, Is.True); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs index eef7a8c133..1cea1b4bb3 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs @@ -3,6 +3,8 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -21,15 +23,20 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private RelationTypeRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + return new RelationTypeRepository(unitOfWork, NullCacheProvider.Current); + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new RelationTypeRepository(unitOfWork); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); @@ -41,21 +48,21 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relateMemberToContent = new RelationType(new Guid(Constants.ObjectTypes.Member), - new Guid(Constants.ObjectTypes.Document), - "relateMemberToContent") - {IsBidirectional = true, Name = "Relate Member to Content"}; - - repository.AddOrUpdate(relateMemberToContent); - unitOfWork.Commit(); + // Act + var relateMemberToContent = new RelationType(new Guid(Constants.ObjectTypes.Member), + new Guid(Constants.ObjectTypes.Document), + "relateMemberToContent") {IsBidirectional = true, Name = "Relate Member to Content"}; - // Assert - Assert.That(relateMemberToContent.HasIdentity, Is.True); - Assert.That(repository.Exists(relateMemberToContent.Id), Is.True); + repository.AddOrUpdate(relateMemberToContent); + unitOfWork.Commit(); + // Assert + Assert.That(relateMemberToContent.HasIdentity, Is.True); + Assert.That(repository.Exists(relateMemberToContent.Id), Is.True); + } } [Test] @@ -64,22 +71,24 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relationType = repository.Get(3); - relationType.Alias = relationType.Alias + "Updated"; - relationType.Name = relationType.Name + " Updated"; - repository.AddOrUpdate(relationType); - unitOfWork.Commit(); + // Act + var relationType = repository.Get(3); + relationType.Alias = relationType.Alias + "Updated"; + relationType.Name = relationType.Name + " Updated"; + repository.AddOrUpdate(relationType); + unitOfWork.Commit(); - var relationTypeUpdated = repository.Get(3); + var relationTypeUpdated = repository.Get(3); - // Assert - Assert.That(relationTypeUpdated, Is.Not.Null); - Assert.That(relationTypeUpdated.HasIdentity, Is.True); - Assert.That(relationTypeUpdated.Alias, Is.EqualTo(relationType.Alias)); - Assert.That(relationTypeUpdated.Name, Is.EqualTo(relationType.Name)); + // Assert + Assert.That(relationTypeUpdated, Is.Not.Null); + Assert.That(relationTypeUpdated.HasIdentity, Is.True); + Assert.That(relationTypeUpdated.Alias, Is.EqualTo(relationType.Alias)); + Assert.That(relationTypeUpdated.Name, Is.EqualTo(relationType.Name)); + } } [Test] @@ -88,17 +97,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relationType = repository.Get(3); - repository.Delete(relationType); - unitOfWork.Commit(); + // Act + var relationType = repository.Get(3); + repository.Delete(relationType); + unitOfWork.Commit(); - var exists = repository.Exists(3); + var exists = repository.Exists(3); - // Assert - Assert.That(exists, Is.False); + // Assert + Assert.That(exists, Is.False); + } } [Test] @@ -107,16 +118,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relationType = repository.Get(2); + // Act + var relationType = repository.Get(2); - // Assert - Assert.That(relationType, Is.Not.Null); - Assert.That(relationType.HasIdentity, Is.True); - Assert.That(relationType.Alias, Is.EqualTo("relateContentOnCopy")); - Assert.That(relationType.Name, Is.EqualTo("Relate Content on Copy")); + // Assert + Assert.That(relationType, Is.Not.Null); + Assert.That(relationType.HasIdentity, Is.True); + Assert.That(relationType.Alias, Is.EqualTo("relateContentOnCopy")); + Assert.That(relationType.Name, Is.EqualTo("Relate Content on Copy")); + } } [Test] @@ -125,16 +138,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relationTypes = repository.GetAll(); + // Act + var relationTypes = repository.GetAll(); - // Assert - Assert.That(relationTypes, Is.Not.Null); - Assert.That(relationTypes.Any(), Is.True); - Assert.That(relationTypes.Any(x => x == null), Is.False); - Assert.That(relationTypes.Count(), Is.EqualTo(3)); + // Assert + Assert.That(relationTypes, Is.Not.Null); + Assert.That(relationTypes.Any(), Is.True); + Assert.That(relationTypes.Any(x => x == null), Is.False); + Assert.That(relationTypes.Count(), Is.EqualTo(3)); + } } [Test] @@ -143,16 +158,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var relationTypes = repository.GetAll(2, 3); + // Act + var relationTypes = repository.GetAll(2, 3); - // Assert - Assert.That(relationTypes, Is.Not.Null); - Assert.That(relationTypes.Any(), Is.True); - Assert.That(relationTypes.Any(x => x == null), Is.False); - Assert.That(relationTypes.Count(), Is.EqualTo(2)); + // Assert + Assert.That(relationTypes, Is.Not.Null); + Assert.That(relationTypes.Any(), Is.True); + Assert.That(relationTypes.Any(x => x == null), Is.False); + Assert.That(relationTypes.Count(), Is.EqualTo(2)); + } } [Test] @@ -161,15 +178,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var exists = repository.Exists(3); - var doesntExist = repository.Exists(5); + // Act + var exists = repository.Exists(3); + var doesntExist = repository.Exists(5); - // Assert - Assert.That(exists, Is.True); - Assert.That(doesntExist, Is.False); + // Assert + Assert.That(exists, Is.True); + Assert.That(doesntExist, Is.False); + } } [Test] @@ -178,14 +197,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var query = Query.Builder.Where(x => x.Alias.StartsWith("relate")); - int count = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.Alias.StartsWith("relate")); + int count = repository.Count(query); - // Assert - Assert.That(count, Is.EqualTo(3)); + // Assert + Assert.That(count, Is.EqualTo(3)); + } } [Test] @@ -194,18 +215,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = new RelationTypeRepository(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - // Act - var childObjType = new Guid(Constants.ObjectTypes.DocumentType); - var query = Query.Builder.Where(x => x.ChildObjectType == childObjType); - var result = repository.GetByQuery(query); + // Act + var childObjType = new Guid(Constants.ObjectTypes.DocumentType); + var query = Query.Builder.Where(x => x.ChildObjectType == childObjType); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.Any(x => x == null), Is.False); - Assert.That(result.Count(), Is.EqualTo(1)); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.Any(x => x == null), Is.False); + Assert.That(result.Count(), Is.EqualTo(1)); + } } [TearDown] diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index c594061b4e..25d16963d2 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -4,6 +4,7 @@ using System.Text; using NUnit.Framework; using Umbraco.Core.IO; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -23,14 +24,14 @@ namespace Umbraco.Tests.Persistence.Repositories } [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new ScriptRepository(unitOfWork, _fileSystem); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); diff --git a/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs index ef1bda3c5c..19b4a7f7d9 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs @@ -3,6 +3,7 @@ using System.Data.SqlServerCe; using System.Linq; using NUnit.Framework; using Umbraco.Core.Models; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -21,6 +22,11 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); } + private ServerRegistrationRepository CreateRepositor(IDatabaseUnitOfWork unitOfWork) + { + return new ServerRegistrationRepository(unitOfWork, NullCacheProvider.Current); + } + [Test] public void Cannot_Add_Duplicate_Computer_Names() { @@ -29,7 +35,7 @@ namespace Umbraco.Tests.Persistence.Repositories var unitOfWork = provider.GetUnitOfWork(); // Act - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { var server = new ServerRegistration("http://shazwazza.com", "COMPUTER1", DateTime.Now); repository.AddOrUpdate(server); @@ -47,7 +53,7 @@ namespace Umbraco.Tests.Persistence.Repositories var unitOfWork = provider.GetUnitOfWork(); // Act - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { var server = repository.Get(1); server.ComputerName = "COMPUTER2"; @@ -65,7 +71,7 @@ namespace Umbraco.Tests.Persistence.Repositories var unitOfWork = provider.GetUnitOfWork(); // Act - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Assert Assert.That(repository, Is.Not.Null); @@ -78,7 +84,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var server = repository.Get(1); @@ -98,7 +104,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var servers = repository.GetAll(); @@ -115,7 +121,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var query = Query.Builder.Where(x => x.ComputerName.ToUpper() == "COMPUTER3"); @@ -132,7 +138,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var query = Query.Builder.Where(x => x.ServerAddress.StartsWith("http://")); @@ -149,7 +155,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var server = new ServerRegistration("http://shazwazza.com", "COMPUTER4", DateTime.Now); @@ -168,7 +174,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var server = repository.Get(2); @@ -193,7 +199,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var server = repository.Get(3); @@ -214,7 +220,7 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - using (var repository = new ServerRegistrationRepository(unitOfWork)) + using (var repository = CreateRepositor(unitOfWork)) { // Act var exists = repository.Exists(3); diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index 76930a98ba..d518bddd0e 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -4,6 +4,7 @@ using System.Text; using NUnit.Framework; using Umbraco.Core.IO; using Umbraco.Core.Models; +using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -23,14 +24,14 @@ namespace Umbraco.Tests.Persistence.Repositories } [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new FileUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); // Act - var repository = new StylesheetRepository(unitOfWork, _fileSystem); + var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); // Assert Assert.That(repository, Is.Not.Null); diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs index a341a5cc74..b477d8b8a1 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs @@ -4,6 +4,7 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -27,8 +28,15 @@ namespace Umbraco.Tests.Persistence.Repositories base.TearDown(); } + private UserRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out UserTypeRepository userTypeRepository) + { + userTypeRepository = new UserTypeRepository(unitOfWork, NullCacheProvider.Current); + var repository = new UserRepository(unitOfWork, NullCacheProvider.Current, userTypeRepository); + return repository; + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -47,16 +55,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { - var user = MockedUser.CreateUser(CreateAndCommitUserType()); + var user = MockedUser.CreateUser(CreateAndCommitUserType()); - // Act - repository.AddOrUpdate(user); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(user); + unitOfWork.Commit(); - // Assert - Assert.That(user.HasIdentity, Is.True); + // Assert + Assert.That(user.HasIdentity, Is.True); + } } [Test] @@ -65,20 +76,23 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { - var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1"); - var use2 = MockedUser.CreateUser(CreateAndCommitUserType(), "2"); + var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1"); + var use2 = MockedUser.CreateUser(CreateAndCommitUserType(), "2"); - // Act - repository.AddOrUpdate(user1); - unitOfWork.Commit(); - repository.AddOrUpdate(use2); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(user1); + unitOfWork.Commit(); + repository.AddOrUpdate(use2); + unitOfWork.Commit(); - // Assert - Assert.That(user1.HasIdentity, Is.True); - Assert.That(use2.HasIdentity, Is.True); + // Assert + Assert.That(user1.HasIdentity, Is.True); + Assert.That(use2.HasIdentity, Is.True); + } } [Test] @@ -87,17 +101,20 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var user = MockedUser.CreateUser(CreateAndCommitUserType()); + repository.AddOrUpdate(user); + unitOfWork.Commit(); - // Act - var resolved = repository.Get((int)user.Id); - bool dirty = ((User)resolved).IsDirty(); + // Act + var resolved = repository.Get((int)user.Id); + bool dirty = ((User)resolved).IsDirty(); - // Assert - Assert.That(dirty, Is.False); + // Assert + Assert.That(dirty, Is.False); + } } [Test] @@ -106,46 +123,49 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var user = MockedUser.CreateUser(CreateAndCommitUserType()); + repository.AddOrUpdate(user); + unitOfWork.Commit(); - // Act - var resolved = repository.Get((int)user.Id); - - resolved.Name = "New Name"; - resolved.DefaultPermissions = "ZYX"; - resolved.Language = "fr"; - resolved.IsApproved = false; - resolved.Password = "new"; - resolved.NoConsole = true; - resolved.StartContentId = 10; - resolved.StartMediaId = 11; - resolved.DefaultToLiveEditing = true; - resolved.Email = "new@new.com"; - resolved.Username = "newName"; - resolved.RemoveAllowedSection("content"); + // Act + var resolved = repository.Get((int)user.Id); - repository.AddOrUpdate(resolved); - unitOfWork.Commit(); - var updatedItem = repository.Get((int)user.Id); + resolved.Name = "New Name"; + resolved.DefaultPermissions = "ZYX"; + resolved.Language = "fr"; + resolved.IsApproved = false; + resolved.Password = "new"; + resolved.NoConsole = true; + resolved.StartContentId = 10; + resolved.StartMediaId = 11; + resolved.DefaultToLiveEditing = true; + resolved.Email = "new@new.com"; + resolved.Username = "newName"; + resolved.RemoveAllowedSection("content"); - // Assert - Assert.That(updatedItem.Id, Is.EqualTo(resolved.Id)); - Assert.That(updatedItem.Name, Is.EqualTo(resolved.Name)); - Assert.That(updatedItem.DefaultPermissions, Is.EqualTo(resolved.DefaultPermissions)); - Assert.That(updatedItem.Language, Is.EqualTo(resolved.Language)); - Assert.That(updatedItem.IsApproved, Is.EqualTo(resolved.IsApproved)); - Assert.That(updatedItem.Password, Is.EqualTo(resolved.Password)); - Assert.That(updatedItem.NoConsole, Is.EqualTo(resolved.NoConsole)); - Assert.That(updatedItem.StartContentId, Is.EqualTo(resolved.StartContentId)); - Assert.That(updatedItem.StartMediaId, Is.EqualTo(resolved.StartMediaId)); - Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(resolved.DefaultToLiveEditing)); - Assert.That(updatedItem.Email, Is.EqualTo(resolved.Email)); - Assert.That(updatedItem.Username, Is.EqualTo(resolved.Username)); - Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(1)); - Assert.IsTrue(updatedItem.AllowedSections.Contains("media")); + repository.AddOrUpdate(resolved); + unitOfWork.Commit(); + var updatedItem = repository.Get((int)user.Id); + + // Assert + Assert.That(updatedItem.Id, Is.EqualTo(resolved.Id)); + Assert.That(updatedItem.Name, Is.EqualTo(resolved.Name)); + Assert.That(updatedItem.DefaultPermissions, Is.EqualTo(resolved.DefaultPermissions)); + Assert.That(updatedItem.Language, Is.EqualTo(resolved.Language)); + Assert.That(updatedItem.IsApproved, Is.EqualTo(resolved.IsApproved)); + Assert.That(updatedItem.Password, Is.EqualTo(resolved.Password)); + Assert.That(updatedItem.NoConsole, Is.EqualTo(resolved.NoConsole)); + Assert.That(updatedItem.StartContentId, Is.EqualTo(resolved.StartContentId)); + Assert.That(updatedItem.StartMediaId, Is.EqualTo(resolved.StartMediaId)); + Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(resolved.DefaultToLiveEditing)); + Assert.That(updatedItem.Email, Is.EqualTo(resolved.Email)); + Assert.That(updatedItem.Username, Is.EqualTo(resolved.Username)); + Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(1)); + Assert.IsTrue(updatedItem.AllowedSections.Contains("media")); + } } [Test] @@ -154,23 +174,26 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { - var user = MockedUser.CreateUser(CreateAndCommitUserType()); + var user = MockedUser.CreateUser(CreateAndCommitUserType()); - // Act - repository.AddOrUpdate(user); - unitOfWork.Commit(); - var id = user.Id; + // Act + repository.AddOrUpdate(user); + unitOfWork.Commit(); + var id = user.Id; - var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); - repository2.Delete(user); - unitOfWork.Commit(); + var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); + repository2.Delete(user); + unitOfWork.Commit(); - var resolved = repository2.Get((int)id); + var resolved = repository2.Get((int)id); - // Assert - Assert.That(resolved, Is.Null); + // Assert + Assert.That(resolved, Is.Null); + } } //[Test] @@ -179,7 +202,9 @@ namespace Umbraco.Tests.Persistence.Repositories // // Arrange // var provider = new PetaPocoUnitOfWorkProvider(); // var unitOfWork = provider.GetUnitOfWork(); - // var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + // UserTypeRepository userTypeRepository; + //using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + //{ // var user = MockedUser.CreateUser(CreateAndCommitUserType()); // //repository.AssignPermissions() @@ -199,39 +224,47 @@ namespace Umbraco.Tests.Persistence.Repositories // Assert.That(resolved, Is.Null); //} + //} + [Test] public void Can_Perform_Get_On_UserRepository() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var user = MockedUser.CreateUser(CreateAndCommitUserType()); + repository.AddOrUpdate(user); + unitOfWork.Commit(); - // Act - var updatedItem = repository.Get((int)user.Id); + // Act + var updatedItem = repository.Get((int) user.Id); - // Assert - AssertPropertyValues(updatedItem, user); + // Assert + AssertPropertyValues(updatedItem, user); + } } - + [Test] public void Can_Perform_GetByQuery_On_UserRepository() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - var query = Query.Builder.Where(x => x.Username == "TestUser1"); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.Username == "TestUser1"); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(1)); + // Assert + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(1)); + } } [Test] @@ -240,16 +273,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - var result = repository.GetAll((int)users[0].Id, (int)users[1].Id); + // Act + var result = repository.GetAll((int) users[0].Id, (int) users[1].Id); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.Count(), Is.EqualTo(2)); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.Count(), Is.EqualTo(2)); + } } [Test] @@ -258,16 +294,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - var result = repository.GetAll(); + // Act + var result = repository.GetAll(); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(3)); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(3)); + } } [Test] @@ -276,14 +315,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - var exists = repository.Exists((int)users[0].Id); + // Act + var exists = repository.Exists((int) users[0].Id); - // Assert - Assert.That(exists, Is.True); + // Assert + Assert.That(exists, Is.True); + } } [Test] @@ -292,15 +334,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - var query = Query.Builder.Where(x => x.Username == "TestUser1" || x.Username == "TestUser2"); - var result = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.Username == "TestUser1" || x.Username == "TestUser2"); + var result = repository.Count(query); - // Assert - Assert.That(result, Is.GreaterThanOrEqualTo(2)); + // Assert + Assert.That(result, Is.GreaterThanOrEqualTo(2)); + } } [Test] @@ -309,30 +354,33 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act + // Act - //add and remove a few times, this tests the internal collection - users[0].RemoveAllowedSection("content"); - users[0].RemoveAllowedSection("content"); - users[0].AddAllowedSection("content"); - users[0].RemoveAllowedSection("content"); - - users[1].RemoveAllowedSection("media"); - users[1].RemoveAllowedSection("media"); + //add and remove a few times, this tests the internal collection + users[0].RemoveAllowedSection("content"); + users[0].RemoveAllowedSection("content"); + users[0].AddAllowedSection("content"); + users[0].RemoveAllowedSection("content"); - repository.AddOrUpdate(users[0]); - repository.AddOrUpdate(users[1]); - unitOfWork.Commit(); + users[1].RemoveAllowedSection("media"); + users[1].RemoveAllowedSection("media"); - // Assert - var result = repository.GetAll((int) users[0].Id, (int) users[1].Id).ToArray(); - Assert.AreEqual(1, result[0].AllowedSections.Count()); - Assert.AreEqual("media", result[0].AllowedSections.First()); - Assert.AreEqual(1, result[1].AllowedSections.Count()); - Assert.AreEqual("content", result[1].AllowedSections.First()); + repository.AddOrUpdate(users[0]); + repository.AddOrUpdate(users[1]); + unitOfWork.Commit(); + + // Assert + var result = repository.GetAll((int) users[0].Id, (int) users[1].Id).ToArray(); + Assert.AreEqual(1, result[0].AllowedSections.Count()); + Assert.AreEqual("media", result[0].AllowedSections.First()); + Assert.AreEqual(1, result[1].AllowedSections.Count()); + Assert.AreEqual("content", result[1].AllowedSections.First()); + } } [Test] @@ -341,39 +389,42 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act - - //add and remove a few times, this tests the internal collection - users[0].AddAllowedSection("settings"); - users[0].AddAllowedSection("settings"); - users[0].RemoveAllowedSection("settings"); - users[0].AddAllowedSection("settings"); + // Act - users[1].AddAllowedSection("developer"); + //add and remove a few times, this tests the internal collection + users[0].AddAllowedSection("settings"); + users[0].AddAllowedSection("settings"); + users[0].RemoveAllowedSection("settings"); + users[0].AddAllowedSection("settings"); - //add the same even though it's already there - users[2].AddAllowedSection("content"); + users[1].AddAllowedSection("developer"); - repository.AddOrUpdate(users[0]); - repository.AddOrUpdate(users[1]); - unitOfWork.Commit(); + //add the same even though it's already there + users[2].AddAllowedSection("content"); - // Assert - var result = repository.GetAll((int)users[0].Id, (int)users[1].Id, (int)users[2].Id).ToArray(); - Assert.AreEqual(3, result[0].AllowedSections.Count()); - Assert.IsTrue(result[0].AllowedSections.Contains("content")); - Assert.IsTrue(result[0].AllowedSections.Contains("media")); - Assert.IsTrue(result[0].AllowedSections.Contains("settings")); - Assert.AreEqual(3, result[1].AllowedSections.Count()); - Assert.IsTrue(result[1].AllowedSections.Contains("content")); - Assert.IsTrue(result[1].AllowedSections.Contains("media")); - Assert.IsTrue(result[1].AllowedSections.Contains("developer")); - Assert.AreEqual(2, result[2].AllowedSections.Count()); - Assert.IsTrue(result[1].AllowedSections.Contains("content")); - Assert.IsTrue(result[1].AllowedSections.Contains("media")); + repository.AddOrUpdate(users[0]); + repository.AddOrUpdate(users[1]); + unitOfWork.Commit(); + + // Assert + var result = repository.GetAll((int) users[0].Id, (int) users[1].Id, (int) users[2].Id).ToArray(); + Assert.AreEqual(3, result[0].AllowedSections.Count()); + Assert.IsTrue(result[0].AllowedSections.Contains("content")); + Assert.IsTrue(result[0].AllowedSections.Contains("media")); + Assert.IsTrue(result[0].AllowedSections.Contains("settings")); + Assert.AreEqual(3, result[1].AllowedSections.Count()); + Assert.IsTrue(result[1].AllowedSections.Contains("content")); + Assert.IsTrue(result[1].AllowedSections.Contains("media")); + Assert.IsTrue(result[1].AllowedSections.Contains("developer")); + Assert.AreEqual(2, result[2].AllowedSections.Count()); + Assert.IsTrue(result[1].AllowedSections.Contains("content")); + Assert.IsTrue(result[1].AllowedSections.Contains("media")); + } } [Test] @@ -382,24 +433,27 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var users = CreateAndCommitMultipleUsers(repository, unitOfWork); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var users = CreateAndCommitMultipleUsers(repository, unitOfWork); - // Act + // Act - users[0].RemoveAllowedSection("content"); - users[0].AddAllowedSection("settings"); + users[0].RemoveAllowedSection("content"); + users[0].AddAllowedSection("settings"); - repository.AddOrUpdate(users[0]); - unitOfWork.Commit(); + repository.AddOrUpdate(users[0]); + unitOfWork.Commit(); - // Assert - var result = repository.Get((int)users[0].Id); - Assert.AreEqual(2, result.AllowedSections.Count()); - Assert.IsTrue(result.AllowedSections.Contains("settings")); - Assert.IsTrue(result.AllowedSections.Contains("media")); + // Assert + var result = repository.Get((int) users[0].Id); + Assert.AreEqual(2, result.AllowedSections.Count()); + Assert.IsTrue(result.AllowedSections.Contains("settings")); + Assert.IsTrue(result.AllowedSections.Contains("media")); + } } - + [Test] public void Get_Users_Assigned_To_Section() @@ -407,24 +461,27 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1", "test", "media"); - var user2 = MockedUser.CreateUser(CreateAndCommitUserType(), "2", "media", "settings"); - var user3 = MockedUser.CreateUser(CreateAndCommitUserType(), "3", "test", "settings"); - repository.AddOrUpdate(user1); - repository.AddOrUpdate(user2); - repository.AddOrUpdate(user3); - unitOfWork.Commit(); + UserTypeRepository userTypeRepository; + using (var repository = CreateRepository(unitOfWork, out userTypeRepository)) + { + var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1", "test", "media"); + var user2 = MockedUser.CreateUser(CreateAndCommitUserType(), "2", "media", "settings"); + var user3 = MockedUser.CreateUser(CreateAndCommitUserType(), "3", "test", "settings"); + repository.AddOrUpdate(user1); + repository.AddOrUpdate(user2); + repository.AddOrUpdate(user3); + unitOfWork.Commit(); - // Act + // Act - var users = repository.GetUsersAssignedToSection("test"); + var users = repository.GetUsersAssignedToSection("test"); - // Assert - Assert.AreEqual(2, users.Count()); - var names = users.Select(x => x.Username).ToArray(); - Assert.IsTrue(names.Contains("TestUser1")); - Assert.IsTrue(names.Contains("TestUser3")); + // Assert + Assert.AreEqual(2, users.Count()); + var names = users.Select(x => x.Username).ToArray(); + Assert.IsTrue(names.Contains("TestUser1")); + Assert.IsTrue(names.Contains("TestUser3")); + } } private void AssertPropertyValues(IUser updatedItem, IUser originalUser) @@ -455,7 +512,7 @@ namespace Umbraco.Tests.Persistence.Repositories repository.AddOrUpdate(user2); repository.AddOrUpdate(user3); unitOfWork.Commit(); - return new IUser[] {user1, user2, user3}; + return new IUser[] { user1, user2, user3 }; } private IUserType CreateAndCommitUserType() diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs index d22f52f9f1..931523a794 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs @@ -2,6 +2,7 @@ using NUnit.Framework; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; @@ -25,8 +26,13 @@ namespace Umbraco.Tests.Persistence.Repositories base.TearDown(); } + private UserTypeRepository CreateRepository(IDatabaseUnitOfWork unitOfWork) + { + return new UserTypeRepository(unitOfWork, NullCacheProvider.Current); + } + [Test] - public void Can_Instantiate_Repository() + public void Can_Instantiate_Repository_From_Resolver() { // Arrange var provider = new PetaPocoUnitOfWorkProvider(); @@ -45,16 +51,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var userType = MockedUserType.CreateUserType(); + var userType = MockedUserType.CreateUserType(); - // Act - repository.AddOrUpdate(userType); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(userType); + unitOfWork.Commit(); - // Assert - Assert.That(userType.HasIdentity, Is.True); + // Assert + Assert.That(userType.HasIdentity, Is.True); + } } [Test] @@ -63,20 +71,22 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var userType1 = MockedUserType.CreateUserType("1"); - var userType2 = MockedUserType.CreateUserType("2"); + var userType1 = MockedUserType.CreateUserType("1"); + var userType2 = MockedUserType.CreateUserType("2"); - // Act - repository.AddOrUpdate(userType1); - unitOfWork.Commit(); - repository.AddOrUpdate(userType2); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(userType1); + unitOfWork.Commit(); + repository.AddOrUpdate(userType2); + unitOfWork.Commit(); - // Assert - Assert.That(userType1.HasIdentity, Is.True); - Assert.That(userType2.HasIdentity, Is.True); + // Assert + Assert.That(userType1.HasIdentity, Is.True); + Assert.That(userType2.HasIdentity, Is.True); + } } [Test] @@ -85,17 +95,19 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userType = MockedUserType.CreateUserType(); - repository.AddOrUpdate(userType); - unitOfWork.Commit(); + using (var repository = CreateRepository(unitOfWork)) + { + var userType = MockedUserType.CreateUserType(); + repository.AddOrUpdate(userType); + unitOfWork.Commit(); - // Act - var resolved = repository.Get(userType.Id); - bool dirty = ((UserType)resolved).IsDirty(); + // Act + var resolved = repository.Get(userType.Id); + bool dirty = ((UserType) resolved).IsDirty(); - // Assert - Assert.That(dirty, Is.False); + // Assert + Assert.That(dirty, Is.False); + } } [Test] @@ -104,23 +116,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userType = MockedUserType.CreateUserType(); - repository.AddOrUpdate(userType); - unitOfWork.Commit(); + using (var repository = CreateRepository(unitOfWork)) + { + var userType = MockedUserType.CreateUserType(); + repository.AddOrUpdate(userType); + unitOfWork.Commit(); - // Act - var resolved = repository.Get(userType.Id); - resolved.Name = "New Name"; - resolved.Permissions = "ZYX"; - repository.AddOrUpdate(resolved); - unitOfWork.Commit(); - var updatedItem = repository.Get(userType.Id); + // Act + var resolved = repository.Get(userType.Id); + resolved.Name = "New Name"; + resolved.Permissions = "ZYX"; + repository.AddOrUpdate(resolved); + unitOfWork.Commit(); + var updatedItem = repository.Get(userType.Id); - // Assert - Assert.That(updatedItem.Id, Is.EqualTo(resolved.Id)); - Assert.That(updatedItem.Name, Is.EqualTo(resolved.Name)); - Assert.That(updatedItem.Permissions, Is.EqualTo(resolved.Permissions)); + // Assert + Assert.That(updatedItem.Id, Is.EqualTo(resolved.Id)); + Assert.That(updatedItem.Name, Is.EqualTo(resolved.Name)); + Assert.That(updatedItem.Permissions, Is.EqualTo(resolved.Permissions)); + } } [Test] @@ -129,23 +143,25 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { - var userType = MockedUserType.CreateUserType(); - - // Act - repository.AddOrUpdate(userType); - unitOfWork.Commit(); - var id = userType.Id; + var userType = MockedUserType.CreateUserType(); - var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); - repository2.Delete(userType); - unitOfWork.Commit(); + // Act + repository.AddOrUpdate(userType); + unitOfWork.Commit(); + var id = userType.Id; - var resolved = repository2.Get(id); + var repository2 = RepositoryResolver.Current.ResolveByType(unitOfWork); + repository2.Delete(userType); + unitOfWork.Commit(); - // Assert - Assert.That(resolved, Is.Null); + var resolved = repository2.Get(id); + + // Assert + Assert.That(resolved, Is.Null); + } } [Test] @@ -154,21 +170,23 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userType = MockedUserType.CreateUserType(); - repository.AddOrUpdate(userType); - unitOfWork.Commit(); + using (var repository = CreateRepository(unitOfWork)) + { + var userType = MockedUserType.CreateUserType(); + repository.AddOrUpdate(userType); + unitOfWork.Commit(); - // Act - var resolved = repository.Get(userType.Id); + // Act + var resolved = repository.Get(userType.Id); - // Assert - Assert.That(resolved.Id, Is.EqualTo(userType.Id)); - //Assert.That(resolved.CreateDate, Is.GreaterThan(DateTime.MinValue)); - //Assert.That(resolved.UpdateDate, Is.GreaterThan(DateTime.MinValue)); - Assert.That(resolved.Name, Is.EqualTo(userType.Name)); - Assert.That(resolved.Alias, Is.EqualTo(userType.Alias)); - Assert.That(resolved.Permissions, Is.EqualTo(userType.Permissions)); + // Assert + Assert.That(resolved.Id, Is.EqualTo(userType.Id)); + //Assert.That(resolved.CreateDate, Is.GreaterThan(DateTime.MinValue)); + //Assert.That(resolved.UpdateDate, Is.GreaterThan(DateTime.MinValue)); + Assert.That(resolved.Name, Is.EqualTo(userType.Name)); + Assert.That(resolved.Alias, Is.EqualTo(userType.Alias)); + Assert.That(resolved.Permissions, Is.EqualTo(userType.Permissions)); + } } [Test] @@ -177,15 +195,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - CreateAndCommitMultipleUserTypes(repository, unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + CreateAndCommitMultipleUserTypes(repository, unitOfWork); - // Act - var query = Query.Builder.Where(x => x.Alias == "testUserType1"); - var result = repository.GetByQuery(query); + // Act + var query = Query.Builder.Where(x => x.Alias == "testUserType1"); + var result = repository.GetByQuery(query); - // Assert - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(1)); + // Assert + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(1)); + } } [Test] @@ -194,16 +214,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); - // Act - var result = repository.GetAll(userTypes[0].Id, userTypes[1].Id); + // Act + var result = repository.GetAll(userTypes[0].Id, userTypes[1].Id); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.Count(), Is.EqualTo(2)); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.Count(), Is.EqualTo(2)); + } } [Test] @@ -212,16 +234,18 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - CreateAndCommitMultipleUserTypes(repository, unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + CreateAndCommitMultipleUserTypes(repository, unitOfWork); - // Act - var result = repository.GetAll(); + // Act + var result = repository.GetAll(); - // Assert - Assert.That(result, Is.Not.Null); - Assert.That(result.Any(), Is.True); - Assert.That(result.Count(), Is.GreaterThanOrEqualTo(3)); + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result.Any(), Is.True); + Assert.That(result.Count(), Is.GreaterThanOrEqualTo(3)); + } } [Test] @@ -230,14 +254,16 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); - // Act - var exists = repository.Exists(userTypes[0].Id); + // Act + var exists = repository.Exists(userTypes[0].Id); - // Assert - Assert.That(exists, Is.True); + // Assert + Assert.That(exists, Is.True); + } } [Test] @@ -246,15 +272,17 @@ namespace Umbraco.Tests.Persistence.Repositories // Arrange var provider = new PetaPocoUnitOfWorkProvider(); var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); + using (var repository = CreateRepository(unitOfWork)) + { + var userTypes = CreateAndCommitMultipleUserTypes(repository, unitOfWork); - // Act - var query = Query.Builder.Where(x => x.Alias == "testUserType1" || x.Alias == "testUserType2"); - var result = repository.Count(query); + // Act + var query = Query.Builder.Where(x => x.Alias == "testUserType1" || x.Alias == "testUserType2"); + var result = repository.Count(query); - // Assert - Assert.That(result, Is.GreaterThanOrEqualTo(2)); + // Assert + Assert.That(result, Is.GreaterThanOrEqualTo(2)); + } } private IUserType[] CreateAndCommitMultipleUserTypes(IUserTypeRepository repository, IUnitOfWork unitOfWork) diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 68211f16ed..34c578d136 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -193,6 +193,7 @@ +