Как проверить MimeMessage на наличие вложений в JUnit или Mockito? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть веб-приложение Spring, которое отправляет сгенерированные файлы PDF по электронной почте, используя MimeMessage и JavaMail, и я хочу создать контрольные примеры, используя JUnit и Mockito, чтобы проверить, существуют ли вложения.

Можно ли это проверить? И если да, то какой подход лучше?

1 Ответ

0 голосов
/ 13 сентября 2018

Сначала определите, могут ли сообщения содержать вложения, используя следующий код:

// suppose 'message' is an object of type Message
String contentType = message.getContentType();

if (contentType.contains("multipart")) {
    // this message may contain attachment
}

Затем мы должны перебрать каждую часть в составной части, чтобы определить, какая часть содержит вложение, следующим образом:

Multipart multiPart = (Multipart) message.getContent();

for (int i = 0; i < multiPart.getCount(); i++) {
    MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(i);
    if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
        // this part is attachment
        // code to save attachment...
    }
}
...