From 31b2f1ec4fa75ad55bfd5c69f5190781efeb3844 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Wed, 7 Oct 2020 15:47:26 +0200 Subject: [PATCH] Combined test user/group test objects created for repository and service tests. --- .../Builders/UserBuilder.cs | 10 +++ .../Builders/UserGroupBuilder.cs | 6 +- .../Repositories/UserGroupRepositoryTest.cs | 27 ++++--- .../Services/UserServiceTests.cs | 78 +++++++++++-------- 4 files changed, 70 insertions(+), 51 deletions(-) diff --git a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs index e88252cc69..46f45b0c8c 100644 --- a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs @@ -209,6 +209,16 @@ namespace Umbraco.Tests.Common.Builders return list; } + public static User CreateUser(string suffix = "") + { + return new UserBuilder() + .WithIsApproved(true) + .WithName("TestUser" + suffix) + .WithLogin("TestUser" + suffix, "testing") + .WithEmail("test" + suffix + "@test.com") + .Build(); + } + int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs index 229285baae..9785c27218 100644 --- a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs @@ -122,11 +122,11 @@ namespace Umbraco.Tests.Common.Builders return userGroup; } - public static UserGroup CreateUserGroup(string suffix = "", string[] permissions = null, string[] allowedSections = null) + public static UserGroup CreateUserGroup(string alias = "testGroup", string name = "Test Group", string suffix = "", string[] permissions = null, string[] allowedSections = null) { return (UserGroup)new UserGroupBuilder() - .WithAlias("testUserGroup" + suffix) - .WithName("TestUserGroup" + suffix) + .WithAlias(alias + suffix) + .WithName(name + suffix) .WithPermissions(permissions ?? new[] { "A", "B", "C" }) .WithAllowedSections(allowedSections ?? new[] { "content", "media" }) .Build(); diff --git a/src/Umbraco.Tests.Integration/Persistence/Repositories/UserGroupRepositoryTest.cs b/src/Umbraco.Tests.Integration/Persistence/Repositories/UserGroupRepositoryTest.cs index 387207c653..7d2383fc93 100644 --- a/src/Umbraco.Tests.Integration/Persistence/Repositories/UserGroupRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Persistence/Repositories/UserGroupRepositoryTest.cs @@ -50,8 +50,8 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories { var repository = CreateRepository(provider); - var userGroup1 = UserGroupBuilder.CreateUserGroup("1"); - var userGroup2 = UserGroupBuilder.CreateUserGroup("2"); + var userGroup1 = UserGroupBuilder.CreateUserGroup(suffix: "1"); + var userGroup2 = UserGroupBuilder.CreateUserGroup(suffix: "2"); // Act repository.Save(userGroup1); @@ -178,7 +178,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories CreateAndCommitMultipleUserGroups(repository); // Act - var query = scope.SqlContext.Query().Where(x => x.Alias == "testUserGroup1"); + var query = scope.SqlContext.Query().Where(x => x.Alias == "testGroup1"); var result = repository.Get(query); // Assert @@ -259,7 +259,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories var userGroups = CreateAndCommitMultipleUserGroups(repository); // Act - var query = scope.SqlContext.Query().Where(x => x.Alias == "testUserGroup1" || x.Alias == "testUserGroup2"); + var query = scope.SqlContext.Query().Where(x => x.Alias == "testGroup1" || x.Alias == "testGroup2"); var result = repository.Count(query); // Assert @@ -380,7 +380,6 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories } } - [Test] public void Get_Groups_Assigned_To_Section() { @@ -390,9 +389,9 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories { var repository = CreateRepository(provider); - var user1 = UserGroupBuilder.CreateUserGroup("1", allowedSections: new[] { "test1" }); - var user2 = UserGroupBuilder.CreateUserGroup("2", allowedSections: new[] { "test2" }); - var user3 = UserGroupBuilder.CreateUserGroup("3", allowedSections: new[] { "test1" }); + var user1 = UserGroupBuilder.CreateUserGroup(suffix: "1", allowedSections: new[] { "test1" }); + var user2 = UserGroupBuilder.CreateUserGroup(suffix: "2", allowedSections: new[] { "test2" }); + var user3 = UserGroupBuilder.CreateUserGroup(suffix: "3", allowedSections: new[] { "test1" }); repository.Save(user1); repository.Save(user2); repository.Save(user3); @@ -404,17 +403,17 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories // Assert Assert.AreEqual(2, groups.Count()); var names = groups.Select(x => x.Name).ToArray(); - Assert.IsTrue(names.Contains("TestUserGroup1")); - Assert.IsFalse(names.Contains("TestUserGroup2")); - Assert.IsTrue(names.Contains("TestUserGroup3")); + Assert.IsTrue(names.Contains("Test Group1")); + Assert.IsFalse(names.Contains("Test Group2")); + Assert.IsTrue(names.Contains("Test Group3")); } } private IUserGroup[] CreateAndCommitMultipleUserGroups(IUserGroupRepository repository) { - var userGroup1 = UserGroupBuilder.CreateUserGroup("1"); - var userGroup2 = UserGroupBuilder.CreateUserGroup("2"); - var userGroup3 = UserGroupBuilder.CreateUserGroup("3"); + var userGroup1 = UserGroupBuilder.CreateUserGroup(suffix: "1"); + var userGroup2 = UserGroupBuilder.CreateUserGroup(suffix: "2"); + var userGroup3 = UserGroupBuilder.CreateUserGroup(suffix: "3"); repository.Save(userGroup1); repository.Save(userGroup2); repository.Save(userGroup3); diff --git a/src/Umbraco.Tests.Integration/Services/UserServiceTests.cs b/src/Umbraco.Tests.Integration/Services/UserServiceTests.cs index a75485ad76..802bfd9e1b 100644 --- a/src/Umbraco.Tests.Integration/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests.Integration/Services/UserServiceTests.cs @@ -31,6 +31,7 @@ namespace Umbraco.Tests.Integration.Services { private UserService UserService => (UserService) GetRequiredService(); private IContentTypeService ContentTypeService => GetRequiredService(); + private IFileService FileService => GetRequiredService(); private IContentService ContentService => GetRequiredService(); [Test] @@ -38,8 +39,12 @@ namespace Umbraco.Tests.Integration.Services { // Arrange var user = CreateTestUser(out _); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -64,8 +69,11 @@ namespace Umbraco.Tests.Integration.Services // Arrange var user = CreateTestUser(out var userGroup); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -96,8 +104,11 @@ namespace Umbraco.Tests.Integration.Services // Arrange var userGroup = CreateTestUserGroup(); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -128,8 +139,11 @@ namespace Umbraco.Tests.Integration.Services // Arrange var userGroup = CreateTestUserGroup(); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -170,8 +184,11 @@ namespace Umbraco.Tests.Integration.Services user.AddGroup(userGroup3); UserService.Save(user); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -239,8 +256,11 @@ namespace Umbraco.Tests.Integration.Services // Arrange var userGroup = CreateTestUserGroup(); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var content = new[] { ContentBuilder.CreateSimpleContent(contentType), @@ -400,8 +420,11 @@ namespace Umbraco.Tests.Integration.Services // Arrange var userGroup = CreateTestUserGroup(); - var contentType = ContentTypeBuilder.CreateSimpleContentType(); + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); + var parent = ContentBuilder.CreateSimpleContent(contentType); ContentService.Save(parent); var child1 = ContentBuilder.CreateSimpleContent(contentType, "child1", parent.Id); @@ -499,7 +522,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder. CreateMulipleUsers(10); UserService.Save(users); //don't find this - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.Email = "hello@hello.com"; UserService.Save(customUser); @@ -514,7 +537,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder. CreateMulipleUsers(10); UserService.Save(users); //include this - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.Email = "hello@test.com"; UserService.Save(customUser); @@ -529,7 +552,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder. CreateMulipleUsers(10); UserService.Save(users); //include this - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.Email = "hello@test.com"; UserService.Save(customUser); @@ -544,7 +567,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder. CreateMulipleUsers(10); UserService.Save(users); //include this - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.Email = "hello@test.com"; UserService.Save(customUser); @@ -638,7 +661,7 @@ namespace Umbraco.Tests.Integration.Services { var users = UserBuilder. CreateMulipleUsers(10); UserService.Save(users); - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); UserService.Save(customUser); var found = UserService.GetCount(MemberCountType.All); @@ -654,7 +677,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder. CreateMulipleUsers(10, (i, member) => member.LastLoginDate = DateTime.Now.AddMinutes(i * -2)); UserService.Save(users); - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); throw new NotImplementedException(); } @@ -664,7 +687,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder.CreateMulipleUsers(10, (i, member) => member.IsLockedOut = i % 2 == 0); UserService.Save(users); - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.IsLockedOut = true; UserService.Save(customUser); @@ -679,7 +702,7 @@ namespace Umbraco.Tests.Integration.Services var users = UserBuilder.CreateMulipleUsers(10, (i, member) => member.IsApproved = i % 2 == 0); UserService.Save(users); - var customUser = CreateUser(); + var customUser = UserBuilder.CreateUser(); customUser.IsApproved = false; UserService.Save(customUser); @@ -970,8 +993,9 @@ namespace Umbraco.Tests.Integration.Services private Content[] BuildContentItems(int numberToCreate) { - var contentType = ContentTypeBuilder.CreateSimpleContentType(); - + var template = TemplateBuilder.CreateTextPageTemplate(); + FileService.SaveTemplate(template); + var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId: template.Id); ContentTypeService.Save(contentType); var startContentItems = new List(); @@ -984,16 +1008,6 @@ namespace Umbraco.Tests.Integration.Services return startContentItems.ToArray(); } - private static User CreateUser(string suffix = "") - { - return new UserBuilder() - .WithIsApproved(true) - .WithName("TestUser" + suffix) - .WithLogin("TestUser" + suffix, "testing") - .WithEmail("test" + suffix + "@test.com") - .Build(); - } - private IUser CreateTestUser(out IUserGroup userGroup) { userGroup = CreateTestUserGroup(); @@ -1029,16 +1043,12 @@ namespace Umbraco.Tests.Integration.Services private UserGroup CreateTestUserGroup(string alias = "testGroup", string name = "Test Group") { - var userGroup = new UserGroupBuilder() - .WithAlias(alias) - .WithName(name) - .WithPermissions("ABCDEFGHIJ1234567") - .WithAllowedSections(new[] { "content", "media" }) - .Build(); + var permissions = "ABCDEFGHIJ1234567".ToCharArray().Select(x => x.ToString()).ToArray(); + var userGroup = UserGroupBuilder.CreateUserGroup(alias, name, permissions: permissions); UserService.Save(userGroup); - return (UserGroup)userGroup; + return userGroup; } } }