Skip to content

Commit ee0f18e

Browse files
Bohdan Kurylovychborzun
authored andcommitted
Refactored assertion about GetBatch successful response in tests
Refactored the assertion about waiting for the successful result of GetBatch response in functional tests. Now we only check whether the GetBatch response from serve was either 'submitted' or 'succeeded'. We can't rely on the continuous waiting for the 'succeeded' state as it might not be finished in a determined way. Resolves: OLPEDGE-708 Signed-off-by: Bohdan Kurylovych <[email protected]>
1 parent cb7c27f commit ee0f18e

File tree

2 files changed

+59
-160
lines changed

2 files changed

+59
-160
lines changed

tests/functional/olp-cpp-sdk-dataservice-write/DataserviceWriteVersionedLayerClientTest.cpp

Lines changed: 31 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@ const std::string kEndpoint = "endpoint";
3636
const std::string kAppid = "dataservice_write_test_appid";
3737
const std::string kSecret = "dataservice_write_test_secret";
3838
const 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";
4239
const std::string kVersionedLayer = "versioned_layer";
4340

4441
class DataserviceWriteVersionedLayerClientTest : public ::testing::Test {
@@ -148,31 +145,10 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, StartBatch) {
148145
EXPECT_SUCCESS(get_batch_response);
149146
ASSERT_EQ(response.GetResult().GetId().value(),
150147
get_batch_response.GetResult().GetId().value());
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());
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'";
176152
}
177153

178154
TEST_F(DataserviceWriteVersionedLayerClientTest, DeleteClient) {
@@ -307,28 +283,15 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatch) {
307283

308284
EXPECT_SUCCESS(complete_batch_response);
309285

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());
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'";
332295
}
333296

334297
TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchDeleteClient) {
@@ -393,27 +356,15 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchDeleteClient) {
393356

394357
EXPECT_SUCCESS(complete_batch_response);
395358

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());
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'";
417368
}
418369

419370
TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchMulti) {
@@ -474,28 +425,15 @@ TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchMulti) {
474425

475426
EXPECT_SUCCESS(complete_batch_response);
476427

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());
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'";
499437
}
500438

