in digital-document-service/src/it/java/com/epam/digital/data/platform/dgtldcmnt/controller/DocumentControllerIT.java [101:138]
void shouldThrowIfFileIsGreaterThenMaxFileSizeUploadDocument() {
var contextDto = createDocumentContextDto();
var url = UriComponentsBuilder.newInstance().scheme("http")
.host("localhost")
.port(port)
.pathSegment("documents")
.pathSegment(contextDto.getRootProcessInstanceId())
.pathSegment(contextDto.getTaskId())
.pathSegment(contextDto.getFieldName())
.build()
.toUri();
var fileData = Strings.repeat("file", 65535); // ~256KB
var data =
"--$boundary\r\nContent-Disposition: form-data; name=\"file\"; filename=\"file.csv\"\r\nContent-Type: text/csv\r\n\r\n"
+ fileData + "\r\n--$boundary--";
var request = HttpRequest.newBuilder()
.uri(url)
.header("Content-Type", "multipart/form-data;boundary=$boundary")
.header("Content-Disposition", "form-data; name=file; filename=file.csv")
.header(JwtAuthenticationFilter.AUTHORIZATION_HEADER, accessToken)
.header(DocumentController.X_FORWARDED_HOST_HEADER, host)
.POST(HttpRequest.BodyPublishers
.ofInputStream(() -> new ByteArrayInputStream(data.getBytes())))
.build();
var response = HttpClient.newHttpClient().send(request, BodyHandlers.ofString());
assertThat(response.statusCode()).isEqualTo(413);
DocumentContext ctx = JsonPath.parse(response.body());
assertThat(ctx.read("$.traceId", String.class)).isNotNull();
assertThat(ctx.read("$.code", String.class)).isEqualTo("FILE_SIZE_IS_TOO_LARGE");
assertThat(ctx.read("$.message", String.class)).isEqualTo(
"The size of the uploaded file exceeds 0.2MB");
assertThat(ctx.read("$.localizedMessage", String.class)).isNull();
}