1
- // Copyright (C) 2014 Xtensive LLC.
1
+ // Copyright (C) 2014 Xtensive LLC.
2
2
// All rights reserved.
3
3
// For conditions of distribution and use, see license.
4
4
// Created by: Alexey Kulakov
@@ -106,20 +106,20 @@ protected override void PopulateData()
106
106
using ( var session = Domain . OpenSession ( ) )
107
107
using ( var t = session . OpenTransaction ( ) ) {
108
108
var car = new Car ( ) ;
109
- new EmployeeWithCar { Car = car } ;
110
- new Employee ( ) ;
111
- new Employee ( ) ;
109
+ _ = new EmployeeWithCar { Car = car } ;
110
+ _ = new Employee ( ) ;
111
+ _ = new Employee ( ) ;
112
112
113
113
var customer = new Customer ( ) ;
114
114
for ( var i = 0 ; i < 10 ; i ++ ) {
115
- if ( i % 2 == 0 ) {
115
+ if ( i % 2 == 0 ) {
116
116
var job = new Job ( ) {
117
- Location = new Location ( ) {
118
- Address = new Address ( ) {
119
- Street = string . Format ( "{0} street" , i + 1 . ToString ( ) )
120
- }
121
- }
122
- } ;
117
+ Location = new Location ( ) {
118
+ Address = new Address ( ) {
119
+ Street = string . Format ( "{0} street" , i + 1 . ToString ( ) )
120
+ }
121
+ }
122
+ } ;
123
123
var invoice = new Invoice ( ) { Customer = customer , Job = job } ;
124
124
}
125
125
else {
@@ -189,6 +189,8 @@ public void WorkaroundTest()
189
189
e . Id ,
190
190
Car = c
191
191
} ) ;
192
+
193
+
192
194
Assert . AreEqual ( 3 , wordaround . Count ( ) ) ;
193
195
}
194
196
}
@@ -199,11 +201,20 @@ public void Test01()
199
201
using ( var session = Domain . OpenSession ( ) )
200
202
using ( var transaction = session . OpenTransaction ( ) ) {
201
203
var customer = session . Query . All < Customer > ( ) . First ( ) ;
202
- var result = ( from i in session . Query . All < Invoice > ( )
204
+ var results =
205
+ ( from i in session . Query . All < Invoice > ( )
203
206
from j in session . Query . All < Job > ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
204
207
where i . Customer . Id == customer . Id
205
208
select new { i . Id , Location = j != null && j . Location != null ? j . Location . Address . Street : "" } ) . ToList ( ) ;
206
- Assert . AreEqual ( 10 , result . Count ) ;
209
+
210
+ var localResults =
211
+ ( from i in session . Query . All < Invoice > ( ) . AsEnumerable ( )
212
+ from j in session . Query . All < Job > ( ) . AsEnumerable ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
213
+ where i . Customer . Id == customer . Id
214
+ select new { i . Id , Location = j != null && j . Location != null ? j ? . Location . Address . Street : "" } ) . ToList ( ) ;
215
+
216
+ Assert . That ( localResults . Count , Is . EqualTo ( 10 ) ) ;
217
+ Assert . That ( results . Count , Is . EqualTo ( localResults . Count ) ) ;
207
218
}
208
219
}
209
220
@@ -212,25 +223,46 @@ public void Test02()
212
223
{
213
224
using ( var session = Domain . OpenSession ( ) )
214
225
using ( var transaction = session . OpenTransaction ( ) ) {
215
- var results = ( from i in session . Query . All < Invoice > ( )
216
- from j in session . Query . All < Job > ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
217
- select new { i . Id , Location = j . Location } ) . Where ( el => el . Location != null || string . IsNullOrEmpty ( el . Location . Address . Street ) ) . ToList ( ) ;
218
- Assert . AreEqual ( 5 , results . Count ) ;
226
+ var results =
227
+ ( from i in session . Query . All < Invoice > ( )
228
+ from j in session . Query . All < Job > ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
229
+ select new { i . Id , Location = j . Location } )
230
+ . Where ( el => el . Location != null || string . IsNullOrEmpty ( el . Location . Address . Street ) )
231
+ . ToList ( ) ;
232
+
233
+ var localResults =
234
+ ( from i in session . Query . All < Invoice > ( ) . AsEnumerable ( )
235
+ from j in session . Query . All < Job > ( ) . AsEnumerable ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
236
+ select new { i . Id , Location = j ? . Location } )
237
+ . Where ( el => el . Location != null || string . IsNullOrEmpty ( el . Location ? . Address ? . Street ) ) . ToList ( ) ;
238
+
239
+ Assert . That ( localResults . Count , Is . EqualTo ( 10 ) ) ;
240
+ Assert . That ( results . Count , Is . EqualTo ( localResults . Count ) ) ;
219
241
}
220
242
}
221
243
222
244
[ Test ]
223
- public void Test3 ( )
245
+ public void Test03 ( )
224
246
{
225
247
using ( var session = Domain . OpenSession ( ) )
226
248
using ( var transaction = session . OpenTransaction ( ) ) {
227
249
var cusomer = session . Query . All < Customer > ( ) . First ( ) ;
228
- var result = ( from i in session . Query . All < Invoice > ( )
229
- from j in session . Query . All < Job > ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
230
- from l in session . Query . All < Location > ( ) . Where ( l => l == j . Location ) . DefaultIfEmpty ( )
231
- where i . Customer . Id == cusomer . Id
232
- select new { i . Id , Location = l != null ? l . Address . Street : "" , } ) . ToList ( ) ;
233
- Assert . AreEqual ( 10 , result . Count ) ;
250
+ var results =
251
+ ( from i in session . Query . All < Invoice > ( )
252
+ from j in session . Query . All < Job > ( ) . Where ( j => j == i . Job ) . DefaultIfEmpty ( )
253
+ from l in session . Query . All < Location > ( ) . Where ( l => l == j . Location ) . DefaultIfEmpty ( )
254
+ where i . Customer . Id == cusomer . Id
255
+ select new { i . Id , Location = l != null ? l . Address . Street : "" , } ) . ToList ( ) ;
256
+
257
+ var localResults =
258
+ ( from i in session . Query . All < Invoice > ( ) . AsEnumerable ( )
259
+ from j in session . Query . All < Job > ( ) . AsEnumerable ( ) . Where ( j => j == i ? . Job ) . DefaultIfEmpty ( )
260
+ from l in session . Query . All < Location > ( ) . AsEnumerable ( ) . Where ( l => l == j ? . Location ) . DefaultIfEmpty ( )
261
+ where i ? . Customer ? . Id == cusomer . Id
262
+ select new { i . Id , Location = l != null ? l . Address . Street : "" , } ) . ToList ( ) ;
263
+
264
+ Assert . That ( localResults . Count , Is . EqualTo ( 10 ) ) ;
265
+ Assert . That ( results . Count , Is . EqualTo ( localResults . Count ) ) ;
234
266
}
235
267
}
236
268
}
0 commit comments