MockMvc: как отправить JSON как RequestPart?

199
02 июня 2018, 11:50

У меня есть контроллер, который принимает два RequestPart: JSON и MultipartFile:

@PostMapping(value = "/mail", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Report> mail(@RequestPart("data") MailMessageDto dto,
                                   @RequestPart(name = "attachments", required = false) List<MultipartFile> attachments,
                                   Locale locale) {

Пишу тесты, пока такие:

@Test
public void receiveAndSend() throws Exception {
    MockMultipartFile multipartFile = new MockMultipartFile(TEST_FILE, getOriginalFilename(),
            CONTENT_TYPE, new FileInputStream(new File(TEST_FILE_PATH)));
    String json = asJson(new MailMessageDto(TO, TITLE, CONTENT));
    MockHttpServletRequestBuilder builder = multipart(controllerMask)
            .file(multipartFile)
            .contentType(MediaType.MULTIPART_FORM_DATA)
            .content(json);
    result = mockMvc.perform(builder)
            .andDo(print())
            .andExpect(status().isOk())
            .andReturn();
    assertNull(result.getResponse().getErrorMessage());
}

Пишет:

MockHttpServletResponse:
           Status = 400
    Error message = Required request part 'data' is not present
          Headers = {}
     Content type = null
             Body = 
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

Как мы видим, не задано имя RequestPart (хотя, мне кажется, проблема не только в этом). Подскажите, как правильно отправить JSON?

READ ALSO
Как сделать сайт статичным?

Как сделать сайт статичным?

Хочу что бы сайт отображался на всех устройствах одинаково(отображался так как на 1905px отображается)

179
Что лучше использовать и как?

Что лучше использовать и как?

Что использовать margin или padding, и каким образом? Верстка на bootstrap

200
Сбор HTML с сайтов. Python

Сбор HTML с сайтов. Python

Встал вопрос: Есть ли какой-нибудь способ собрать HTML код с интересующего меня сайта и как-то вывести это на экран или записать в файл? (Python)...

187
как работает этот код на JavaScript

как работает этот код на JavaScript

Есть код по созданию табов в jsНе очень понимаю как он работает, можете объяснить что он делает? Может написать комментарии

224