1
+ using Bogus ;
1
2
using ClassLibrary . EFCore . Tests . DatabaseContext ;
2
- using ClassLibrary . EFCore . Tests . Entities ;
3
+ using Microsoft . EntityFrameworkCore ;
3
4
using Xunit ;
5
+ using Persone = ClassLibrary . EFCore . Tests . Entities . Person ;
4
6
5
7
namespace ClassLibrary . EFCore . Tests ;
6
8
7
9
public class Tests : InMemoryDbContext
8
10
{
9
11
[ Fact ]
10
- public async Task GetAllEntities ( )
12
+ public async Task GetAllEntitiesAsync ( )
11
13
{
12
14
using var dbContext = GetDbContext ( ) ;
13
- var repository = new Repository < Person , int > ( dbContext ) ;
15
+ var repository = new Repository < Persone , int > ( dbContext ) ;
14
16
15
17
await dbContext . Database . EnsureDeletedAsync ( ) ;
16
18
await dbContext . Database . EnsureCreatedAsync ( ) ;
@@ -24,7 +26,7 @@ public async Task GetAllEntities()
24
26
public async Task GetAllEntitiesWithPredicateAsync ( )
25
27
{
26
28
using var dbContext = GetDbContext ( ) ;
27
- var repository = new Repository < Person , int > ( dbContext ) ;
29
+ var repository = new Repository < Persone , int > ( dbContext ) ;
28
30
29
31
await dbContext . Database . EnsureDeletedAsync ( ) ;
30
32
await dbContext . Database . EnsureCreatedAsync ( ) ;
@@ -39,24 +41,24 @@ public async Task GetAllEntitiesWithPredicateAsync()
39
41
public async Task GetEntityByIdAsync ( )
40
42
{
41
43
using var dbContext = GetDbContext ( ) ;
42
- var repository = new Repository < Person , int > ( dbContext ) ;
44
+ var repository = new Repository < Persone , int > ( dbContext ) ;
43
45
44
46
await dbContext . Database . EnsureDeletedAsync ( ) ;
45
47
await dbContext . Database . EnsureCreatedAsync ( ) ;
46
48
47
49
var entity = await repository . GetByIdAsync ( 2 ) ;
48
50
49
51
Assert . NotNull ( entity ) ;
50
- Assert . Equal ( 2 , Assert . IsType < Person > ( entity ) . Id ) ;
51
- Assert . Equal ( "Nome2" , Assert . IsType < Person > ( entity ) . Nome ) ;
52
- Assert . Equal ( "Cognome2" , Assert . IsType < Person > ( entity ) . Cognome ) ;
52
+ Assert . Equal ( 2 , Assert . IsType < Persone > ( entity ) . Id ) ;
53
+ Assert . Equal ( entity . Nome , Assert . IsType < Persone > ( entity ) . Nome ) ;
54
+ Assert . Equal ( entity . Cognome , Assert . IsType < Persone > ( entity ) . Cognome ) ;
53
55
}
54
56
55
57
[ Fact ]
56
58
public async Task GetEntityByIdNotFoundAsync ( )
57
59
{
58
60
using var dbContext = GetDbContext ( ) ;
59
- var repository = new Repository < Person , int > ( dbContext ) ;
61
+ var repository = new Repository < Persone , int > ( dbContext ) ;
60
62
61
63
await dbContext . Database . EnsureDeletedAsync ( ) ;
62
64
await dbContext . Database . EnsureCreatedAsync ( ) ;
@@ -70,52 +72,66 @@ public async Task GetEntityByIdNotFoundAsync()
70
72
public async Task CreateEntityAsync ( )
71
73
{
72
74
using var dbContext = GetDbContext ( ) ;
73
- var repository = new Repository < Person , int > ( dbContext ) ;
75
+ var repository = new Repository < Persone , int > ( dbContext ) ;
74
76
75
77
await dbContext . Database . EnsureDeletedAsync ( ) ;
76
78
await dbContext . Database . EnsureCreatedAsync ( ) ;
77
79
78
- var entity = new Person
79
- {
80
- Nome = "Nome11" ,
81
- Cognome = "Cognome11"
82
- } ;
80
+ var personFaker = new Faker < Persone > ( "it" )
81
+ . RuleFor ( p => p . Id , f => f . IndexFaker + f . Random . Number ( 11 , 100 ) )
82
+ . RuleFor ( p => p . Cognome , f => f . Person . LastName )
83
+ . RuleFor ( p => p . Nome , f => f . Person . FirstName )
84
+ . RuleFor ( p => p . IndirizzoId , f => f . Random . Int ( 1 , 10 ) ) ;
85
+
86
+ var entity = personFaker . Generate ( ) ;
83
87
84
- await repository . CreateAsync ( entity ) ;
88
+ await repository . CreateAsync ( personFaker ) ;
85
89
86
90
Assert . NotNull ( entity ) ;
87
- Assert . Equal ( 11 , entity . Id ) ;
88
- Assert . Equal ( "Nome11" , entity . Nome ) ;
89
- Assert . Equal ( "Cognome11" , entity . Cognome ) ;
91
+ Assert . True ( entity . Id > 0 ) ;
92
+ Assert . True ( entity . Id <= 100 ) ;
93
+ Assert . False ( string . IsNullOrEmpty ( entity . Nome ) ) ;
94
+ Assert . False ( string . IsNullOrEmpty ( entity . Cognome ) ) ;
90
95
}
91
96
92
97
[ Fact ]
93
98
public async Task UpdateEntityAsync ( )
94
99
{
95
100
using var dbContext = GetDbContext ( ) ;
96
- var repository = new Repository < Person , int > ( dbContext ) ;
101
+ var repository = new Repository < Persone , int > ( dbContext ) ;
97
102
98
103
await dbContext . Database . EnsureDeletedAsync ( ) ;
99
104
await dbContext . Database . EnsureCreatedAsync ( ) ;
100
105
101
106
var entity = await repository . GetByIdAsync ( 2 ) ;
102
107
103
- entity . Nome = "Nome2-bis" ;
104
- entity . Cognome = "Cognome2-bis" ;
108
+ if ( entity == null )
109
+ {
110
+ return ;
111
+ }
112
+
113
+ var personFaker = new Faker < Persone > ( "it" )
114
+ . RuleFor ( p => p . Cognome , f => f . Person . LastName )
115
+ . RuleFor ( p => p . Nome , f => f . Person . FirstName ) ;
116
+
117
+ var newEntity = personFaker . Generate ( ) ;
118
+
119
+ entity . Nome = newEntity . Nome ;
120
+ entity . Cognome = newEntity . Cognome ;
105
121
106
122
await repository . UpdateAsync ( entity ) ;
107
123
108
124
Assert . NotNull ( entity ) ;
109
- Assert . Equal ( 2 , entity . Id ) ;
110
- Assert . Equal ( "Nome2-bis" , entity . Nome ) ;
111
- Assert . Equal ( "Cognome2-bis" , entity . Cognome ) ;
125
+ Assert . Equal ( 2 , Assert . IsType < Persone > ( entity ) . Id ) ;
126
+ Assert . Equal ( newEntity . Nome , Assert . IsType < Persone > ( entity ) . Nome ) ;
127
+ Assert . Equal ( newEntity . Cognome , Assert . IsType < Persone > ( entity ) . Cognome ) ;
112
128
}
113
129
114
130
[ Fact ]
115
131
public async Task DeleteEntityAsync ( )
116
132
{
117
133
using var dbContext = GetDbContext ( ) ;
118
- var repository = new Repository < Person , int > ( dbContext ) ;
134
+ var repository = new Repository < Persone , int > ( dbContext ) ;
119
135
120
136
await dbContext . Database . EnsureDeletedAsync ( ) ;
121
137
await dbContext . Database . EnsureCreatedAsync ( ) ;
@@ -133,7 +149,7 @@ public async Task DeleteEntityAsync()
133
149
public async Task DeleteByIdEntityAsync ( )
134
150
{
135
151
using var dbContext = GetDbContext ( ) ;
136
- var repository = new Repository < Person , int > ( dbContext ) ;
152
+ var repository = new Repository < Persone , int > ( dbContext ) ;
137
153
138
154
await dbContext . Database . EnsureDeletedAsync ( ) ;
139
155
await dbContext . Database . EnsureCreatedAsync ( ) ;
@@ -150,12 +166,12 @@ public async Task DeleteByIdEntityAsync()
150
166
public async Task GetPaginatedEntitiesAsync ( )
151
167
{
152
168
using var dbContext = GetDbContext ( ) ;
153
- var repository = new Repository < Person , int > ( dbContext ) ;
169
+ var repository = new Repository < Persone , int > ( dbContext ) ;
154
170
155
171
await dbContext . Database . EnsureDeletedAsync ( ) ;
156
172
await dbContext . Database . EnsureCreatedAsync ( ) ;
157
173
158
- var entities = await repository . GetPaginatedAsync ( null ! , x => x . Id <= 10 , x => x . Id , true , 2 , 5 ) ;
174
+ var entities = await repository . GetPaginatedAsync ( includes : query => query . Include ( p => p . Indirizzo ) , x => x . Id <= 10 , x => x . Id , ascending : true , pageIndex : 2 , pageSize : 5 ) ;
159
175
160
176
Assert . NotNull ( entities ) ;
161
177
Assert . Equal ( 5 , entities . Count ) ;
@@ -166,12 +182,12 @@ public async Task GetPaginatedEntitiesAsync()
166
182
public async Task GetPaginatedEntitiesWithoutIncludeAsync ( )
167
183
{
168
184
using var dbContext = GetDbContext ( ) ;
169
- var repository = new Repository < Person , int > ( dbContext ) ;
185
+ var repository = new Repository < Persone , int > ( dbContext ) ;
170
186
171
187
await dbContext . Database . EnsureDeletedAsync ( ) ;
172
188
await dbContext . Database . EnsureCreatedAsync ( ) ;
173
189
174
- var entities = await repository . GetPaginatedAsync ( null ! , x => x . Id <= 10 , x => x . Id , true , 2 , 5 ) ;
190
+ var entities = await repository . GetPaginatedAsync ( includes : null ! , x => x . Id <= 10 , x => x . Id , ascending : true , pageIndex : 2 , pageSize : 5 ) ;
175
191
176
192
Assert . NotNull ( entities ) ;
177
193
Assert . Equal ( 5 , entities . Count ) ;
@@ -182,12 +198,12 @@ public async Task GetPaginatedEntitiesWithoutIncludeAsync()
182
198
public async Task GetPaginatedEntitiesWithoutWhereAsync ( )
183
199
{
184
200
using var dbContext = GetDbContext ( ) ;
185
- var repository = new Repository < Person , int > ( dbContext ) ;
201
+ var repository = new Repository < Persone , int > ( dbContext ) ;
186
202
187
203
await dbContext . Database . EnsureDeletedAsync ( ) ;
188
204
await dbContext . Database . EnsureCreatedAsync ( ) ;
189
205
190
- var entities = await repository . GetPaginatedAsync ( null ! , null ! , x => x . Id , true , 1 , 5 ) ;
206
+ var entities = await repository . GetPaginatedAsync ( includes : query => query . Include ( p => p . Indirizzo ) , conditionWhere : null ! , x => x . Id , ascending : true , pageIndex : 1 , pageSize : 5 ) ;
191
207
192
208
Assert . NotNull ( entities ) ;
193
209
Assert . Equal ( 5 , entities . Count ) ;
@@ -198,16 +214,16 @@ public async Task GetPaginatedEntitiesWithoutWhereAsync()
198
214
public async Task GetPaginatedEntitiesDescendingOrderTypeAsync ( )
199
215
{
200
216
using var dbContext = GetDbContext ( ) ;
201
- var repository = new Repository < Person , int > ( dbContext ) ;
217
+ var repository = new Repository < Persone , int > ( dbContext ) ;
202
218
203
219
await dbContext . Database . EnsureDeletedAsync ( ) ;
204
220
await dbContext . Database . EnsureCreatedAsync ( ) ;
205
221
206
- var entities = await repository . GetPaginatedAsync ( null ! , null ! , x => x . Id , false , 1 , 5 ) ;
222
+ var entities = await repository . GetPaginatedAsync ( includes : query => query . Include ( p => p . Indirizzo ) , conditionWhere : null ! , x => x . Id , ascending : false , pageIndex : 1 , pageSize : 5 ) ;
207
223
208
224
Assert . NotNull ( entities ) ;
209
225
Assert . Equal ( 5 , entities . Count ) ;
210
- Assert . Equal ( 10 , Assert . IsType < Person > ( entities . First ( ) ) . Id ) ;
226
+ Assert . Equal ( 10 , Assert . IsType < Persone > ( entities . First ( ) ) . Id ) ;
211
227
Assert . Contains ( entities , x => x . Id == 8 ) ;
212
228
}
213
229
}
0 commit comments