void updateBusinessProcess_noBusinessProcessToUpdate()

in ddm-rrm/src/it/java/com/epam/digital/data/platform/management/MasterVersionBPControllerIT.java [285:326]


    void updateBusinessProcess_noBusinessProcessToUpdate() {
      // define expected bp content to create
      final var expectedBpContent = context.getResourceContent(
          "/versions/master/business-processes/{businessProcessName}/PUT/valid-bp-master.bpmn");

      // perform query
      mockMvc.perform(
          put("/versions/master/business-processes/{businessProcessName}", "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 Master")
      );

      // assert that actual content and expected have no differences except for created and updated dates
      final var actualBpContent = mockMvc.perform(
          get("/versions/master/business-processes/{businessProcessName}", "valid-bp")
      ).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 Master")
      ).andReturn().getResponse().getContentAsString();

      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(LocalDateTime.parse(created, JacksonConfig.DATE_TIME_FORMATTER))
          .isCloseTo(LocalDateTime.now(), within(1, ChronoUnit.MINUTES));
      Assertions.assertThat(LocalDateTime.parse(updated, JacksonConfig.DATE_TIME_FORMATTER))
          .isCloseTo(LocalDateTime.now(), within(1, ChronoUnit.MINUTES));
    }