@@ -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