Skip to content

Commit 8f29b60

Browse files
committed
test: added missing implicit tests
1 parent 876b839 commit 8f29b60

File tree

2 files changed

+34
-22
lines changed

2 files changed

+34
-22
lines changed

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeDelete_WithDbValue_Tests.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
namespace UnitTests.ResourceHooks
1111
{
12-
1312
public class BeforeDelete_WithDbValues_Tests : HooksTestsSetup
1413
{
1514
private readonly DbContextOptions<AppDbContext> options;
@@ -29,7 +28,6 @@ public BeforeDelete_WithDbValues_Tests()
2928
context.Set<Person>().Add(person);
3029
context.SaveChanges();
3130
});
32-
3331
}
3432

3533
[Fact]
@@ -53,9 +51,8 @@ public void BeforeDelete()
5351
VerifyNoOtherCalls(personResourceMock, todoResourceMock, passportResourceMock);
5452
}
5553

56-
5754
[Fact]
58-
public void BeforeDelete_NoParentHook()
55+
public void BeforeDelete_No_Parent_Hooks()
5956
{
6057
// arrange
6158
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, NoHooks);
@@ -74,6 +71,25 @@ public void BeforeDelete_NoParentHook()
7471
VerifyNoOtherCalls(personResourceMock, todoResourceMock, passportResourceMock);
7572
}
7673

74+
[Fact]
75+
public void BeforeDelete_No_Children_Hooks()
76+
{
77+
// arrange
78+
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
79+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
80+
var passportDiscovery = SetDiscoverableHooks<Passport>(NoHooks);
81+
(var contextMock, var hookExecutor, var personResourceMock, var todoResourceMock,
82+
var passportResourceMock) = CreateTestObjects(personDiscovery, todoDiscovery, passportDiscovery, repoDbContextOptions: options);
83+
84+
var todoList = CreateTodoWithOwner();
85+
// act
86+
hookExecutor.BeforeDelete(new List<Person> { person }, ResourceAction.Delete);
87+
88+
// assert
89+
personResourceMock.Verify(rd => rd.BeforeDelete(It.IsAny<IEnumerable<Person>>(), It.IsAny<ResourceAction>()), Times.Once());
90+
VerifyNoOtherCalls(personResourceMock, todoResourceMock, passportResourceMock);
91+
}
92+
7793
private bool CheckImplicitTodos(IUpdatedRelationshipHelper<TodoItem> rh)
7894
{
7995
var todos = rh.GetEntitiesRelatedWith<Person>().ToList();
@@ -85,7 +101,6 @@ private bool CheckImplicitPassports(IUpdatedRelationshipHelper<Passport> rh)
85101
var passports = rh.GetEntitiesRelatedWith<Person>().Single().Value;
86102
return passports.Count == 1;
87103
}
88-
89104
}
90105
}
91106

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeUpdate_WithDbValues_Tests.cs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public BeforeUpdate_WithDbValues_Tests()
4848
[Fact]
4949
public void BeforeUpdate()
5050
{
51+
// arrange
5152
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooks, EnableDbValuesEverywhere);
5253
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
5354
(var contextMock, var hookExecutor, var todoResourceMock,
@@ -63,56 +64,49 @@ public void BeforeUpdate()
6364
It.IsAny<IUpdatedRelationshipHelper<Person>>(),
6465
ResourceAction.Patch),
6566
Times.Once());
66-
6767
ownerResourceMock.Verify(rd => rd.BeforeImplicitUpdateRelationship(
6868
It.Is<IUpdatedRelationshipHelper<Person>>(rh => PersonCheck(lastName + lastName, rh)),
6969
ResourceAction.Patch),
7070
Times.Once());
71-
7271
todoResourceMock.Verify(rd => rd.BeforeImplicitUpdateRelationship(
7372
It.Is<IUpdatedRelationshipHelper<TodoItem>>( rh => TodoCheck(rh, description + description)),
7473
ResourceAction.Patch),
7574
Times.Once());
76-
7775
VerifyNoOtherCalls(todoResourceMock, ownerResourceMock);
7876
}
7977

8078

8179
[Fact]
82-
public void BeforeUpdate_Deleting_Relationship() // TODO l=3 implicit needs to be tested here too
80+
public void BeforeUpdate_Deleting_Relationship()
8381
{
82+
// arrange
8483
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooks, EnableDbValuesEverywhere);
8584
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
8685
(var contextMock, var hookExecutor, var todoResourceMock,
8786
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, repoDbContextOptions: options);
88-
8987
var attr = ResourceGraph.Instance.GetContextEntity(typeof(TodoItem)).Relationships.Single(r => r.PublicRelationshipName == "one-to-one-person");
9088
contextMock.Setup(c => c.RelationshipsToUpdate).Returns(new Dictionary<RelationshipAttribute, object>() { { attr, new object() } });
9189

