Aligned user group builder with other builders.

This commit is contained in:
Andy Butland
2020-04-18 10:04:28 +02:00
parent e0ffc4bc07
commit 12b9507007
2 changed files with 104 additions and 12 deletions
@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using Moq;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Strings;
using Umbraco.Tests.Common.Builders.Interfaces;
namespace Umbraco.Tests.Common.Builders
@@ -20,15 +21,16 @@ namespace Umbraco.Tests.Common.Builders
IWithAliasBuilder,
IWithNameBuilder
{
private int? _startContentId;
private int? _startMediaId;
private int? _id;
private string _alias;
private string _icon;
private string _name;
private IEnumerable<string> _permissions = Enumerable.Empty<string>();
private IEnumerable<string> _sectionCollection = Enumerable.Empty<string>();
private string _suffix;
private int? _id;
private int? _startContentId;
private int? _startMediaId;
private int? _userCount;
public UserGroupBuilder(TParent parentBuilder) : base(parentBuilder)
{
@@ -45,6 +47,36 @@ namespace Umbraco.Tests.Common.Builders
return this;
}
public UserGroupBuilder<TParent> WithUserCount(int userCount)
{
_userCount = userCount;
return this;
}
public UserGroupBuilder<TParent> WithPermissions(string permissions)
{
_permissions = permissions.Split();
return this;
}
public UserGroupBuilder<TParent> WithPermissions(IList<string> permissions)
{
_permissions = permissions;
return this;
}
public UserGroupBuilder<TParent> WithStartContentId(int startContentId)
{
_startContentId = startContentId;
return this;
}
public UserGroupBuilder<TParent> WithStartMediaId(int startMediaId)
{
_startMediaId = startMediaId;
return this;
}
public IReadOnlyUserGroup BuildReadOnly(IUserGroup userGroup)
{
return Mock.Of<IReadOnlyUserGroup>(x =>
@@ -60,14 +92,26 @@ namespace Umbraco.Tests.Common.Builders
public override IUserGroup Build()
{
var userGroup = Mock.Of<IUserGroup>(x =>
x.StartContentId == _startContentId &&
x.StartMediaId == _startMediaId &&
x.Name == (_name ?? ("TestUserGroup" + _suffix)) &&
x.Alias == (_alias ?? ("testUserGroup" + _suffix)) &&
x.Icon == _icon &&
x.Permissions == _permissions &&
x.AllowedSections == _sectionCollection);
var id = _id ?? 1;
var name = _name ?? ("TestUserGroup" + _suffix);
var alias = _alias ?? ("testUserGroup" + _suffix);
var userCount = _userCount ?? 0;
var startContentId = _startContentId ?? -1;
var startMediaId = _startMediaId ?? -1;
var icon = _icon ?? string.Empty;
var shortStringHelper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig());
var userGroup = new UserGroup(shortStringHelper, userCount, alias, name, _permissions, icon);
userGroup.Id = id;
userGroup.StartContentId = startContentId;
userGroup.StartMediaId = startMediaId;
foreach (var item in _sectionCollection)
{
userGroup.AddAllowedSection(item);
}
return userGroup;
}
@@ -77,7 +121,6 @@ namespace Umbraco.Tests.Common.Builders
set => _id = value;
}
string IWithIconBuilder.Icon
{
get => _icon;
@@ -0,0 +1,49 @@
using System;
using NUnit.Framework;
using Umbraco.Tests.Common.Builders;
using Umbraco.Tests.Common.Builders.Extensions;
namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders
{
[TestFixture]
public class UserGroupBuilderTests
{
[Test]
public void Is_Built_Correctly()
{
// Arrange
const int testId = 10;
const string testAlias = "test";
const string testName = "Test";
const int testUserCount = 11;
const string testIcon = "icon";
const string testPermissions = "abc";
const int testStartContentId = 3;
const int testStartMediaId = 8;
var builder = new UserGroupBuilder();
// Act
var userGroup = builder
.WithId(testId)
.WithAlias(testAlias)
.WithName(testName)
.WithUserCount(testUserCount)
.WithIcon(testIcon)
.WithPermissions(testPermissions)
.WithStartContentId(testStartContentId)
.WithStartMediaId(testStartMediaId)
.Build();
// Assert
Assert.AreEqual(testId, userGroup.Id);
Assert.AreEqual(testAlias, userGroup.Alias);
Assert.AreEqual(testName, userGroup.Name);
Assert.AreEqual(testUserCount, userGroup.UserCount);
Assert.AreEqual(testIcon, userGroup.Icon);
Assert.AreEqual(testPermissions, string.Join(string.Empty, userGroup.Permissions));
Assert.AreEqual(testStartContentId, userGroup.StartContentId);
Assert.AreEqual(testStartMediaId, userGroup.StartMediaId);
}
}
}