-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMembershipHelperTests.cs
More file actions
75 lines (63 loc) · 2.98 KB
/
MembershipHelperTests.cs
File metadata and controls
75 lines (63 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System.Security.Principal;
using System.Threading;
using System.Web.Mvc;
using Moq;
using NUnit.Framework;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Web;
using UmbracoUnitTesting.Core.Features.Member;
using UmbracoUnitTesting.Tests.Shared;
namespace UmbracoUnitTesting.Tests.MembershipHelper
{
/// <inheritdoc />
/// <summary>
/// Docs: https://our.umbraco.com/documentation/Implementation/Unit-Testing/#testing-getcurrentmember-using-the-membershiphelper
/// </summary>
[TestFixture]
public class MembershipHelperTests : UmbracoBaseTest
{
private MemberProfileController controller;
[SetUp]
public override void SetUp()
{
base.SetUp();
this.controller = new MemberProfileController(Mock.Of<IGlobalSettings>(), Mock.Of<IUmbracoContextAccessor>(), base.ServiceContext, AppCaches.NoCache, Mock.Of<IProfilingLogger>(), base.UmbracoHelper);
}
[Test]
[TestCase("member1")]
[TestCase("member2")]
public void GivenExistingMemberIsAuthenticated_WhenIndexAction_ThenReturnViewModelWithCurrentMember(string username)
{
var member = new Mock<IMember>();
member.Setup(x => x.Username).Returns(username);
base.memberService.Setup(x => x.GetByUsername(username)).Returns(member.Object);
var expected = Mock.Of<IPublishedContent>();
base.memberCache.Setup(x => x.GetByMember(member.Object)).Returns(expected);
var identity = new Mock<IIdentity>();
identity.Setup(user => user.IsAuthenticated).Returns(true);
identity.Setup(user => user.Name).Returns(username);
var principal = new Mock<IPrincipal>();
principal.Setup(user => user.Identity).Returns(identity.Object);
this.HttpContext.Setup(ctx => ctx.User).Returns(principal.Object);
Thread.CurrentPrincipal = principal.Object;
var actual = (MemberProfileViewModel) ((ViewResult) this.controller.Index(new Umbraco.Web.Models.ContentModel(Mock.Of<IPublishedContent>()))).Model;
Assert.AreEqual(expected, actual.Member);
}
[Test]
[TestCase("member1")]
[TestCase("member2")]
public void GivenExistingMemberIsNotAuthenticated_WhenIndexAction_ThenReturnViewModelWithNullMember(string username)
{
var member = new Mock<IMember>();
member.Setup(x => x.Username).Returns(username);
base.memberService.Setup(x => x.GetByUsername(username)).Returns(member.Object);
base.memberCache.Setup(x => x.GetByMember(member.Object)).Returns(Mock.Of<IPublishedContent>());
var actual = (MemberProfileViewModel)((ViewResult)this.controller.Index(new Umbraco.Web.Models.ContentModel(Mock.Of<IPublishedContent>()))).Model;
Assert.Null(actual.Member);
}
}
}