From 8c42d563bd2ddaf3a03d8ee319698c4ab9363afe Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Fri, 13 Aug 2021 18:51:06 +0200 Subject: [PATCH] Updated unittest to match real usecase --- .../Security/PublicAccessCheckerTests.cs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs index 52c68b551f..c2760e92f3 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/PublicAccessCheckerTests.cs @@ -5,6 +5,7 @@ using System.Security.Claims; using System.Security.Principal; using System.Text; using System.Threading.Tasks; +using AutoFixture.NUnit3; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Moq; @@ -117,15 +118,28 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security [AutoMoqData] [Test] - public async Task GivenMemberLoggedIn_WhenMemberHasNoRoles_ThenAccessDeniedResult( + public async Task GivenMemberLoggedIn_WhenMemberHasNoRolesAndWrongUsername_ThenAccessDeniedResult( IMemberManager memberManager, IPublicAccessService publicAccessService, - IContentService contentService) + IContentService contentService, + IContent protectedNode, + IContent loginNode, + IContent noAccessNode, + string username) { PublicAccessChecker sut = CreateSut(memberManager, publicAccessService, contentService, out HttpContext httpContext); + Mock.Get(publicAccessService).Setup(x => x.GetEntryForContent(It.IsAny())) + .Returns(new PublicAccessEntry(protectedNode, loginNode, noAccessNode, new [] + { + new PublicAccessRule(Guid.Empty, Guid.Empty) + { + RuleType = Constants.Conventions.PublicAccess.MemberUsernameRuleType, + RuleValue = "AnotherUsername" + } + })); httpContext.User = GetLoggedInUser(); - MockGetUserAsync(memberManager, new MemberIdentityUser()); + MockGetUserAsync(memberManager, new MemberIdentityUser(){IsApproved = true, UserName = username}); MockGetRolesAsync(memberManager, Enumerable.Empty()); var result = await sut.HasMemberAccessToContentAsync(123);