3
3
using System . Linq ;
4
4
using NHibernate . Cfg ;
5
5
using NHibernate . Intercept ;
6
+ using NHibernate . Linq ;
6
7
using NHibernate . Tuple . Entity ;
7
8
using NUnit . Framework ;
8
9
using NUnit . Framework . Constraints ;
@@ -389,7 +390,7 @@ public void CanMergeTransientWithLazyPropertyInCollection()
389
390
}
390
391
}
391
392
392
- [ Test ]
393
+ [ Test ( Description = "GH-3333" ) ]
393
394
public void GetLazyPropertyWithNoSetterAccessor_PropertyShouldBeInitialized ( )
394
395
{
395
396
using ( ISession s = OpenSession ( ) )
@@ -401,7 +402,7 @@ public void GetLazyPropertyWithNoSetterAccessor_PropertyShouldBeInitialized()
401
402
}
402
403
}
403
404
404
- [ Test ]
405
+ [ Test ( Description = "GH-3333" ) ]
405
406
public void GetLazyPropertyWithNoSetterAccessorTwice_ResultsAreSameObject ( )
406
407
{
407
408
using ( ISession s = OpenSession ( ) )
@@ -413,5 +414,33 @@ public void GetLazyPropertyWithNoSetterAccessorTwice_ResultsAreSameObject()
413
414
Assert . That ( ReferenceEquals ( image , sameImage ) , Is . True ) ;
414
415
}
415
416
}
417
+
418
+ [ Test ]
419
+ public void CanSetValueForLazyPropertyNoSetter ( )
420
+ {
421
+ Book book ;
422
+ using ( ISession s = OpenSession ( ) )
423
+ {
424
+ book = s . Get < Book > ( 1 ) ;
425
+ book . NoSetterImage = new byte [ ] { 10 } ;
426
+ }
427
+
428
+ Assert . That ( NHibernateUtil . IsPropertyInitialized ( book , nameof ( book . NoSetterImage ) ) , Is . True ) ;
429
+ CollectionAssert . AreEqual ( book . NoSetterImage , new byte [ ] { 10 } ) ;
430
+ }
431
+
432
+ [ Test ]
433
+ public void CanFetchLazyPropertyNoSetter ( )
434
+ {
435
+ using ( ISession s = OpenSession ( ) )
436
+ {
437
+ var book = s
438
+ . Query < Book > ( )
439
+ . Fetch ( x => x . NoSetterImage )
440
+ . First ( x => x . Id == 1 ) ;
441
+
442
+ Assert . That ( NHibernateUtil . IsPropertyInitialized ( book , nameof ( book . NoSetterImage ) ) , Is . True ) ;
443
+ }
444
+ }
416
445
}
417
446
}
0 commit comments