@@ -81,5 +81,58 @@ public async Task VerifyQueryfilter()
8181 await storageContext . DropTableAsync < DemoEntityQuery > ( ) ;
8282 }
8383 }
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+ }
84137 }
85138}
0 commit comments