9290
// act
9391
var todoList = new List<TodoItem>() { new TodoItem { Id = this.todoList[0].Id } };
9492
hookExecutor.BeforeUpdate(todoList, ResourceAction.Patch);
9593

96-
9794
// assert
9895
todoResourceMock.Verify(rd => rd.BeforeUpdate(It.Is<EntityDiff<TodoItem>>((diff) => TodoCheck(diff, description)), ResourceAction.Patch), Times.Once());
99-
100-
10196
ownerResourceMock.Verify(rd => rd.BeforeImplicitUpdateRelationship(
10297
It.Is<IUpdatedRelationshipHelper<Person>>(rh => PersonCheck(lastName + lastName, rh)),
10398
ResourceAction.Patch),
10499
Times.Once());
105-
106100
VerifyNoOtherCalls(todoResourceMock, ownerResourceMock);
107101
}
108102

109103

110104
[Fact]
111105
public void BeforeUpdate_Without_Parent_Hook_Implemented()
112106
{
107+
// arrange
113108
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
114109
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
115-
116110
(var contextMock, var hookExecutor, var todoResourceMock,
117111
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, repoDbContextOptions: options);
118112

@@ -125,33 +119,38 @@ public void BeforeUpdate_Without_Parent_Hook_Implemented()
125119
It.IsAny<IUpdatedRelationshipHelper<Person>>(),
126120
ResourceAction.Patch),
127121
Times.Once());
128-
129122
ownerResourceMock.Verify(rd => rd.BeforeImplicitUpdateRelationship(
130123
It.Is<IUpdatedRelationshipHelper<Person>>(rh => PersonCheck(lastName + lastName, rh)),
131124
ResourceAction.Patch),
132125
Times.Once());
133-
134126
VerifyNoOtherCalls(todoResourceMock, ownerResourceMock);
135127
}
136128

137129
[Fact]
138-
public void BeforeUpdate_Without_Child_Hook_Implemented() // TODO l=3 implicit needs to be tested here too
130+
public void BeforeUpdate_Without_Child_Hook_Implemented()
139131
{
140132
// arrange
141133
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooks, EnableDbValuesEverywhere);
142134
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
143-
144135
(var contextMock, var hookExecutor, var todoResourceMock,
145136
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, repoDbContextOptions: options);
146137

147138
// act
148139
hookExecutor.BeforeUpdate(todoList, ResourceAction.Patch);
140+
141+
// assert
142+
todoResourceMock.Verify(rd => rd.BeforeUpdate(It.Is<EntityDiff<TodoItem>>((diff) => TodoCheck(diff, description)), ResourceAction.Patch), Times.Once());
143+
todoResourceMock.Verify(rd => rd.BeforeImplicitUpdateRelationship(
144+
It.Is<IUpdatedRelationshipHelper<TodoItem>>(rh => TodoCheck(rh, description + description)),
145+
ResourceAction.Patch),
146+
Times.Once());
147+
VerifyNoOtherCalls(todoResourceMock, ownerResourceMock);
149148
}
150149

151150
[Fact]
152151
public void BeforeUpdate_NoImplicit()
153152
{
154-
153+
// arrange
155154
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, new ResourceHook[] { ResourceHook.BeforeUpdate });
156155
var personDiscovery = SetDiscoverableHooks<Person>(AllHooksNoImplicit, new ResourceHook[] { ResourceHook.BeforeUpdateRelationship });
157156
(var contextMock, var hookExecutor, var todoResourceMock,
@@ -167,7 +166,6 @@ public void BeforeUpdate_NoImplicit()
167166
It.IsAny<IUpdatedRelationshipHelper<Person>>(),
168167
ResourceAction.Patch),
169168
Times.Once());
170-
171169
VerifyNoOtherCalls(todoResourceMock, ownerResourceMock);
172170
}
173171

@@ -198,7 +196,6 @@ public void BeforeUpdate_NoImplicit_Without_Child_Hook_Implemented()
198196
// arrange
199197
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, new ResourceHook[] { ResourceHook.BeforeUpdate });
200198
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
201-
202199
(var contextMock, var hookExecutor, var todoResourceMock,
203200
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, repoDbContextOptions: options);
204201

0 commit comments

Comments
 (0)