Skip to content

Commit 3fb7552

Browse files
committed
Improve tests to also validate output to EML.
1 parent 5b84f46 commit 3fb7552

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

src/test/java/pt/cjmach/pstconv/PstConverterTest.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,17 @@ public void tearDown() {
5353
instance = null;
5454
}
5555

56-
@Test
57-
public void testConvertInputFileSuccess() {
56+
private void testConvertInputFile(MailMessageFormat format) {
5857
File inputFile = new File("src/test/resources/pt/cjmach/pstconv/outlook.pst");
5958
File outputDirectory = new File("mailbox");
60-
MailMessageFormat format = MailMessageFormat.MBOX;
6159
String encoding = StandardCharsets.ISO_8859_1.name();
62-
int expectedMessageCount = 3;
60+
int expectedTotalMessageCount = 3;
61+
int expectedInboxMessageCount = 2; // expected count on the inbox folder, excluding child folders.
6362
Store store = null;
6463

6564
try {
6665
PstConvertResult result = instance.convert(inputFile, outputDirectory, format, encoding);
67-
assertEquals(expectedMessageCount, result.getMessageCount(), "Unexpected number of converted messages.");
66+
assertEquals(expectedTotalMessageCount, result.getMessageCount(), "Unexpected number of converted messages.");
6867

6968
store = instance.createStore(outputDirectory, format, encoding);
7069
store.connect();
@@ -74,17 +73,23 @@ public void testConvertInputFileSuccess() {
7473
inbox.open(Folder.READ_ONLY);
7574

7675
Message[] messages = inbox.getMessages();
77-
assertEquals(expectedMessageCount, messages.length, "Unexpected number of messages in inbox.");
76+
assertEquals(expectedInboxMessageCount, messages.length, "Unexpected number of messages in inbox.");
7877

79-
MimeMessage lastMessage = (MimeMessage) messages[expectedMessageCount - 1];
80-
Address[] from = lastMessage.getFrom();
81-
assertEquals(1, from.length);
82-
assertEquals("[email protected]", from[0].toString());
78+
Message messageFromAbcd = null;
79+
for (Message message : messages) {
80+
Address[] from = message.getFrom();
81+
assertEquals(1, from.length);
82+
if ("[email protected]".equals(from[0].toString())) {
83+
messageFromAbcd = message;
84+
break;
85+
}
86+
}
87+
assertNotNull(messageFromAbcd, "Message from [email protected] not found on inbox.");
8388

84-
String descriptorIdHeader = lastMessage.getHeader(PstConverter.DESCRIPTOR_ID_HEADER, null);
89+
String descriptorIdHeader = ((MimeMessage) messageFromAbcd).getHeader(PstConverter.DESCRIPTOR_ID_HEADER, null);
8590
assertEquals("2097252", descriptorIdHeader);
8691

87-
MimeMultipart multiPart = (MimeMultipart) lastMessage.getContent();
92+
MimeMultipart multiPart = (MimeMultipart) messageFromAbcd.getContent();
8893
MimeBodyPart bodyPart = (MimeBodyPart) multiPart.getBodyPart(0);
8994
MimeMultipart bodyMultiPart = (MimeMultipart) bodyPart.getContent();
9095
try (InputStream stream = bodyMultiPart.getBodyPart(0).getInputStream()) {
@@ -104,6 +109,12 @@ public void testConvertInputFileSuccess() {
104109
} catch (IOException ignore) { }
105110
}
106111
}
112+
113+
@Test
114+
public void testConvertInputFileSuccess() {
115+
testConvertInputFile(MailMessageFormat.MBOX);
116+
testConvertInputFile(MailMessageFormat.EML);
117+
}
107118

108119
/**
109120
* Test of convert method, of class PstConverter.

0 commit comments

Comments
 (0)