in ddm-rrm/src/it/java/com/epam/digital/data/platform/management/MasterVersionFormsControllerIT.java [594:631]
void updateForm_invalidETag() {
// add file to "remote" repo
final var headFormContent = context.getResourceContent(
"/versions/master/forms/{formName}/PUT/valid-form-head.json");
context.addFileToRemoteHeadRepo("/forms/valid-form.json", headFormContent);
context.pullHeadRepo();
// define expected form content to update
final var expectedFormContent = context.getResourceContent(
"/versions/master/forms/{formName}/PUT/valid-form-version-candidate.json");
// perform query
mockMvc.perform(
put("/versions/master/forms/{formName}","valid-form")
.contentType(MediaType.APPLICATION_JSON)
.content(expectedFormContent)
.header("If-Match", RandomString.make())
.accept(MediaType.APPLICATION_JSON)
).andExpectAll(
status().isConflict()// isPreconditionFailed()
);
// assert that actual content was not updated
final var actualFormContent = mockMvc.perform(
get("/versions/master/forms/{formName}","valid-form")
).andExpectAll(
status().isOk(),
content().contentType(MediaType.APPLICATION_JSON),
jsonPath("$.name", is("valid-form")),
jsonPath("$.title", is("Valid form HEAD"))
).andReturn().getResponse().getContentAsString();
JSONAssert.assertNotEquals(expectedFormContent, actualFormContent,
new CustomComparator(JSONCompareMode.LENIENT,
new Customization("created", (o1, o2) -> true),
new Customization("modified", (o1, o2) -> true)
));
}