@@ -36,6 +36,9 @@ const std::string kEndpoint = "endpoint";
3636const std::string kAppid = " dataservice_write_test_appid" ;
3737const std::string kSecret = " dataservice_write_test_secret" ;
3838const std::string kCatalog = " dataservice_write_test_catalog" ;
39+ const std::string kLayer = " layer" ;
40+ const std::string kLayer2 = " layer2" ;
41+ const std::string kLayerSdii = " layer_sdii" ;
3942const std::string kVersionedLayer = " versioned_layer" ;
4043
4144class DataserviceWriteVersionedLayerClientTest : public ::testing::Test {
@@ -145,10 +148,31 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, StartBatch) {
145148 EXPECT_SUCCESS (get_batch_response);
146149 ASSERT_EQ (response.GetResult ().GetId ().value (),
147150 get_batch_response.GetResult ().GetId ().value ());
148- const auto state = get_batch_response.GetResult ().GetDetails ()->GetState ();
149- ASSERT_TRUE (state == " succeeded" || state == " submitted" )
150- << " Where state: " << state
151- << " not equal neither: 'succeeded' nor 'submitted'" ;
151+ ASSERT_EQ (" submitted" ,
152+ get_batch_response.GetResult ().GetDetails ()->GetState ());
153+
154+ for (int i = 0 ; i < 100 ; ++i) {
155+ get_batch_response =
156+ versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
157+
158+ EXPECT_SUCCESS (get_batch_response);
159+ ASSERT_EQ (response.GetResult ().GetId ().value (),
160+ get_batch_response.GetResult ().GetId ().value ());
161+ if (get_batch_response.GetResult ().GetDetails ()->GetState () !=
162+ " succeeded" ) {
163+ ASSERT_EQ (" submitted" ,
164+ get_batch_response.GetResult ().GetDetails ()->GetState ());
165+ } else {
166+ break ;
167+ }
168+ }
169+ // There are can be a case that GetBatch() is not "succeeded", but in
170+ // "submitted" state even after 100 iterations,
171+ // which actually means that there are might be a problem on the server side,
172+ // (or just long delay). Thus, better to rewrite this test, or do not rely on
173+ // the real server, but use mocked server.
174+ // ASSERT_EQ("succeeded",
175+ // get_batch_response.GetResult().GetDetails()->GetState());
152176}
153177
154178TEST_F (DataserviceWriteVersionedLayerClientTest, DeleteClient) {
@@ -283,15 +307,28 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatch) {
283307
284308 EXPECT_SUCCESS (complete_batch_response);
285309
286- get_batch_response =
287- versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
288- EXPECT_SUCCESS (get_batch_response);
289- ASSERT_EQ (response.GetResult ().GetId ().value (),
290- get_batch_response.GetResult ().GetId ().value ());
291- const auto state = get_batch_response.GetResult ().GetDetails ()->GetState ();
292- ASSERT_TRUE (state == " succeeded" || state == " submitted" )
293- << " Where state: " << state
294- << " not equal neither: 'succeeded' nor 'submitted'" ;
310+ for (int i = 0 ; i < 100 ; ++i) {
311+ get_batch_response =
312+ versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
313+
314+ EXPECT_SUCCESS (get_batch_response);
315+ ASSERT_EQ (response.GetResult ().GetId ().value (),
316+ get_batch_response.GetResult ().GetId ().value ());
317+ if (get_batch_response.GetResult ().GetDetails ()->GetState () !=
318+ " succeeded" ) {
319+ ASSERT_EQ (" submitted" ,
320+ get_batch_response.GetResult ().GetDetails ()->GetState ());
321+ } else {
322+ break ;
323+ }
324+ }
325+ // There are can be a case that GetBatch() is not "succeeded", but in
326+ // "submitted" state even after 100 iterations,
327+ // which actually means that there are might be a problem on the server side,
328+ // (or just long delay). Thus, better to rewrite this test, or do not rely on
329+ // the real server, but use mocked server.
330+ // ASSERT_EQ("succeeded",
331+ // get_batch_response.GetResult().GetDetails()->GetState());
295332}
296333
297334TEST_F (DataserviceWriteVersionedLayerClientTest, PublishToBatchDeleteClient) {
@@ -356,15 +393,27 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchDeleteClient) {
356393
357394 EXPECT_SUCCESS (complete_batch_response);
358395
359- get_batch_response =
360- versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
361- EXPECT_SUCCESS (get_batch_response);
362- ASSERT_EQ (response.GetResult ().GetId ().value (),
363- get_batch_response.GetResult ().GetId ().value ());
364- const auto state = get_batch_response.GetResult ().GetDetails ()->GetState ();
365- ASSERT_TRUE (state == " succeeded" || state == " submitted" )
366- << " Where state: " << state
367- << " not equal neither: 'succeeded' nor 'submitted'" ;
396+ for (int i = 0 ; i < 100 ; ++i) {
397+ get_batch_response =
398+ versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
399+
400+ EXPECT_SUCCESS (get_batch_response);
401+ ASSERT_EQ (response.GetResult ().GetId ().value (),
402+ get_batch_response.GetResult ().GetId ().value ());
403+ if (get_batch_response.GetResult ().GetDetails ()->GetState () !=
404+ " succeeded" ) {
405+ ASSERT_EQ (" submitted" ,
406+ get_batch_response.GetResult ().GetDetails ()->GetState ());
407+ } else {
408+ break ;
409+ }
410+ }
411+ // This check contradicts with the previous assertion - we can have a case,
412+ // when the state of the last (i == 99) get_batch_response is "submitted',
413+ // but not 'succeeded', thus, in the previous loop we accept such case
414+ // as a valid one, but here, we treat such case as an error.
415+ // ASSERT_EQ("succeeded",
416+ // get_batch_response.GetResult().GetDetails()->GetState());
368417}
369418
370419TEST_F (DataserviceWriteVersionedLayerClientTest, PublishToBatchMulti) {
@@ -425,15 +474,28 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchMulti) {
425474
426475 EXPECT_SUCCESS (complete_batch_response);
427476
428- get_batch_response =
429- versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
430- EXPECT_SUCCESS (get_batch_response);
431- ASSERT_EQ (response.GetResult ().GetId ().value (),
432- get_batch_response.GetResult ().GetId ().value ());
433- const auto state = get_batch_response.GetResult ().GetDetails ()->GetState ();
434- ASSERT_TRUE (state == " succeeded" || state == " submitted" )
435- << " Where state: " << state
436- << " not equal neither: 'succeeded' nor 'submitted'" ;
477+ for (int i = 0 ; i < 100 ; ++i) {
478+ get_batch_response =
479+ versioned_client->GetBatch (response.GetResult ()).GetFuture ().get ();
480+
481+ EXPECT_SUCCESS (get_batch_response);
482+ ASSERT_EQ (response.GetResult ().GetId ().value (),
483+ get_batch_response.GetResult ().GetId ().value ());
484+ if (get_batch_response.GetResult ().GetDetails ()->GetState () !=
485+ " succeeded" ) {
486+ ASSERT_EQ (" submitted" ,
487+ get_batch_response.GetResult ().GetDetails ()->GetState ());
488+ } else {
489+ break ;
490+ }
491+ }
492+ // There are can be a case that GetBatch() is not "succeeded", but in
493+ // "submitted" state even after 100 iterations,
494+ // which actually means that there are might be a problem on the server side,
495+ // (or just long delay). Thus, better to rewrite this test, or do not rely on
496+ // the real server, but use mocked server.
497+ // ASSERT_EQ("succeeded",
498+ // get_batch_response.GetResult().GetDetails()->GetState());
437499}
438500
439501TEST_F (DataserviceWriteVersionedLayerClientTest, PublishToBatchCancel) {
0 commit comments