11
11
import java .io .IOException ;
12
12
import java .io .InputStream ;
13
13
import java .io .PrintStream ;
14
- import java .util .Iterator ;
15
14
import java .util .List ;
16
15
17
16
import static java .lang .String .format ;
26
25
* The {@link Wiser} instance can be directly retrieved but also only from inside a JUnit statement.
27
26
*/
28
27
public class SmtpServerRule extends ExternalResource {
29
- private final Wiser wiser = new Wiser ();
30
- private final int port ;
28
+ private final Wiser wiser ;
31
29
32
30
public SmtpServerRule (@ NotNull Integer port ) {
33
- this .port = port ;
31
+ this .wiser = Wiser . accepter (( from , recipient ) -> true ). port ( port ) ;
34
32
}
35
33
36
34
@ Override
37
35
protected void before () {
38
- this .wiser .setPort (port );
39
36
this .wiser .start ();
40
37
}
41
38
@@ -62,12 +59,9 @@ public MimeMessage getOnlyMessage(String envelopeReceiver)
62
59
checkState ("getMessages()" );
63
60
List <WiserMessage > messages = getMessages ();
64
61
assertThat (messages ).hasSize (1 );
65
- Iterator <WiserMessage > iterator = messages .iterator ();
66
- WiserMessage wiserMessage = iterator .next ();
62
+ WiserMessage wiserMessage = messages .remove (0 );
67
63
assertThat (wiserMessage .getEnvelopeReceiver ()).isEqualTo (envelopeReceiver );
68
- MimeMessage mimeMessage = wiserMessage .getMimeMessage ();
69
- iterator .remove ();
70
- return mimeMessage ;
64
+ return wiserMessage .getMimeMessage ();
71
65
}
72
66
73
67
@ NotNull
@@ -76,9 +70,7 @@ public MimeMessageAndEnvelope getOnlyMessage()
76
70
checkState ("getMessages()" );
77
71
List <WiserMessage > messages = getMessages ();
78
72
assertThat (messages ).hasSize (1 );
79
- Iterator <WiserMessage > iterator = messages .iterator ();
80
- WiserMessage wiserMessage = iterator .next ();
81
- iterator .remove ();
73
+ WiserMessage wiserMessage = messages .remove (0 );
82
74
return new MimeMessageAndEnvelope (wiserMessage .getMimeMessage (), wiserMessage .getEnvelopeSender ());
83
75
}
84
76
@@ -87,16 +79,14 @@ public MimeMessage getMessage(String envelopeReceiver)
87
79
throws MessagingException {
88
80
checkState ("getMessages()" );
89
81
List <WiserMessage > messages = getMessages ();
90
- Iterator <WiserMessage > iterator = messages .iterator ();
91
- while (iterator .hasNext ()) {
92
- WiserMessage wiserMessage = iterator .next ();
93
- if (wiserMessage .getEnvelopeReceiver ().equals (envelopeReceiver )) {
94
- MimeMessage mimeMessage = wiserMessage .getMimeMessage ();
95
- iterator .remove ();
96
- return mimeMessage ;
97
- }
98
- }
99
- throw new AssertionError ("message not found for recipient " + envelopeReceiver );
82
+
83
+ WiserMessage wiserMessage = messages .stream ()
84
+ .filter (m ->m .getEnvelopeReceiver ().equals (envelopeReceiver ))
85
+ .findFirst ()
86
+ .orElseThrow (() -> new AssertionError ("message not found for recipient " + envelopeReceiver ));
87
+
88
+ messages .remove (wiserMessage );
89
+ return wiserMessage .getMimeMessage ();
100
90
}
101
91
102
92
@ NotNull
0 commit comments