11using System . Collections . Generic ;
2+ using System . Threading ;
23using System . Threading . Tasks ;
34using JsonApiDotNetCore . Models . Operations ;
45using JsonApiDotNetCore . Services . Operations ;
6+ using Microsoft . EntityFrameworkCore ;
7+ using Microsoft . EntityFrameworkCore . Infrastructure ;
8+ using Microsoft . EntityFrameworkCore . Storage ;
59using Moq ;
610using Newtonsoft . Json ;
711using Xunit ;
@@ -12,9 +16,12 @@ public class OperationsProcessorTests
1216 {
1317 private readonly Mock < IOperationProcessorResolver > _resolverMock ;
1418
19+ public readonly Mock < DbContext > _dbContextMock ;
20+
1521 public OperationsProcessorTests ( )
1622 {
1723 _resolverMock = new Mock < IOperationProcessorResolver > ( ) ;
24+ _dbContextMock = new Mock < DbContext > ( ) ;
1825 }
1926
2027 [ Fact ]
@@ -61,29 +68,35 @@ public async Task ProcessAsync_Performs_Pointer_ReplacementAsync()
6168 }
6269 }
6370 }" ;
64-
71+
6572 var operations = JsonConvert . DeserializeObject < List < Operation > > ( request ) ;
6673 var addOperationResult = JsonConvert . DeserializeObject < Operation > ( op1Result ) ;
6774
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+
6881 var opProcessorMock = new Mock < IOpProcessor > ( ) ;
6982 opProcessorMock . Setup ( m => m . ProcessAsync ( It . Is < Operation > ( op => op . DataObject . Type . ToString ( ) == "authors" ) ) )
7083 . ReturnsAsync ( addOperationResult ) ;
71-
84+
7285 _resolverMock . Setup ( m => m . LocateCreateService ( It . IsAny < Operation > ( ) ) )
7386 . Returns ( opProcessorMock . Object ) ;
74-
87+
7588 _resolverMock . Setup ( m => m . LocateCreateService ( ( It . IsAny < Operation > ( ) ) ) )
7689 . Returns ( opProcessorMock . Object ) ;
7790
78- var operationsProcessor = new OperationsProcessor ( _resolverMock . Object ) ;
91+ var operationsProcessor = new OperationsProcessor ( _resolverMock . Object , _dbContextMock . Object ) ;
7992
8093 // act
8194 var results = await operationsProcessor . ProcessAsync ( operations ) ;
8295
8396 // assert
8497 opProcessorMock . Verify (
8598 m => m . ProcessAsync (
86- It . Is < Operation > ( o =>
99+ It . Is < Operation > ( o =>
87100 o . DataObject . Type . ToString ( ) == "articles"
88101 && o . DataObject . Relationships [ "author" ] . SingleData [ "id" ] . ToString ( ) == "9"
89102 )
0 commit comments