@@ -163,6 +163,112 @@ func TestDeleteState(t *testing.T) {
163163 })
164164}
165165
166+ func TestDeleteBulkState (t * testing.T ) {
167+ ctx := context .Background ()
168+ data := "test"
169+ store := "test"
170+ keys := []string {"key1" , "key2" , "key3" }
171+
172+ t .Run ("delete not exist data" , func (t * testing.T ) {
173+ err := testClient .DeleteBulkState (ctx , store , keys )
174+ assert .Nil (t , err )
175+ })
176+
177+ t .Run ("delete not exist data with stateIem" , func (t * testing.T ) {
178+ items := make ([]* DeleteStateItem , 0 , len (keys ))
179+ for _ , key := range keys {
180+ items = append (items , & DeleteStateItem {
181+ Key : key ,
182+ Metadata : map [string ]string {},
183+ Options : & StateOptions {
184+ Concurrency : StateConcurrencyFirstWrite ,
185+ Consistency : StateConsistencyEventual ,
186+ },
187+ })
188+ }
189+ err := testClient .DeleteBulkStateItems (ctx , store , items )
190+ assert .Nil (t , err )
191+ })
192+
193+ t .Run ("delete exist data" , func (t * testing.T ) {
194+ // save data
195+ items := make ([]* SetStateItem , 0 , len (keys ))
196+ for _ , key := range keys {
197+ items = append (items , & SetStateItem {
198+ Key : key ,
199+ Value : []byte (data ),
200+ Metadata : map [string ]string {},
201+ Etag : & ETag {Value : "1" },
202+ Options : & StateOptions {
203+ Concurrency : StateConcurrencyFirstWrite ,
204+ Consistency : StateConsistencyEventual ,
205+ },
206+ })
207+ }
208+ err := testClient .SaveBulkState (ctx , store , items ... )
209+ assert .Nil (t , err )
210+
211+ // confirm data saved
212+ getItems , err := testClient .GetBulkState (ctx , store , keys , nil , 1 )
213+ assert .NoError (t , err )
214+ assert .Equal (t , len (keys ), len (getItems ))
215+
216+ // delete
217+ err = testClient .DeleteBulkState (ctx , store , keys )
218+ assert .NoError (t , err )
219+
220+ // confirm data deleted
221+ getItems , err = testClient .GetBulkState (ctx , store , keys , nil , 1 )
222+ assert .NoError (t , err )
223+ assert .Equal (t , 0 , len (getItems ))
224+ })
225+
226+ t .Run ("delete exist data with stateItem" , func (t * testing.T ) {
227+ // save data
228+ items := make ([]* SetStateItem , 0 , len (keys ))
229+ for _ , key := range keys {
230+ items = append (items , & SetStateItem {
231+ Key : key ,
232+ Value : []byte (data ),
233+ Metadata : map [string ]string {},
234+ Etag : & ETag {Value : "1" },
235+ Options : & StateOptions {
236+ Concurrency : StateConcurrencyFirstWrite ,
237+ Consistency : StateConsistencyEventual ,
238+ },
239+ })
240+ }
241+ err := testClient .SaveBulkState (ctx , store , items ... )
242+ assert .Nil (t , err )
243+
244+ // confirm data saved
245+ getItems , err := testClient .GetBulkState (ctx , store , keys , nil , 1 )
246+ assert .NoError (t , err )
247+ assert .Equal (t , len (keys ), len (getItems ))
248+
249+ // delete
250+ deleteItems := make ([]* DeleteStateItem , 0 , len (keys ))
251+ for _ , key := range keys {
252+ deleteItems = append (deleteItems , & DeleteStateItem {
253+ Key : key ,
254+ Metadata : map [string ]string {},
255+ Etag : & ETag {Value : "1" },
256+ Options : & StateOptions {
257+ Concurrency : StateConcurrencyFirstWrite ,
258+ Consistency : StateConsistencyEventual ,
259+ },
260+ })
261+ }
262+ err = testClient .DeleteBulkStateItems (ctx , store , deleteItems )
263+ assert .Nil (t , err )
264+
265+ // confirm data deleted
266+ getItems , err = testClient .GetBulkState (ctx , store , keys , nil , 1 )
267+ assert .NoError (t , err )
268+ assert .Equal (t , 0 , len (getItems ))
269+ })
270+ }
271+
166272// go test -timeout 30s ./client -count 1 -run ^TestStateTransactions$
167273func TestStateTransactions (t * testing.T ) {
168274 ctx := context .Background ()
0 commit comments