@@ -75,6 +75,46 @@ public void testUUIDList() throws NoSuchMethodException {
7575 assertEquals (result .toString (), list , result );
7676 }
7777
78+ public static void threeArguments (int one , int two , String three ) {}
79+
80+ public static void aLotOfArguments (int one , int two , String three , Object obj , int [] intArr ) {}
81+
82+ @ Test
83+ public void AdditionalInputArgumentsAreIgnored () throws NoSuchMethodException {
84+ Method m =
85+ JsonDataConverterTest .class .getDeclaredMethod (
86+ "threeArguments" , int .class , int .class , String .class );
87+ Type [] arg = m .getGenericParameterTypes ();
88+
89+ DataConverter converter = JsonDataConverter .getInstance ();
90+ byte [] data = converter .toData (1 , 2 , "a string" , "an extra string :o!!!" );
91+ @ SuppressWarnings ("unchecked" )
92+ Object [] deserializedArguments = converter .fromDataArray (data , arg );
93+ assertEquals (3 , deserializedArguments .length );
94+ assertEquals (1 , (int ) deserializedArguments [0 ]);
95+ assertEquals (2 , (int ) deserializedArguments [1 ]);
96+ assertEquals ("a string" , deserializedArguments [2 ]);
97+ }
98+
99+ @ Test
100+ public void MissingInputArgumentsArePopulatedWithDefaultValues () throws NoSuchMethodException {
101+ Method m =
102+ JsonDataConverterTest .class .getDeclaredMethod (
103+ "aLotOfArguments" , int .class , int .class , String .class , Object .class , int [].class );
104+ Type [] arg = m .getGenericParameterTypes ();
105+
106+ DataConverter converter = JsonDataConverter .getInstance ();
107+ byte [] data = converter .toData (1 );
108+ @ SuppressWarnings ("unchecked" )
109+ Object [] deserializedArguments = converter .fromDataArray (data , arg );
110+ assertEquals (5 , deserializedArguments .length );
111+ assertEquals (1 , (int ) deserializedArguments [0 ]);
112+ assertEquals (0 , (int ) deserializedArguments [1 ]);
113+ assertEquals (null , deserializedArguments [2 ]);
114+ assertEquals (null , deserializedArguments [3 ]);
115+ assertEquals (null , deserializedArguments [4 ]);
116+ }
117+
78118 @ Test
79119 public void testClass () {
80120 DataConverter converter = JsonDataConverter .getInstance ();
0 commit comments