@@ -36,6 +36,35 @@ public async Task BasicDocumentsAddition()
3636 docs . First ( ) . Genre . Should ( ) . BeNull ( ) ;
3737 }
3838
39+ [ Fact ]
40+ public async Task BasicDocumentsAdditionInBatches ( )
41+ {
42+ var indexUID = "BasicDocumentsAdditionInBatchesTest" ;
43+ Index index = this . client . Index ( indexUID ) ;
44+
45+ // Add the documents
46+ Movie [ ] movies =
47+ {
48+ new Movie { Id = "1" , Name = "Batman" } ,
49+ new Movie { Id = "2" , Name = "Reservoir Dogs" } ,
50+ new Movie { Id = "3" , Name = "Taxi Driver" } ,
51+ new Movie { Id = "4" , Name = "Interstellar" } ,
52+ } ;
53+ var updates = await index . AddDocumentsInBatches ( movies , 2 ) ;
54+ foreach ( var u in updates )
55+ {
56+ u . UpdateId . Should ( ) . BeGreaterOrEqualTo ( 0 ) ;
57+ await index . WaitForPendingUpdate ( u . UpdateId ) ;
58+ }
59+
60+ // Check the documents have been added (one movie from each batch)
61+ var docs = ( await index . GetDocuments < Movie > ( ) ) . ToList ( ) ;
62+ Assert . Equal ( "1" , docs . ElementAt ( 0 ) . Id ) ;
63+ Assert . Equal ( "Batman" , docs . ElementAt ( 0 ) . Name ) ;
64+ Assert . Equal ( "3" , docs . ElementAt ( 2 ) . Id ) ;
65+ Assert . Equal ( "Taxi Driver" , docs . ElementAt ( 2 ) . Name ) ;
66+ }
67+
3968 [ Fact ]
4069 public async Task BasicDocumentsAdditionWithCreateIndex ( )
4170 {
@@ -124,6 +153,50 @@ public async Task BasicDocumentsUpdate()
124153 docs . ElementAt ( 1 ) . Genre . Should ( ) . BeNull ( ) ;
125154 }
126155
156+ [ Fact ]
157+ public async Task BasicDocumentsUpdateInBatches ( )
158+ {
159+ var indexUID = "BasicDocumentsUpdateInBatchesTest" ;
160+ Index index = this . client . Index ( indexUID ) ;
161+
162+ // Add the documents
163+ Movie [ ] movies =
164+ {
165+ new Movie { Id = "1" , Name = "Batman" } ,
166+ new Movie { Id = "2" , Name = "Reservoir Dogs" } ,
167+ new Movie { Id = "3" , Name = "Taxi Driver" } ,
168+ new Movie { Id = "4" , Name = "Interstellar" } ,
169+ } ;
170+ var updates = await index . AddDocumentsInBatches ( movies , 2 ) ;
171+ foreach ( var u in updates )
172+ {
173+ u . UpdateId . Should ( ) . BeGreaterOrEqualTo ( 0 ) ;
174+ await index . WaitForPendingUpdate ( u . UpdateId ) ;
175+ }
176+
177+ movies = new Movie [ ]
178+ {
179+ new Movie { Id = "1" , Name = "Batman" , Genre = "Action" } ,
180+ new Movie { Id = "2" , Name = "Reservoir Dogs" , Genre = "Drama" } ,
181+ new Movie { Id = "3" , Name = "Taxi Driver" , Genre = "Drama" } ,
182+ new Movie { Id = "4" , Name = "Interstellar" , Genre = "Sci-Fi" } ,
183+ } ;
184+ updates = await index . UpdateDocumentsInBatches ( movies , 2 ) ;
185+ foreach ( var u in updates )
186+ {
187+ u . UpdateId . Should ( ) . BeGreaterOrEqualTo ( 0 ) ;
188+ await index . WaitForPendingUpdate ( u . UpdateId ) ;
189+ }
190+
191+ // Assert movies have genre after update
192+ var docs = ( await index . GetDocuments < Movie > ( ) ) . ToList ( ) ;
193+ foreach ( var movie in docs )
194+ {
195+ movie . Genre . Should ( ) . NotBeNull ( ) ;
196+ movie . Genre . Should ( ) . NotBeEmpty ( ) ;
197+ }
198+ }
199+
127200 [ Fact ]
128201 public async Task DocumentsUpdateWithPrimaryKey ( )
129202 {
0 commit comments