Skip to content

Commit 9379d2f

Browse files
committed
fix: wrong pipeline in after read
1 parent 8f29b60 commit 9379d2f

16 files changed

+148
-134
lines changed

src/JsonApiDotNetCore/Hooks/ResourceHookExecutor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ void Reassign(NodeInLayer node)
260260

261261
public virtual void AfterRead<TEntity>(IEnumerable<TEntity> entities, ResourceAction pipeline) where TEntity : class, IIdentifiable
262262
{
263-
var hookContainer = _meta.GetResourceHookContainer<TEntity>(ResourceHook.AfterCreate);
263+
var hookContainer = _meta.GetResourceHookContainer<TEntity>(ResourceHook.AfterRead);
264264
var layer = _layerFactory.CreateLayer(entities);
265265
if (hookContainer != null)
266266
{

test/UnitTests/ResourceHooks/ResourceHookExecutor/AfterCreateTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
//{
1111
// public class AfterCreateTests : HooksTestsSetup
1212
// {
13+
// private readonly ResourceHook[] targetHooks = { ResourceHook.AfterCreate };
14+
1315
// [Fact]
1416
// public void AfterCreate()
1517
// {

test/UnitTests/ResourceHooks/ResourceHookExecutor/AfterDeleteTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ namespace UnitTests.ResourceHooks
88
{
99
public class AfterDeleteTests : HooksTestsSetup
1010
{
11+
readonly ResourceHook[] targetHooks = { ResourceHook.AfterDelete };
1112
[Fact]
1213
public void AfterDelete()
1314
{
1415
// arrange
15-
var discovery = SetDiscoverableHooks<TodoItem>();
16+
var discovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
1617
(var contextMock, var hookExecutor, var resourceDefinitionMock) = CreateTestObjects(discovery);
1718

1819
var todoList = CreateTodoWithOwner();
@@ -28,7 +29,7 @@ public void AfterDelete()
2829
public void AfterDelete_Without_Any_Hook_Implemented()
2930
{
3031
// arrange
31-
var discovery = SetDiscoverableHooks<TodoItem>(new ResourceHook[0]);
32+
var discovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
3233
(var contextMock, var hookExecutor, var resourceDefinitionMock) = CreateTestObjects(discovery);
3334

3435
var todoList = CreateTodoWithOwner();

test/UnitTests/ResourceHooks/ResourceHookExecutor/AfterUpdateTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
//{
1111
// public class AfterUpdateTests : HooksTestsSetup
1212
// {
13+
// private readonly ResourceHook[] targetHooks = { ResourceHook.AfterUpdate };
1314
// public AfterUpdateTests()
1415
// {
1516
// // Build() exposes the static ResourceGraphBuilder.Instance member, which

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeCreateTests.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ namespace UnitTests.ResourceHooks
88
{
99
public class BeforeCreateTests : HooksTestsSetup
1010
{
11+
private readonly ResourceHook[] targetHooks = { ResourceHook.BeforeCreate, ResourceHook.BeforeUpdateRelationship };
12+
1113
[Fact]
1214
public void BeforeCreate()
1315
{
1416
// arrange
15-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, NoHooks);
16-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooksNoImplicit, NoHooks);
17+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
18+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
1719

1820
(var contextMock, var hookExecutor, var todoResourceMock,
1921
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
@@ -31,8 +33,8 @@ public void BeforeCreate()
3133
public void BeforeCreate_Without_Parent_Hook_Implemented()
3234
{
3335
// arrange
34-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
35-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooksNoImplicit, NoHooks);
36+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
37+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
3638

3739
(var contextMock, var hookExecutor, var todoResourceMock,
3840
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
@@ -49,8 +51,8 @@ public void BeforeCreate_Without_Parent_Hook_Implemented()
4951
public void BeforeCreate_Without_Child_Hook_Implemented()
5052
{
5153
// arrange
52-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, NoHooks);
53-
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
54+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
55+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
5456

5557
(var contextMock, var hookExecutor, var todoResourceMock,
5658
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
@@ -66,8 +68,8 @@ public void BeforeCreate_Without_Child_Hook_Implemented()
6668
public void BeforeCreate_Without_Any_Hook_Implemented()
6769
{
6870
// arrange
69-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
70-
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
71+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
72+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
7173

7274
(var contextMock, var hookExecutor, var todoResourceMock,
7375
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeDeleteTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66

77
namespace UnitTests.ResourceHooks
88
{
9-
109
public class BeforeDeleteTests : HooksTestsSetup
1110
{
11+
private readonly ResourceHook[] targetHooks = { ResourceHook.BeforeDelete };
12+
1213
[Fact]
1314
public void BeforeDelete()
1415
{
1516
// arrange
16-
var discovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, NoHooks);
17+
var discovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
1718
(var contextMock, var hookExecutor, var resourceDefinitionMock) = CreateTestObjects(discovery);
1819

1920
var todoList = CreateTodoWithOwner();
@@ -29,7 +30,7 @@ public void BeforeDelete()
2930
public void BeforeDelete_Without_Any_Hook_Implemented()
3031
{
3132
// arrange
32-
var discovery = SetDiscoverableHooks<TodoItem>(NoHooks, NoHooks);
33+
var discovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
3334
(var contextMock, var hookExecutor, var resourceDefinitionMock) = CreateTestObjects(discovery);
3435

3536
var todoList = CreateTodoWithOwner();

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeDelete_WithDbValue_Tests.cs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ namespace UnitTests.ResourceHooks
1111
{
1212
public class BeforeDelete_WithDbValues_Tests : HooksTestsSetup
1313
{
14+
private readonly ResourceHook[] targetHooks = { ResourceHook.BeforeDelete, ResourceHook.BeforeImplicitUpdateRelationship, ResourceHook.BeforeUpdateRelationship };
15+
1416
private readonly DbContextOptions<AppDbContext> options;
1517
private readonly Person person;
1618
public BeforeDelete_WithDbValues_Tests()
@@ -34,9 +36,9 @@ public BeforeDelete_WithDbValues_Tests()
3436
public void BeforeDelete()
3537
{
3638
// arrange
37-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
38-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooks, EnableDbValuesEverywhere);
39-
var passportDiscovery = SetDiscoverableHooks<Passport>(AllHooks, EnableDbValuesEverywhere);
39+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, EnableDbValues);
40+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, EnableDbValues);
41+
var passportDiscovery = SetDiscoverableHooks<Passport>(targetHooks, EnableDbValues);
4042
(var contextMock, var hookExecutor, var personResourceMock, var todoResourceMock,
4143
var passportResourceMock) = CreateTestObjects(personDiscovery, todoDiscovery, passportDiscovery, repoDbContextOptions: options);
4244

@@ -55,9 +57,9 @@ public void BeforeDelete()
5557
public void BeforeDelete_No_Parent_Hooks()
5658
{
5759
// arrange
58-
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, NoHooks);
59-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooks, EnableDbValuesEverywhere);
60-
var passportDiscovery = SetDiscoverableHooks<Passport>(AllHooks, EnableDbValuesEverywhere);
60+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
61+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, EnableDbValues);
62+
var passportDiscovery = SetDiscoverableHooks<Passport>(targetHooks, EnableDbValues);
6163
(var contextMock, var hookExecutor, var personResourceMock, var todoResourceMock,
6264
var passportResourceMock) = CreateTestObjects(personDiscovery, todoDiscovery, passportDiscovery, repoDbContextOptions: options);
6365

@@ -75,9 +77,9 @@ public void BeforeDelete_No_Parent_Hooks()
7577
public void BeforeDelete_No_Children_Hooks()
7678
{
7779
// arrange
78-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooks, EnableDbValuesEverywhere);
79-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
80-
var passportDiscovery = SetDiscoverableHooks<Passport>(NoHooks);
80+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, EnableDbValues);
81+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
82+
var passportDiscovery = SetDiscoverableHooks<Passport>(NoHooks, DisableDbValues);
8183
(var contextMock, var hookExecutor, var personResourceMock, var todoResourceMock,
8284
var passportResourceMock) = CreateTestObjects(personDiscovery, todoDiscovery, passportDiscovery, repoDbContextOptions: options);
8385

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeReadTests.cs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ namespace UnitTests.ResourceHooks
88
{
99
public class BeforeReadTests : HooksTestsSetup
1010
{
11+
private readonly ResourceHook[] targetHooks = { ResourceHook.BeforeRead };
12+
1113
[Fact]
1214
public void BeforeRead()
1315
{
1416
// arrange
15-
var todoDiscovery = SetDiscoverableHooks<TodoItem>();
16-
var personDiscovery = SetDiscoverableHooks<Person>();
17-
17+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
18+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
1819
(var contextMock, var hookExecutor, var todoResourceMock) = CreateTestObjects(todoDiscovery);
1920
var todoList = CreateTodoWithOwner();
2021

@@ -31,8 +32,8 @@ public void BeforeRead()
3132
public void BeforeReadWithInclusion()
3233
{
3334
// arrange
34-
var todoDiscovery = SetDiscoverableHooks<TodoItem>();
35-
var personDiscovery = SetDiscoverableHooks<Person>();
35+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
36+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
3637

3738
(var contextMock, var hookExecutor, var todoResourceMock,
3839
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
@@ -53,9 +54,9 @@ public void BeforeReadWithInclusion()
5354
public void BeforeReadWithNestedInclusion()
5455
{
5556
// arrange
56-
var todoDiscovery = SetDiscoverableHooks<TodoItem>();
57-
var personDiscovery = SetDiscoverableHooks<Person>();
58-
var passportDiscovery = SetDiscoverableHooks<Passport>();
57+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
58+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
59+
var passportDiscovery = SetDiscoverableHooks<Passport>(targetHooks, DisableDbValues);
5960

6061
(var contextMock, var hookExecutor, var todoResourceMock,
6162
var ownerResourceMock, var passportResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, passportDiscovery);
@@ -78,9 +79,9 @@ public void BeforeReadWithNestedInclusion()
7879
public void BeforeReadWithNestedInclusion_No_Parent_Hook_Implemented()
7980
{
8081
// arrange
81-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(new ResourceHook[0]);
82-
var personDiscovery = SetDiscoverableHooks<Person>();
83-
var passportDiscovery = SetDiscoverableHooks<Passport>();
82+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
83+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
84+
var passportDiscovery = SetDiscoverableHooks<Passport>(targetHooks, DisableDbValues);
8485

8586
(var contextMock, var hookExecutor, var todoResourceMock,
8687
var ownerResourceMock, var passportResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, passportDiscovery);
@@ -101,9 +102,9 @@ public void BeforeReadWithNestedInclusion_No_Parent_Hook_Implemented()
101102
public void BeforeReadWithNestedInclusion_No_Child_Hook_Implemented()
102103
{
103104
// arrange
104-
var todoDiscovery = SetDiscoverableHooks<TodoItem>();
105-
var personDiscovery = SetDiscoverableHooks<Person>(new ResourceHook[0]);
106-
var passportDiscovery = SetDiscoverableHooks<Passport>();
105+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
106+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
107+
var passportDiscovery = SetDiscoverableHooks<Passport>(targetHooks, DisableDbValues);
107108

108109
(var contextMock, var hookExecutor, var todoResourceMock,
109110
var ownerResourceMock, var passportResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, passportDiscovery);
@@ -124,9 +125,9 @@ public void BeforeReadWithNestedInclusion_No_Child_Hook_Implemented()
124125
public void BeforeReadWithNestedInclusion_No_Grandchild_Hook_Implemented()
125126
{
126127
// arrange
127-
var todoDiscovery = SetDiscoverableHooks<TodoItem>();
128-
var personDiscovery = SetDiscoverableHooks<Person>();
129-
var passportDiscovery = SetDiscoverableHooks<Passport>(new ResourceHook[0]);
128+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
129+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
130+
var passportDiscovery = SetDiscoverableHooks<Passport>(NoHooks, DisableDbValues);
130131

131132
(var contextMock, var hookExecutor, var todoResourceMock,
132133
var ownerResourceMock, var passportResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, passportDiscovery);
@@ -148,9 +149,9 @@ public void BeforeReadWithNestedInclusion_No_Grandchild_Hook_Implemented()
148149
public void BeforeReadWithNestedInclusion_Without_Any_Hook_Implemented()
149150
{
150151
// arrange
151-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(new ResourceHook[0]);
152-
var personDiscovery = SetDiscoverableHooks<Person>(new ResourceHook[0]);
153-
var passportDiscovery = SetDiscoverableHooks<Passport>(new ResourceHook[0]);
152+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
153+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
154+
var passportDiscovery = SetDiscoverableHooks<Passport>(NoHooks, DisableDbValues);
154155

155156
(var contextMock, var hookExecutor, var todoResourceMock,
156157
var ownerResourceMock, var passportResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery, passportDiscovery);

test/UnitTests/ResourceHooks/ResourceHookExecutor/BeforeUpdateTests.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ namespace UnitTests.ResourceHooks
88
{
99
public class BeforeUpdateTests : HooksTestsSetup
1010
{
11+
private readonly ResourceHook[] targetHooks = { ResourceHook.BeforeUpdate, ResourceHook.BeforeUpdateRelationship };
12+
1113
[Fact]
1214
public void BeforeUpdate()
1315
{
1416
// arrange
15-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, NoHooks);
16-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooksNoImplicit, NoHooks);
17+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
18+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
1719
(var contextMock, var hookExecutor, var todoResourceMock,
1820
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
1921
var todoList = CreateTodoWithOwner();
@@ -31,8 +33,8 @@ public void BeforeUpdate()
3133
public void BeforeUpdate_Without_Parent_Hook_Implemented()
3234
{
3335
// arrange
34-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
35-
var personDiscovery = SetDiscoverableHooks<Person>(AllHooksNoImplicit, NoHooks);
36+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
37+
var personDiscovery = SetDiscoverableHooks<Person>(targetHooks, DisableDbValues);
3638
(var contextMock, var hookExecutor, var todoResourceMock,
3739
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
3840
var todoList = CreateTodoWithOwner();
@@ -49,8 +51,8 @@ public void BeforeUpdate_Without_Parent_Hook_Implemented()
4951
public void BeforeUpdate_Without_Child_Hook_Implemented()
5052
{
5153
// arrange
52-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(AllHooksNoImplicit, NoHooks);
53-
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
54+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(targetHooks, DisableDbValues);
55+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
5456

5557
(var contextMock, var hookExecutor, var todoResourceMock,
5658
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
@@ -68,8 +70,8 @@ public void BeforeUpdate_Without_Child_Hook_Implemented()
6870
public void BeforeUpdate_Without_Any_Hook_Implemented()
6971
{
7072
// arrange
71-
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks);
72-
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks);
73+
var todoDiscovery = SetDiscoverableHooks<TodoItem>(NoHooks, DisableDbValues);
74+
var personDiscovery = SetDiscoverableHooks<Person>(NoHooks, DisableDbValues);
7375
(var contextMock, var hookExecutor, var todoResourceMock,
7476
var ownerResourceMock) = CreateTestObjects(todoDiscovery, personDiscovery);
7577
var todoList = CreateTodoWithOwner();

0 commit comments

Comments
 (0)