Untitled
unknown
plain_text
a year ago
2.5 kB
6
Indexable
@Test(dependsOnMethods = "testFaqQueryAfterDelete")
public void testFaqCreateSucceeds_idempotent() {
// Ensure that required objects are not null
assertNotNull(clientAdapter, "clientAdapter is null");
assertNotNull(s3Adapter, "s3Adapter is null");
assertNotNull(faqBucket, "faqBucket is null");
assertNotNull(indexId, "indexId is null");
assertNotNull(iamRoleArn, "iamRoleArn is null");
// Call CreateFaq first time
String faqName = format("idempotent-faq-%s", UUID.randomUUID().toString());
String clientToken = "testClientToken" + UUID.randomUUID().toString();
final String faqFileLocalPath = FAQ_TEST_FILES_PATH_PREFIX + "faqTestData_0.csv";
final String faqFileS3Path = format("faq-data/faq%s_%s.csv", 0, UUID.randomUUID().toString());
// Check if paths or S3Info are null before calling uploadFile
if (faqFileS3Path != null && faqFileLocalPath != null) {
s3Adapter.uploadFile(S3Info.builder().bucket(faqBucket).prefix(faqFileS3Path).build(), faqFileLocalPath);
} else {
fail("FAQ file paths are null");
}
// Null check for FAQ creation
String faqId = this.clientAdapter.createFaqWithClientToken(faqFileS3Path, faqBucket, indexId, faqName, iamRoleArn, clientToken);
assertThat(faqId).isNotNull();
// Call CreateFaq with same request again and ensure that response is the same
String newFaqId = this.clientAdapter.createFaqWithClientToken(faqFileS3Path, faqBucket, indexId, faqName, iamRoleArn, clientToken);
assertThat(newFaqId).isNotNull();
assertThat(newFaqId).isEqualTo(faqId);
// Handle ConflictException scenarios properly
try {
String newClientToken = clientToken + "New";
this.clientAdapter.createFaqWithClientToken(faqFileS3Path, faqBucket, indexId, faqName, iamRoleArn, newClientToken);
} catch (ConflictException ex) {
log.info("Expected ConflictException for same request with different token.");
} catch (Exception ex) {
fail("Unexpected exception: " + ex.getMessage());
}
// Handle ConflictException for same ClientToken and different request
try {
String newFaqName = faqName + "new";
this.clientAdapter.createFaqWithClientToken(faqFileS3Path, faqBucket, indexId, newFaqName, iamRoleArn, clientToken);
} catch (ConflictException ex) {
log.info("Expected ConflictException for same client token with different request.");
} catch (Exception ex) {
fail("Unexpected exception: " + ex.getMessage());
}
}
Editor is loading...
Leave a Comment