1
- using System . Collections . Generic ;
1
+ using Newtonsoft . Json . Linq ;
2
+ using NFluent ;
3
+ using System . Collections . Generic ;
2
4
using System . Dynamic ;
3
5
using System . Globalization ;
4
6
using System . Linq . Dynamic . Core . Exceptions ;
5
7
using System . Linq . Dynamic . Core . Tests . Helpers ;
6
8
using System . Linq . Dynamic . Core . Tests . Helpers . Models ;
7
- using Newtonsoft . Json . Linq ;
8
9
using Xunit ;
9
- using NFluent ;
10
10
11
11
namespace System . Linq . Dynamic . Core . Tests
12
12
{
@@ -28,6 +28,8 @@ public class TestEnumClass
28
28
29
29
public TestEnum2 B { get ; set ; }
30
30
31
+ public TestEnum2 ? C { get ; set ; }
32
+
31
33
public int Id { get ; set ; }
32
34
}
33
35
@@ -571,9 +573,6 @@ public void ExpressionTests_DoubleQualifiers_Negative()
571
573
public void ExpressionTests_Enum ( )
572
574
{
573
575
var config = new ParsingConfig ( ) ;
574
- #if NETCOREAPP
575
- // config.CustomTypeProvider = new NetStandardCustomTypeProvider();
576
- #endif
577
576
578
577
// Arrange
579
578
var lst = new List < TestEnum > { TestEnum . Var1 , TestEnum . Var2 , TestEnum . Var3 , TestEnum . Var4 , TestEnum . Var5 , TestEnum . Var6 } ;
@@ -589,8 +588,8 @@ public void ExpressionTests_Enum()
589
588
var resultEqualItLeft = qry . Where ( config , "it = Var5" ) ;
590
589
var resultEqualItRight = qry . Where ( config , "Var5 = it" ) ;
591
590
592
- var resultEqualEnumParamLeft = qry . Where ( config , "@0 = it" , TestEnum . Var5 ) ;
593
- var resultEqualEnumParamRight = qry . Where ( config , "it = @0" , TestEnum . Var5 ) ;
591
+ var resultEqualEnumParamLeft = qry . Where ( "@0 = it" , TestEnum . Var5 ) ;
592
+ var resultEqualEnumParamRight = qry . Where ( "it = @0" , TestEnum . Var5 ) ;
594
593
595
594
var resultEqualIntParamLeft = qry . Where ( "@0 = it" , 8 ) ;
596
595
var resultEqualIntParamRight = qry . Where ( "it = @0" , 8 ) ;
@@ -625,12 +624,51 @@ public void ExpressionTests_Enum()
625
624
}
626
625
627
626
[ Fact ]
628
- public void ExpressionTests_ConfigExtensions ( )
627
+ public void ExpressionTests_Enum_Property ( )
628
+ {
629
+ // Arrange
630
+ var qry = new List < TestEnumClass > { new TestEnumClass { B = TestEnum2 . Var2 } } . AsQueryable ( ) ;
631
+
632
+ // Act
633
+ var resultEqualEnumParamLeft = qry . Where ( "@0 == it.B" , TestEnum2 . Var2 ) . ToDynamicArray ( ) ;
634
+ var resultEqualEnumParamRight = qry . Where ( "it.B == @0" , TestEnum2 . Var2 ) . ToDynamicArray ( ) ;
635
+
636
+ var resultEqualIntParamLeft = qry . Where ( "@0 == it.B" , 1 ) . ToDynamicArray ( ) ;
637
+ var resultEqualIntParamRight = qry . Where ( "it.B == @0" , 1 ) . ToDynamicArray ( ) ;
638
+
639
+ // Assert
640
+ Check . That ( resultEqualEnumParamLeft . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
641
+ Check . That ( resultEqualEnumParamRight . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
642
+
643
+ Check . That ( resultEqualIntParamLeft . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
644
+ Check . That ( resultEqualIntParamRight . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
645
+ }
646
+
647
+ [ Fact ]
648
+ public void ExpressionTests_Enum_NullableProperty ( )
649
+ {
650
+ // Arrange
651
+ var qry = new List < TestEnumClass > { new TestEnumClass { C = TestEnum2 . Var2 } } . AsQueryable ( ) ;
652
+
653
+ // Act
654
+ var resultEqualEnumParamLeft = qry . Where ( "@0 == it.C" , TestEnum2 . Var2 ) . ToDynamicArray ( ) ;
655
+ var resultEqualEnumParamRight = qry . Where ( "it.C == @0" , TestEnum2 . Var2 ) . ToDynamicArray ( ) ;
656
+
657
+ var resultEqualIntParamLeft = qry . Where ( "@0 == it.C" , 1 ) . ToDynamicArray ( ) ;
658
+ var resultEqualIntParamRight = qry . Where ( "it.C == @0" , 1 ) . ToDynamicArray ( ) ;
659
+
660
+ // Assert
661
+ Check . That ( resultEqualEnumParamLeft . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
662
+ Check . That ( resultEqualEnumParamRight . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
663
+
664
+ Check . That ( resultEqualIntParamLeft . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
665
+ Check . That ( resultEqualIntParamRight . Single ( ) ) . Equals ( TestEnum2 . Var2 ) ;
666
+ }
667
+
668
+ [ Fact ]
669
+ public void ExpressionTests_Enum_MoreTests ( )
629
670
{
630
671
var config = new ParsingConfig ( ) ;
631
- #if NETCOREAPP
632
- // config.CustomTypeProvider = new NetStandardCustomTypeProvider();
633
- #endif
634
672
635
673
// Arrange
636
674
var lst = new List < TestEnum > { TestEnum . Var1 , TestEnum . Var2 , TestEnum . Var3 , TestEnum . Var4 , TestEnum . Var5 , TestEnum . Var6 } ;
@@ -652,23 +690,18 @@ public void ExpressionTests_ConfigExtensions()
652
690
[ Fact ]
653
691
public void ExpressionTests_Enum_Nullable ( )
654
692
{
655
- var config = new ParsingConfig ( ) ;
656
- #if NETSTANDARD
657
- // config.CustomTypeProvider = new NetStandardCustomTypeProvider();
658
- #endif
659
-
660
693
// Act
661
- var result1a = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( config , "it = @0" , ( TestEnum ? ) TestEnum . Var1 ) ;
662
- var result1b = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( config , "@0 = it" , ( TestEnum ? ) TestEnum . Var1 ) ;
663
- var result2a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "it = @0" , TestEnum . Var1 ) ;
664
- var result2b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "@0 = it" , TestEnum . Var1 ) ;
665
- var result3a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "it = @0" , ( TestEnum ? ) TestEnum . Var1 ) ;
666
- var result3b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "@0 = it" , ( TestEnum ? ) TestEnum . Var1 ) ;
694
+ var result1a = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( "it = @0" , ( TestEnum ? ) TestEnum . Var1 ) ;
695
+ var result1b = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( "@0 = it" , ( TestEnum ? ) TestEnum . Var1 ) ;
696
+ var result2a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "it = @0" , TestEnum . Var1 ) ;
697
+ var result2b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "@0 = it" , TestEnum . Var1 ) ;
698
+ var result3a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "it = @0" , ( TestEnum ? ) TestEnum . Var1 ) ;
699
+ var result3b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "@0 = it" , ( TestEnum ? ) TestEnum . Var1 ) ;
667
700
668
- var result10a = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( config , "it = @0" , "Var1" ) ;
669
- var result10b = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( config , "@0 = it" , "Var1" ) ;
670
- var result11a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "it = @0" , "Var1" ) ;
671
- var result11b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( config , "@0 = it" , "Var1" ) ;
701
+ var result10a = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( "it = @0" , "Var1" ) ;
702
+ var result10b = new [ ] { TestEnum . Var1 } . AsQueryable ( ) . Where ( "@0 = it" , "Var1" ) ;
703
+ var result11a = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "it = @0" , "Var1" ) ;
704
+ var result11b = new [ ] { ( TestEnum ? ) TestEnum . Var1 , null } . AsQueryable ( ) . Where ( "@0 = it" , "Var1" ) ;
672
705
673
706
// Assert
674
707
Assert . Equal ( TestEnum . Var1 , result1a . Single ( ) ) ;
0 commit comments