@@ -81,5 +81,58 @@ public async Task VerifyQueryfilter()
81
81
await storageContext . DropTableAsync < DemoEntityQuery > ( ) ;
82
82
}
83
83
}
84
+
85
+ [ Fact ]
86
+ public async Task VerifyQueryfilterBoolOnly ( )
87
+ {
88
+ // Import from Blob
89
+ using ( var storageContext = new StorageContext ( env . ConnectionString ) )
90
+ {
91
+ // set the tablename context
92
+ storageContext . SetTableContext ( ) ;
93
+
94
+ // create the model
95
+ var models = new List < DemoEntityQuery > ( )
96
+ {
97
+ new DemoEntityQuery ( ) { R = "E6" , StringField = "Demo03" } ,
98
+ new DemoEntityQuery ( ) { R = "E7" , StringField = "Demo03" , BoolField = true } ,
99
+ new DemoEntityQuery ( ) { R = "E8" , StringField = "Demo03" , BoolField = false }
100
+ } ;
101
+
102
+ // ensure we are using the attributes
103
+ storageContext . AddAttributeMapper ( typeof ( DemoEntityQuery ) ) ;
104
+
105
+ // inser the model
106
+ await storageContext . EnableAutoCreateTable ( ) . MergeOrInsertAsync < DemoEntityQuery > ( models ) ;
107
+
108
+ // build the basic filter
109
+ var filterItem = new QueryFilter ( )
110
+ {
111
+ FilterType = QueryFilterType . And ,
112
+ Property = nameof ( DemoEntityQuery . BoolField ) ,
113
+ Value = true ,
114
+ Operator = QueryFilterOperator . Equal
115
+ } ;
116
+
117
+ // query all elements with empty filter list
118
+ var result = ( await storageContext . QueryAsync < DemoEntityQuery > ( null , new List < QueryFilter > ( ) ) ) . ToList ( ) ;
119
+ Assert . Equal ( 3 , result . Count ( ) ) ;
120
+
121
+ // query all false elements
122
+ filterItem . Value = false ;
123
+ result = ( await storageContext . QueryAsync < DemoEntityQuery > ( "P1" , new List < QueryFilter > ( ) { filterItem } ) ) . ToList ( ) ;
124
+ Assert . Equal ( 2 , result . Count ( ) ) ;
125
+
126
+ // query all true elements
127
+ filterItem . Value = true ;
128
+ result = ( await storageContext . QueryAsync < DemoEntityQuery > ( "P1" , new List < QueryFilter > ( ) { filterItem } ) ) . ToList ( ) ;
129
+ Assert . Single ( result ) ;
130
+
131
+ // Clean up
132
+ var all = await storageContext . QueryAsync < DemoEntityQuery > ( ) ;
133
+ await storageContext . DeleteAsync < DemoEntityQuery > ( all ) ;
134
+ await storageContext . DropTableAsync < DemoEntityQuery > ( ) ;
135
+ }
136
+ }
84
137
}
85
138
}
0 commit comments