-
Notifications
You must be signed in to change notification settings - Fork 3
/
UmbracoBaseTest.cs
85 lines (74 loc) · 3.67 KB
/
UmbracoBaseTest.cs
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
76
77
78
79
80
81
82
83
84
85
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using Moq;
using NUnit.Framework;
using Umbraco.Core.Cache;
using Umbraco.Core.Dictionary;
using Umbraco.Core.Logging;
using Umbraco.Core.Mapping;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Services;
using Umbraco.Web;
using Umbraco.Web.PublishedCache;
using Umbraco.Web.Security;
using Umbraco.Web.Security.Providers;
namespace UmbracoUnitTesting.Tests.Shared {
/// <summary>
/// Docs: https://our.umbraco.com/documentation/Implementation/Unit-Testing/#mocking
/// </summary>
public abstract class UmbracoBaseTest
{
public ServiceContext ServiceContext;
public Umbraco.Web.Security.MembershipHelper MembershipHelper;
public Umbraco.Web.UmbracoHelper UmbracoHelper;
public UmbracoMapper UmbracoMapper;
public Mock<ICultureDictionary> CultureDictionary;
public Mock<ICultureDictionaryFactory> CultureDictionaryFactory;
public Mock<IPublishedContentQuery> PublishedContentQuery;
public Mock<HttpContextBase> HttpContext;
public Mock<IMemberService> memberService;
public Mock<IPublishedMemberCache> memberCache;
[SetUp]
public virtual void SetUp()
{
this.SetupHttpContext();
this.SetupCultureDictionaries();
this.SetupPublishedContentQuerying();
this.SetupMembership();
this.ServiceContext = ServiceContext.CreatePartial();
this.UmbracoHelper = new Umbraco.Web.UmbracoHelper(Mock.Of<IPublishedContent>(), Mock.Of<ITagQuery>(), this.CultureDictionaryFactory.Object, Mock.Of<IUmbracoComponentRenderer>(), this.PublishedContentQuery.Object, this.MembershipHelper);
this.UmbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new List<IMapDefinition>()));
}
public virtual void SetupHttpContext()
{
this.HttpContext = new Mock<HttpContextBase>();
}
public virtual void SetupCultureDictionaries()
{
this.CultureDictionary = new Mock<ICultureDictionary>();
this.CultureDictionaryFactory = new Mock<ICultureDictionaryFactory>();
this.CultureDictionaryFactory.Setup(x => x.CreateDictionary()).Returns(this.CultureDictionary.Object);
}
public virtual void SetupPublishedContentQuerying()
{
this.PublishedContentQuery = new Mock<IPublishedContentQuery>();
}
public virtual void SetupMembership()
{
this.memberService = new Mock<IMemberService>();
var memberTypeService = Mock.Of<IMemberTypeService>();
var membershipProvider = new MembersMembershipProvider(memberService.Object, memberTypeService);
this.memberCache = new Mock<IPublishedMemberCache>();
this.MembershipHelper = new Umbraco.Web.Security.MembershipHelper(this.HttpContext.Object, this.memberCache.Object, membershipProvider, Mock.Of<RoleProvider>(), memberService.Object, memberTypeService, Mock.Of<IUserService>(), Mock.Of<IPublicAccessService>(), AppCaches.NoCache, Mock.Of<ILogger>());
}
public void SetupPropertyValue(Mock<IPublishedContent> publishedContentMock, string alias, object value, string culture = null, string segment = null)
{
var property = new Mock<IPublishedProperty>();
property.Setup(x => x.Alias).Returns(alias);
property.Setup(x => x.GetValue(culture, segment)).Returns(value);
property.Setup(x => x.HasValue(culture, segment)).Returns(value != null);
publishedContentMock.Setup(x => x.GetProperty(alias)).Returns(property.Object);
}
}
}