Aligned user group builder with other builders.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user