@@ -67,10 +67,10 @@ public async Task GivenRetrieveAsync_WhenInvoked_ThenShouldReturnAllPlayers()
67
67
// Arrange
68
68
var players = PlayerDataBuilder . SeedWithDeserializedJson ( ) ;
69
69
var context = CreatePlayerContext ( ) ;
70
- var logger = new Mock < ILogger < PlayerService > > ( ) ;
71
- var memoryCache = new MemoryCache ( new MemoryCacheOptions ( ) ) ;
70
+ var logger = CreateLoggerMock ( ) ;
71
+ var memoryCache = CreateMemoryCacheMock ( It . IsAny < object > ( ) ) ;
72
72
73
- var service = new PlayerService ( context , logger . Object , memoryCache ) ;
73
+ var service = new PlayerService ( context , logger , memoryCache ) ;
74
74
75
75
// Act
76
76
var result = await service . RetrieveAsync ( ) ;
@@ -84,11 +84,12 @@ public async Task GivenRetrieveAsync_WhenInvoked_ThenShouldReturnAllPlayers()
84
84
public async Task GivenRetrieveAsync_WhenInvokedTwice_ThenSecondExecutionTimeShouldBeLessThanFirst ( )
85
85
{
86
86
// Arrange
87
+ var players = PlayerDataBuilder . SeedWithDeserializedJson ( ) ;
87
88
var context = CreatePlayerContext ( ) ;
88
- var logger = new Mock < ILogger < PlayerService > > ( ) ;
89
- var memoryCache = new MemoryCache ( new MemoryCacheOptions ( ) ) ;
89
+ var logger = CreateLoggerMock ( ) ;
90
+ var memoryCache = CreateMemoryCacheMock ( players ) ;
90
91
91
- var service = new PlayerService ( context , logger . Object , memoryCache ) ;
92
+ var service = new PlayerService ( context , logger , memoryCache ) ;
92
93
93
94
// Act
94
95
var first = await ExecutionTimeAsync ( ( ) => service . RetrieveAsync ( ) ) ;
@@ -98,27 +99,17 @@ public async Task GivenRetrieveAsync_WhenInvokedTwice_ThenSecondExecutionTimeSho
98
99
second . Should ( ) . BeLessThan ( first ) ;
99
100
}
100
101
101
- private async Task < long > ExecutionTimeAsync ( Func < Task > awaitable )
102
- {
103
- var stopwatch = new Stopwatch ( ) ;
104
- stopwatch . Start ( ) ;
105
- await awaitable ( ) ;
106
- stopwatch . Stop ( ) ;
107
-
108
- return stopwatch . ElapsedMilliseconds ;
109
- }
110
-
111
102
[ Fact ]
112
103
[ Trait ( "Category" , "Retrieve" ) ]
113
104
public async Task GivenRetrieveByIdAsync_WhenInvokedWithPlayerId_ThenShouldReturnThePlayer ( )
114
105
{
115
106
// Arrange
116
107
var player = PlayerDataBuilder . SeedOneById ( 10 ) ;
117
108
var context = CreatePlayerContext ( ) ;
118
- var logger = new Mock < ILogger < PlayerService > > ( ) ;
119
- var memoryCache = new MemoryCache ( new MemoryCacheOptions ( ) ) ;
109
+ var logger = CreateLoggerMock ( ) ;
110
+ var memoryCache = CreateMemoryCacheMock ( It . IsAny < object > ( ) ) ;
120
111
121
- var service = new PlayerService ( context , logger . Object , memoryCache ) ;
112
+ var service = new PlayerService ( context , logger , memoryCache ) ;
122
113
123
114
// Act
124
115
var result = await service . RetrieveByIdAsync ( 10 ) ;
@@ -127,4 +118,37 @@ public async Task GivenRetrieveByIdAsync_WhenInvokedWithPlayerId_ThenShouldRetur
127
118
result . Should ( ) . BeOfType < Player > ( ) ;
128
119
result . Should ( ) . BeEquivalentTo ( player ) ;
129
120
}
121
+
122
+ private async Task < long > ExecutionTimeAsync ( Func < Task > awaitable )
123
+ {
124
+ var stopwatch = new Stopwatch ( ) ;
125
+
126
+ stopwatch . Start ( ) ;
127
+ await awaitable ( ) ;
128
+ stopwatch . Stop ( ) ;
129
+
130
+ return stopwatch . ElapsedMilliseconds ;
131
+ }
132
+
133
+ private static ILogger < PlayerService > CreateLoggerMock ( )
134
+ {
135
+ var mock = new Mock < ILogger < PlayerService > > ( ) ;
136
+
137
+ return mock . Object ;
138
+ }
139
+
140
+ private static IMemoryCache CreateMemoryCacheMock ( object ? value )
141
+ {
142
+ var mock = new Mock < IMemoryCache > ( ) ;
143
+
144
+ mock
145
+ . Setup ( x => x . TryGetValue ( It . IsAny < object > ( ) , out value ) )
146
+ . Returns ( true ) ;
147
+
148
+ mock
149
+ . Setup ( x => x . CreateEntry ( It . IsAny < object > ( ) ) )
150
+ . Returns ( Mock . Of < ICacheEntry > ) ;
151
+
152
+ return mock . Object ;
153
+ }
130
154
}
0 commit comments