@@ -39,15 +39,21 @@ class TransportWrapperTest {
3939 .data ("" + System .currentTimeMillis ())
4040 .build ();
4141
42+ private final Transport transport ;
43+ private final TransportWrapper transportWrapper ;
44+
45+ public TransportWrapperTest () {
46+ transport = mock (Transport .class );
47+ transportWrapper = new TransportWrapper (transport );
48+ }
49+
4250 @ Nested
4351 class RequestResponseTests {
4452
4553 @ Test
4654 void requestResponseShouldWork () {
4755 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
4856 final Member member = new Member ("test" , null , addresses , "namespace" );
49- final Transport transport = mock (Transport .class );
50- final TransportWrapper transportWrapper = new TransportWrapper (transport );
5157
5258 when (transport .requestResponse (addresses .get (0 ), request )).thenReturn (Mono .just (response ));
5359
@@ -57,12 +63,29 @@ void requestResponseShouldWork() {
5763 .verify ();
5864 }
5965
66+ @ Test
67+ void requestResponseShouldWorkThenFail () {
68+ final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
69+ final Member member = new Member ("test" , null , addresses , "namespace" );
70+
71+ when (transport .requestResponse (addresses .get (0 ), request ))
72+ .thenReturn (Mono .just (response ))
73+ .thenReturn (Mono .error (new RuntimeException ("Error" )));
74+
75+ StepVerifier .create (transportWrapper .requestResponse (member , request ))
76+ .assertNext (message -> Assertions .assertSame (response , message , "response" ))
77+ .thenCancel ()
78+ .verify ();
79+
80+ StepVerifier .create (transportWrapper .requestResponse (member , request ))
81+ .verifyErrorSatisfies (
82+ throwable -> Assertions .assertEquals ("Error" , throwable .getMessage ()));
83+ }
84+
6085 @ Test
6186 void requestResponseShouldWorkMemberSingleAddress () {
6287 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
6388 final Member member = new Member ("test" , null , addresses , "namespace" );
64- final Transport transport = mock (Transport .class );
65- final TransportWrapper transportWrapper = new TransportWrapper (transport );
6689
6790 when (transport .requestResponse (addresses .get (0 ), request )).thenReturn (Mono .just (response ));
6891
@@ -76,8 +99,6 @@ void requestResponseShouldWorkMemberSingleAddress() {
7699 void requestResponseShouldWorkMemberTwoAddresses () {
77100 final List <Address > addresses = Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ));
78101 final Member member = new Member ("test" , null , addresses , "namespace" );
79- final Transport transport = mock (Transport .class );
80- final TransportWrapper transportWrapper = new TransportWrapper (transport );
81102
82103 when (transport .requestResponse (addresses .get (0 ), request ))
83104 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -94,8 +115,6 @@ void requestResponseShouldWorkMemberThreeAddresses() {
94115 final List <Address > addresses =
95116 Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ), Address .from ("test:2" ));
96117 final Member member = new Member ("test" , null , addresses , "namespace" );
97- final Transport transport = mock (Transport .class );
98- final TransportWrapper transportWrapper = new TransportWrapper (transport );
99118
100119 when (transport .requestResponse (addresses .get (0 ), request ))
101120 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -113,8 +132,6 @@ void requestResponseShouldWorkMemberThreeAddresses() {
113132 void requestResponseShouldFailMemberSingleAddress () {
114133 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
115134 final Member member = new Member ("test" , null , addresses , "namespace" );
116- final Transport transport = mock (Transport .class );
117- final TransportWrapper transportWrapper = new TransportWrapper (transport );
118135
119136 when (transport .requestResponse (addresses .get (0 ), request ))
120137 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -128,8 +145,6 @@ void requestResponseShouldFailMemberSingleAddress() {
128145 void requestResponseShouldFailMemberTwoAddresses () {
129146 final List <Address > addresses = Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ));
130147 final Member member = new Member ("test" , null , addresses , "namespace" );
131- final Transport transport = mock (Transport .class );
132- final TransportWrapper transportWrapper = new TransportWrapper (transport );
133148
134149 when (transport .requestResponse (addresses .get (0 ), request ))
135150 .thenReturn (Mono .error (new RuntimeException ("Error - 0" )));
@@ -146,8 +161,6 @@ void requestResponseShouldFailMemberThreeAddresses() {
146161 final List <Address > addresses =
147162 Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ), Address .from ("test:2" ));
148163 final Member member = new Member ("test" , null , addresses , "namespace" );
149- final Transport transport = mock (Transport .class );
150- final TransportWrapper transportWrapper = new TransportWrapper (transport );
151164
152165 when (transport .requestResponse (addresses .get (0 ), request ))
153166 .thenReturn (Mono .error (new RuntimeException ("Error - 0" )));
@@ -169,20 +182,31 @@ class SendTests {
169182 void sendShouldWork () {
170183 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
171184 final Member member = new Member ("test" , null , addresses , "namespace" );
172- final Transport transport = mock (Transport .class );
173- final TransportWrapper transportWrapper = new TransportWrapper (transport );
174185
175186 when (transport .send (addresses .get (0 ), request )).thenReturn (Mono .empty ());
176187
177188 StepVerifier .create (transportWrapper .send (member , request ).retry (2 )).verifyComplete ();
178189 }
179190
191+ @ Test
192+ void sendShouldWorkThenFail () {
193+ final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
194+ final Member member = new Member ("test" , null , addresses , "namespace" );
195+
196+ when (transport .send (addresses .get (0 ), request ))
197+ .thenReturn (Mono .empty ())
198+ .thenReturn (Mono .error (new RuntimeException ("Error" )));
199+
200+ StepVerifier .create (transportWrapper .send (member , request )).verifyComplete ();
201+ StepVerifier .create (transportWrapper .send (member , request ))
202+ .verifyErrorSatisfies (
203+ throwable -> Assertions .assertEquals ("Error" , throwable .getMessage ()));
204+ }
205+
180206 @ Test
181207 void sendShouldWorkMemberSingleAddress () {
182208 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
183209 final Member member = new Member ("test" , null , addresses , "namespace" );
184- final Transport transport = mock (Transport .class );
185- final TransportWrapper transportWrapper = new TransportWrapper (transport );
186210
187211 when (transport .send (addresses .get (0 ), request )).thenReturn (Mono .empty ());
188212
@@ -193,8 +217,6 @@ void sendShouldWorkMemberSingleAddress() {
193217 void sendShouldWorkMemberTwoAddresses () {
194218 final List <Address > addresses = Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ));
195219 final Member member = new Member ("test" , null , addresses , "namespace" );
196- final Transport transport = mock (Transport .class );
197- final TransportWrapper transportWrapper = new TransportWrapper (transport );
198220
199221 when (transport .send (addresses .get (0 ), request ))
200222 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -208,8 +230,6 @@ void sendShouldWorkMemberThreeAddresses() {
208230 final List <Address > addresses =
209231 Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ), Address .from ("test:2" ));
210232 final Member member = new Member ("test" , null , addresses , "namespace" );
211- final Transport transport = mock (Transport .class );
212- final TransportWrapper transportWrapper = new TransportWrapper (transport );
213233
214234 when (transport .send (addresses .get (0 ), request ))
215235 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -224,8 +244,6 @@ void sendShouldWorkMemberThreeAddresses() {
224244 void sendShouldFailMemberSingleAddress () {
225245 final List <Address > addresses = Collections .singletonList (Address .from ("test:0" ));
226246 final Member member = new Member ("test" , null , addresses , "namespace" );
227- final Transport transport = mock (Transport .class );
228- final TransportWrapper transportWrapper = new TransportWrapper (transport );
229247
230248 when (transport .send (addresses .get (0 ), request ))
231249 .thenReturn (Mono .error (new RuntimeException ("Error" )));
@@ -239,8 +257,6 @@ void sendShouldFailMemberSingleAddress() {
239257 void sendShouldFailMemberTwoAddresses () {
240258 final List <Address > addresses = Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ));
241259 final Member member = new Member ("test" , null , addresses , "namespace" );
242- final Transport transport = mock (Transport .class );
243- final TransportWrapper transportWrapper = new TransportWrapper (transport );
244260
245261 when (transport .send (addresses .get (0 ), request ))
246262 .thenReturn (Mono .error (new RuntimeException ("Error - 0" )));
@@ -257,8 +273,6 @@ void sendShouldFailMemberThreeAddresses() {
257273 final List <Address > addresses =
258274 Arrays .asList (Address .from ("test:0" ), Address .from ("test:1" ), Address .from ("test:2" ));
259275 final Member member = new Member ("test" , null , addresses , "namespace" );
260- final Transport transport = mock (Transport .class );
261- final TransportWrapper transportWrapper = new TransportWrapper (transport );
262276
263277 when (transport .send (addresses .get (0 ), request ))
264278 .thenReturn (Mono .error (new RuntimeException ("Error - 0" )));
0 commit comments