@@ -193,6 +193,61 @@ public void testDeserializationFailsWhenNeitherErrorNameNorMessageIsSet() {
193193 .hasNoArgs ();
194194 }
195195
196+ @ Test
197+ public void testDeserializeWithJsonObjectParameter () throws Exception {
198+ String serialized = "{\" errorCode\" :\" PERMISSION_DENIED\" ,\" errorName\" :\" Product:SomethingBroke\" ,"
199+ + "\" parameters\" :{\" key\" :{\" nested\" : \" value\" }}}" ;
200+ assertThat (deserialize (serialized ))
201+ .isEqualTo (SerializableError .builder ()
202+ .from (ERROR )
203+ .putParameters ("key" , "{\" nested\" :\" value\" }" )
204+ .build ());
205+ }
206+
207+ @ Test
208+ public void testDeserializeWithJsonArrayParameter () throws Exception {
209+ String serialized = "{\" errorCode\" :\" PERMISSION_DENIED\" ,\" errorName\" :\" Product:SomethingBroke\" ,"
210+ + "\" parameters\" :{\" key\" :[\" nested\" ]}}" ;
211+ assertThat (deserialize (serialized ))
212+ .isEqualTo (SerializableError .builder ()
213+ .from (ERROR )
214+ .putParameters ("key" , "[\" nested\" ]" )
215+ .build ());
216+ }
217+
218+ @ Test
219+ public void testDeserializeWithJsonBooleanParameter () throws Exception {
220+ String serialized = "{\" errorCode\" :\" PERMISSION_DENIED\" ,\" errorName\" :\" Product:SomethingBroke\" ,"
221+ + "\" parameters\" :{\" key\" :true}}" ;
222+ assertThat (deserialize (serialized ))
223+ .isEqualTo (SerializableError .builder ()
224+ .from (ERROR )
225+ .putParameters ("key" , "true" )
226+ .build ());
227+ }
228+
229+ @ Test
230+ public void testDeserializeWithJsonNumberParameter () throws Exception {
231+ String serialized = "{\" errorCode\" :\" PERMISSION_DENIED\" ,\" errorName\" :\" Product:SomethingBroke\" ,"
232+ + "\" parameters\" :{\" key\" :1.1}}" ;
233+ assertThat (deserialize (serialized ))
234+ .isEqualTo (SerializableError .builder ()
235+ .from (ERROR )
236+ .putParameters ("key" , "1.1" )
237+ .build ());
238+ }
239+
240+ @ Test
241+ public void testDeserializeWithJsonStringParameter () throws Exception {
242+ String serialized = "{\" errorCode\" :\" PERMISSION_DENIED\" ,\" errorName\" :\" Product:SomethingBroke\" ,"
243+ + "\" parameters\" :{\" key\" :\" value\" }}" ;
244+ assertThat (deserialize (serialized ))
245+ .isEqualTo (SerializableError .builder ()
246+ .from (ERROR )
247+ .putParameters ("key" , "value" )
248+ .build ());
249+ }
250+
196251 private static SerializableError deserialize (String serialized ) throws IOException {
197252 return mapper .readValue (serialized , SerializableError .class );
198253 }
0 commit comments