void shouldUploadAndDownloadDocumentWithMultiPartBody()

in digital-document-service/src/it/java/com/epam/digital/data/platform/dgtldcmnt/controller/InternalApiDocumentControllerIT.java [130:162]


  void shouldUploadAndDownloadDocumentWithMultiPartBody() {
    var url = UriComponentsBuilder.newInstance().pathSegment("internal-api")
        .pathSegment("v2")
        .pathSegment("documents")
        .pathSegment(rootProcessInstanceId)
        .toUriString();

    var uploadResponse = mockMvc.perform(multipart(url)
            .file(new MockMultipartFile("file", filename, contentType, data))
            .param("filename", filename)
            .header(JwtAuthenticationFilter.AUTHORIZATION_HEADER, accessToken))
        .andExpect(status().isOk())
        .andReturn()
        .getResponse()
        .getContentAsString();

    var metadata = getPayloadFromJSON(uploadResponse, RemoteDocumentMetadataDto.class);

    var uriBuilder = UriComponentsBuilder.newInstance().pathSegment("internal-api")
        .pathSegment("documents")
        .pathSegment(rootProcessInstanceId)
        .pathSegment(metadata.getId());
    var request = get(uriBuilder.toUriString()).accept(MediaType.APPLICATION_JSON_VALUE);
    request.header(JwtAuthenticationFilter.AUTHORIZATION_HEADER, accessToken);
    var downloadResponse = mockMvc.perform(request)
        .andExpect(status().isOk())
        .andReturn()
        .getResponse();

    assertThat(downloadResponse).isNotNull();
    assertThat(downloadResponse.getContentType()).isEqualTo(contentType);
    assertThat(downloadResponse.getContentAsByteArray()).isEqualTo(data);
  }