in ddm-rrm/src/it/java/com/epam/digital/data/platform/management/CandidateVersionBPControllerIT.java [362:409]
void updateBusinessProcess() {
// add file to "remote" repo
final var headBpContent = context.getResourceContent(
"/versions/candidates/{versionCandidateId}/business-processes/{businessProcessName}/PUT/valid-bp-head.bpmn");
context.addFileToRemoteHeadRepo("/bpmn/valid-bp.bpmn", headBpContent);
// mock gerrit change info for version candidate
final var versionCandidateId = context.createVersionCandidate();
// define expected bp content to update
final var expectedBpContent = context.getResourceContent(
"/versions/candidates/{versionCandidateId}/business-processes/{businessProcessName}/PUT/valid-bp-version-candidate.bpmn");
// perform query
mockMvc.perform(
put("/versions/candidates/{versionCandidateId}/business-processes/{businessProcessName}",
versionCandidateId, "valid-bp")
.contentType(MediaType.TEXT_XML).content(expectedBpContent)
.accept(MediaType.TEXT_XML)
).andExpectAll(
status().isOk(),
content().contentType("text/xml"),
xpath("/bpmn:definitions/bpmn:process/@id", BPMN_NAMESPACES).string("valid-bp"),
xpath("/bpmn:definitions/bpmn:process/@name", BPMN_NAMESPACES).string(
"Valid BP Version Candidate")
);
// define expected created date for process
final var expectedCreated = context.getHeadRepoDatesByPath("bpmn/valid-bp.bpmn")
.getCreated();
// assert that actual content and expected have no differences except for created and updated dates
final var actualBpContent = context.getFileFromRemoteVersionCandidateRepo(
"/bpmn/valid-bp.bpmn");
assertNoDifferences(expectedBpContent, actualBpContent);
// assert that business process dates are close to current date
final var document = DocumentBuilderFactory.newInstance().newDocumentBuilder()
.parse(new InputSource(new StringReader(actualBpContent)));
final var createdXpath = XPathFactory.newInstance().newXPath();
final var created = createdXpath.compile("/definitions/@created").evaluate(document);
final var updated = createdXpath.compile("/definitions/@modified").evaluate(document);
Assertions.assertThat(created)
.isEqualTo(expectedCreated);
Assertions.assertThat(LocalDateTime.parse(updated, JacksonConfig.DATE_TIME_FORMATTER))
.isCloseTo(LocalDateTime.now(), within(1, ChronoUnit.MINUTES));
}