1
1
using System . Collections . Generic ;
2
+ using System . Threading ;
2
3
using System . Threading . Tasks ;
3
4
using JsonApiDotNetCore . Models . Operations ;
4
5
using JsonApiDotNetCore . Services . Operations ;
6
+ using Microsoft . EntityFrameworkCore ;
7
+ using Microsoft . EntityFrameworkCore . Infrastructure ;
8
+ using Microsoft . EntityFrameworkCore . Storage ;
5
9
using Moq ;
6
10
using Newtonsoft . Json ;
7
11
using Xunit ;
@@ -12,9 +16,12 @@ public class OperationsProcessorTests
12
16
{
13
17
private readonly Mock < IOperationProcessorResolver > _resolverMock ;
14
18
19
+ public readonly Mock < DbContext > _dbContextMock ;
20
+
15
21
public OperationsProcessorTests ( )
16
22
{
17
23
_resolverMock = new Mock < IOperationProcessorResolver > ( ) ;
24
+ _dbContextMock = new Mock < DbContext > ( ) ;
18
25
}
19
26
20
27
[ Fact ]
@@ -61,29 +68,35 @@ public async Task ProcessAsync_Performs_Pointer_ReplacementAsync()
61
68
}
62
69
}
63
70
}" ;
64
-
71
+
65
72
var operations = JsonConvert . DeserializeObject < List < Operation > > ( request ) ;
66
73
var addOperationResult = JsonConvert . DeserializeObject < Operation > ( op1Result ) ;
67
74
75
+ var databaseMock = new Mock < DatabaseFacade > ( _dbContextMock . Object ) ;
76
+ var transactionMock = new Mock < IDbContextTransaction > ( ) ;
77
+ databaseMock . Setup ( m => m . BeginTransactionAsync ( It . IsAny < CancellationToken > ( ) ) )
78
+ . ReturnsAsync ( transactionMock . Object ) ;
79
+ _dbContextMock . Setup ( m => m . Database ) . Returns ( databaseMock . Object ) ;
80
+
68
81
var opProcessorMock = new Mock < IOpProcessor > ( ) ;
69
82
opProcessorMock . Setup ( m => m . ProcessAsync ( It . Is < Operation > ( op => op . DataObject . Type . ToString ( ) == "authors" ) ) )
70
83
. ReturnsAsync ( addOperationResult ) ;
71
-
84
+
72
85
_resolverMock . Setup ( m => m . LocateCreateService ( It . IsAny < Operation > ( ) ) )
73
86
. Returns ( opProcessorMock . Object ) ;
74
-
87
+
75
88
_resolverMock . Setup ( m => m . LocateCreateService ( ( It . IsAny < Operation > ( ) ) ) )
76
89
. Returns ( opProcessorMock . Object ) ;
77
90
78
- var operationsProcessor = new OperationsProcessor ( _resolverMock . Object ) ;
91
+ var operationsProcessor = new OperationsProcessor ( _resolverMock . Object , _dbContextMock . Object ) ;
79
92
80
93
// act
81
94
var results = await operationsProcessor . ProcessAsync ( operations ) ;
82
95
83
96
// assert
84
97
opProcessorMock . Verify (
85
98
m => m . ProcessAsync (
86
- It . Is < Operation > ( o =>
99
+ It . Is < Operation > ( o =>
87
100
o . DataObject . Type . ToString ( ) == "articles"
88
101
&& o . DataObject . Relationships [ "author" ] . SingleData [ "id" ] . ToString ( ) == "9"
89
102
)
0 commit comments