-
Notifications
You must be signed in to change notification settings - Fork 109
/
Copy pathNavigationRootResolverTests.cs
105 lines (87 loc) · 2.94 KB
/
NavigationRootResolverTests.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
using BasicCompany.Feature.Navigation.Services;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.FakeDb;
using Xunit;
namespace BasicCompany.Feature.Navigation.Tests
{
public class NavigationRootResolverTests : IDisposable
{
private Db _db;
private Item _rootItem;
public NavigationRootResolverTests()
{
var homeTemplate = ID.NewID;
_db = new Db
{
new DbTemplate(Templates.NavigationRoot.Id),
new DbTemplate(homeTemplate)
{
BaseIDs = new[] { Templates.NavigationRoot.Id }
},
new DbItem("Home", ID.NewID, homeTemplate)
{
new DbItem("Child")
{
new DbItem("Grandchild")
}
}
};
_rootItem = _db.GetItem("/sitecore/content/Home");
}
public void Dispose()
{
_db?.Dispose();
_db = null;
}
[Fact]
public void ResolvesWhenContextItemIsRoot()
{
var contextItem = _db.GetItem("/sitecore/content/Home");
var rootResolver = new NavigationRootResolver();
var resolvedItem = rootResolver.GetNavigationRoot(contextItem);
Assert.Equal(_rootItem.ID, resolvedItem.ID);
}
[Fact]
public void ResolvesWhenContextItemIsChild()
{
var contextItem = _db.GetItem("/sitecore/content/Home/Child");
var rootResolver = new NavigationRootResolver();
var resolvedItem = rootResolver.GetNavigationRoot(contextItem);
Assert.Equal(_rootItem.ID, resolvedItem.ID);
}
[Fact]
public void ResolvesWhenContextItemIsGrandchild()
{
var contextItem = _db.GetItem("/sitecore/content/Home/Child/Grandchild");
var rootResolver = new NavigationRootResolver();
var resolvedItem = rootResolver.GetNavigationRoot(contextItem);
Assert.Equal(_rootItem.ID, resolvedItem.ID);
}
[Fact]
public void ReturnsNullWhenNoNavigationRoot()
{
using (var db = new Db
{
new DbItem("Home")
{
new DbItem("Child")
}
})
{
var contextItem = _db.GetItem("/sitecore/content/Home/Child");
var rootResolver = new NavigationRootResolver();
var resolvedItem = rootResolver.GetNavigationRoot(contextItem);
Assert.Null(resolvedItem);
}
}
[Fact]
public void ReturnsNullWhenContextItemIsNull()
{
var rootResolver = new NavigationRootResolver();
var resolvedItem = rootResolver.GetNavigationRoot(null);
Assert.Null(resolvedItem);
}
}
}