501439
TEST_F(DataserviceWriteVersionedLayerClientTest, PublishToBatchCancel) {

tests/functional/olp-cpp-sdk-dataservice-write/DataserviceWriteVolatileLayerClientTest.cpp

Lines changed: 28 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -180,28 +180,16 @@ TEST_F(DataserviceWriteVolatileLayerClientTest, StartBatch) {
180180
.get();
181181
EXPECT_SUCCESS(complete_batch_response);
182182

183-
for (int i = 0; i < 100; ++i) {
184-
get_batch_response =
185-
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
186-
187-
EXPECT_SUCCESS(get_batch_response);
188-
ASSERT_EQ(response.GetResult().GetId().value(),
189-
get_batch_response.GetResult().GetId().value());
190-
if (get_batch_response.GetResult().GetDetails()->GetState() !=
191-
"succeeded") {
192-
ASSERT_EQ("submitted",
193-
get_batch_response.GetResult().GetDetails()->GetState());
194-
} else {
195-
break;
196-
}
197-
}
198-
// There are can be a case that GetBatch() is not "succeeded", but in
199-
// "submitted" state even after 100 iterations,
200-
// which actually means that there are might be a problem on the server side,
201-
// (or just long delay). Thus, better to rewrite this test, or do not rely on
202-
// the real server, but use mocked server.
203-
// ASSERT_EQ("succeeded",
204-
// get_batch_response.GetResult().GetDetails()->GetState());
183+
get_batch_response =
184+
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
185+
EXPECT_SUCCESS(get_batch_response);
186+
ASSERT_EQ(response.GetResult().GetId().value(),
187+
get_batch_response.GetResult().GetId().value());
188+
189+
const auto state = get_batch_response.GetResult().GetDetails()->GetState();
190+
ASSERT_TRUE(state == "succeeded" || state == "submitted")
191+
<< "Where state: " << state
192+
<< " not equal neither: 'succeeded' nor 'submitted'";
205193
}
206194

207195
TEST_F(DataserviceWriteVolatileLayerClientTest, PublishToBatch) {
@@ -232,29 +220,15 @@ TEST_F(DataserviceWriteVolatileLayerClientTest, PublishToBatch) {
232220
volatile_client->CompleteBatch(response.GetResult()).GetFuture().get();
233221
EXPECT_SUCCESS(complete_batch_response);
234222

235-
GetBatchResponse get_batch_response;
236-
for (int i = 0; i < 100; ++i) {
237-
get_batch_response =
238-
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
239-
240-
EXPECT_SUCCESS(get_batch_response);
241-
ASSERT_EQ(response.GetResult().GetId().value(),
242-
get_batch_response.GetResult().GetId().value());
243-
if (get_batch_response.GetResult().GetDetails()->GetState() !=
244-
"succeeded") {
245-
ASSERT_EQ("submitted",
246-
get_batch_response.GetResult().GetDetails()->GetState());
247-
} else {
248-
break;
249-
}
250-
}
251-
// There are can be a case that GetBatch() is not "succeeded", but in
252-
// "submitted" state even after 100 iterations,
253-
// which actually means that there are might be a problem on the server side,
254-
// (or just long delay). Thus, better to rewrite this test, or do not rely on
255-
// the real server, but use mocked server.
256-
// ASSERT_EQ("succeeded",
257-
// get_batch_response.GetResult().GetDetails()->GetState());
223+
GetBatchResponse get_batch_response =
224+
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
225+
EXPECT_SUCCESS(get_batch_response);
226+
ASSERT_EQ(response.GetResult().GetId().value(),
227+
get_batch_response.GetResult().GetId().value());
228+
const auto state = get_batch_response.GetResult().GetDetails()->GetState();
229+
ASSERT_TRUE(state == "succeeded" || state == "submitted")
230+
<< "Where state: " << state
231+
<< " not equal neither: 'succeeded' nor 'submitted'";
258232
}
259233

260234
TEST_F(DataserviceWriteVolatileLayerClientTest, PublishToBatchInvalid) {
@@ -335,28 +309,15 @@ TEST_F(DataserviceWriteVolatileLayerClientTest,
335309
.get();
336310
EXPECT_SUCCESS(complete_batch_response);
337311

338-
for (int i = 0; i < 100; ++i) {
339-
get_batch_response =
340-
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
341-
342-
EXPECT_SUCCESS(get_batch_response);
343-
ASSERT_EQ(response.GetResult().GetId().value(),
344-
get_batch_response.GetResult().GetId().value());
345-
if (get_batch_response.GetResult().GetDetails()->GetState() !=
346-
"succeeded") {
347-
ASSERT_EQ("submitted",
348-
get_batch_response.GetResult().GetDetails()->GetState());
349-
} else {
350-
break;
351-
}
352-
}
353-
// There are can be a case that GetBatch() is not "succeeded", but in
354-
// "submitted" state even after 100 iterations,
355-
// which actually means that there are might be a problem on the server side,
356-
// (or just long delay). Thus, better to rewrite this test, or do not rely on
357-
// the real server, but use mocked server.
358-
// ASSERT_EQ("succeeded",
359-
// get_batch_response.GetResult().GetDetails()->GetState());
312+
get_batch_response =
313+
volatile_client->GetBatch(response.GetResult()).GetFuture().get();
314+
EXPECT_SUCCESS(get_batch_response);
315+
ASSERT_EQ(response.GetResult().GetId().value(),
316+
get_batch_response.GetResult().GetId().value());
317+
const auto state = get_batch_response.GetResult().GetDetails()->GetState();
318+
ASSERT_TRUE(state == "succeeded" || state == "submitted")
319+
<< "Where state: " << state
320+
<< " not equal neither: 'succeeded' nor 'submitted'";
360321
}
361322

362323
TEST_F(DataserviceWriteVolatileLayerClientTest, CancelAllRequests) {

0 commit comments

Comments
 (0)