3333import  org .springframework .messaging .support .MessageBuilder ;
3434
3535import  static  org .junit .Assert .*;
36- import  static  org .mockito .Mockito .mock ;
37- import  static  org .mockito .Mockito .when ;
36+ import  static  org .mockito .Mockito .*;
3837
3938/** 
40-  * Unit tests for 
41-  * {@link org.springframework.messaging.handler.annotation.support.MessageMethodArgumentResolver}. 
39+  * Unit tests for {@link MessageMethodArgumentResolver}. 
4240 * 
4341 * @author Stephane Nicoll 
42+  * @author Juergen Hoeller 
4443 */ 
4544public  class  MessageMethodArgumentResolverTests  {
4645
@@ -56,10 +55,8 @@ public class MessageMethodArgumentResolverTests {
5655
5756	@ Before 
5857	public  void  setup () throws  Exception  {
59- 
6058		this .method  = MessageMethodArgumentResolverTests .class .getDeclaredMethod ("handle" ,
61- 				Message .class , Message .class , Message .class , Message .class ,
62- 				ErrorMessage .class );
59+ 				Message .class , Message .class , Message .class , Message .class , ErrorMessage .class );
6360
6461		this .converter  = mock (MessageConverter .class );
6562		this .resolver  = new  MessageMethodArgumentResolver (this .converter );
@@ -85,7 +82,7 @@ public void resolveWithMatchingPayloadType() throws Exception {
8582	}
8683
8784	@ Test 
88- 	public  void  resolveWithPayloadTypeSubClass () throws  Exception  {
85+ 	public  void  resolveWithPayloadTypeSubclass () throws  Exception  {
8986		Message <Integer > message  = MessageBuilder .withPayload (123 ).build ();
9087		MethodParameter  parameter  = new  MethodParameter (this .method , 2 );
9188
@@ -155,7 +152,7 @@ public void resolveWithPayloadTypeOutOfBound() throws Exception {
155152	}
156153
157154	@ Test 
158- 	public  void  resolveMessageSubClassMatch () throws  Exception  {
155+ 	public  void  resolveMessageSubclassMatch () throws  Exception  {
159156		ErrorMessage  message  = new  ErrorMessage (new  UnsupportedOperationException ());
160157		MethodParameter  parameter  = new  MethodParameter (this .method , 4 );
161158
@@ -164,7 +161,7 @@ public void resolveMessageSubClassMatch() throws Exception {
164161	}
165162
166163	@ Test 
167- 	public  void  resolveWithMessageSubClassAndPayloadWildcard () throws  Exception  {
164+ 	public  void  resolveWithMessageSubclassAndPayloadWildcard () throws  Exception  {
168165		ErrorMessage  message  = new  ErrorMessage (new  UnsupportedOperationException ());
169166		MethodParameter  parameter  = new  MethodParameter (this .method , 0 );
170167
@@ -185,6 +182,46 @@ public void resolveWithWrongMessageType() throws Exception {
185182		assertSame (message , this .resolver .resolveArgument (parameter , message ));
186183	}
187184
185+ 	@ Test 
186+ 	public  void  resolveWithPayloadTypeAsWildcardAndNoConverter () throws  Exception  {
187+ 		this .resolver  = new  MessageMethodArgumentResolver ();
188+ 
189+ 		Message <String > message  = MessageBuilder .withPayload ("test" ).build ();
190+ 		MethodParameter  parameter  = new  MethodParameter (this .method , 0 );
191+ 
192+ 		assertTrue (this .resolver .supportsParameter (parameter ));
193+ 		assertSame (message , this .resolver .resolveArgument (parameter , message ));
194+ 	}
195+ 
196+ 	@ Test 
197+ 	public  void  resolveWithConversionNeededButNoConverter () throws  Exception  {
198+ 		this .resolver  = new  MessageMethodArgumentResolver ();
199+ 
200+ 		Message <String > message  = MessageBuilder .withPayload ("test" ).build ();
201+ 		MethodParameter  parameter  = new  MethodParameter (this .method , 1 );
202+ 
203+ 		assertTrue (this .resolver .supportsParameter (parameter ));
204+ 		thrown .expect (MessageConversionException .class );
205+ 		thrown .expectMessage (Integer .class .getName ());
206+ 		thrown .expectMessage (String .class .getName ());
207+ 		this .resolver .resolveArgument (parameter , message );
208+ 	}
209+ 
210+ 	@ Test 
211+ 	public  void  resolveWithConversionEmptyPayloadButNoConverter () throws  Exception  {
212+ 		this .resolver  = new  MessageMethodArgumentResolver ();
213+ 
214+ 		Message <String > message  = MessageBuilder .withPayload ("" ).build ();
215+ 		MethodParameter  parameter  = new  MethodParameter (this .method , 1 );
216+ 
217+ 		assertTrue (this .resolver .supportsParameter (parameter ));
218+ 		thrown .expect (MessageConversionException .class );
219+ 		thrown .expectMessage ("the payload is empty" );
220+ 		thrown .expectMessage (Integer .class .getName ());
221+ 		thrown .expectMessage (String .class .getName ());
222+ 		this .resolver .resolveArgument (parameter , message );
223+ 	}
224+ 
188225
189226	@ SuppressWarnings ("unused" )
190227	private  void  handle (
0 commit comments