22
33import org .junit .Test ;
44
5+ import javax .annotation .Nullable ;
56import java .time .Instant ;
67import java .util .HashMap ;
78import java .util .LinkedList ;
89import java .util .List ;
910import java .util .Map ;
1011
11- import javax .annotation .Nullable ;
12-
13-
1412import static org .junit .Assert .assertArrayEquals ;
1513import static org .junit .Assert .assertEquals ;
1614import static org .junit .Assert .assertThrows ;
@@ -44,15 +42,17 @@ public void keysString_valsSupportedTypes_works() {
4442 map .put ("string" , "Grüezi" );
4543 map .put ("boolean" , true );
4644 map .put ("long" , 1L );
47- // map.put("float", 1.3f);
45+ map .put ("float" , 1.3f );
4846 map .put ("double" , -1.4d );
49- convertAndBackThenAssert (map , converter );
47+ Map <String , Object > restoredMap = convertAndBack (map , converter );
48+ // Java float is returned as double, so expect double.
49+ map .put ("float" , (double ) 1.3f );
50+ assertEquals (map , restoredMap );
5051 }
5152
5253 /**
5354 * If no item is wider than 32 bits, all integers are restored as Integer.
5455 */
55- @ SuppressWarnings ("unchecked" )
5656 @ Test
5757 public void keysString_valsIntegersBiggest32Bit_works () {
5858 FlexMapConverter converter = new StringFlexMapConverter ();
@@ -90,7 +90,6 @@ public void keysString_valsLongBiggest32Bit_works() {
9090 /**
9191 * If at least one item is 64 bit wide, all integers are restored as Long.
9292 */
93- @ SuppressWarnings ("unchecked" )
9493 @ Test
9594 public void keysString_valsIntegersBiggest64Bit_works () {
9695 FlexMapConverter converter = new StringFlexMapConverter ();
@@ -109,7 +108,6 @@ public void keysString_valsIntegersBiggest64Bit_works() {
109108 }
110109
111110 // Note: can't use assertEquals(map, map) as byte[] does not implement equals(obj).
112- @ SuppressWarnings ("unchecked" )
113111 @ Test
114112 public void keysString_valsByteArray_works () {
115113 FlexMapConverter converter = new StringFlexMapConverter ();
@@ -184,21 +182,24 @@ public void nestedList_works() {
184182 embeddedList1 .add ("Grüezi" );
185183 embeddedList1 .add (true );
186184 embeddedList1 .add (-2L );
187- // embeddedList1.add(1.3f);
185+ embeddedList1 .add (1.3f );
188186 embeddedList1 .add (-1.4d );
189187 map .put ("Hello" , embeddedList1 );
190188 List <Object > embeddedList2 = new LinkedList <>();
191189 embeddedList2 .add ("Grüezi" );
192190 embeddedList2 .add (true );
193191 embeddedList2 .add (-22L );
194- // embeddedList2.add(2.3f);
192+ embeddedList2 .add (2.3f );
195193 embeddedList2 .add (-2.4d );
196194 map .put ("💡" , embeddedList2 );
197- convertAndBackThenAssert (map , converter );
195+ Map <String , List <Object >> restoredMap = convertAndBack (map , converter );
196+ // Java float is returned as double, so expect double.
197+ embeddedList1 .set (3 , (double ) 1.3f );
198+ embeddedList2 .set (3 , (double ) 2.3f );
199+ assertEquals (map , restoredMap );
198200 }
199201
200202 // Note: can't use assertEquals(map, map) as byte[] does not implement equals(obj).
201- @ SuppressWarnings ("unchecked" )
202203 @ Test
203204 public void nestedListByteArray_works () {
204205 FlexMapConverter converter = new StringFlexMapConverter ();
@@ -237,15 +238,14 @@ public void unsupportedValue_throws() {
237238 convertThenAssertThrows (map , converter );
238239 }
239240
240- @ SuppressWarnings ({ "rawtypes" , " unchecked"} )
241- private Map convertAndBack (@ Nullable Map expected , FlexMapConverter converter ) {
242- byte [] converted = converter .convertToDatabaseValue (expected );
241+ @ SuppressWarnings (" unchecked" )
242+ private < K , V > Map < K , V > convertAndBack (@ Nullable Map < K , V > expected , FlexMapConverter converter ) {
243+ byte [] converted = converter .convertToDatabaseValue (( Map < Object , Object >) expected );
243244
244- return converter .convertToEntityProperty (converted );
245+ return ( Map < K , V >) converter .convertToEntityProperty (converted );
245246 }
246247
247- @ SuppressWarnings ({"rawtypes" })
248- private void convertAndBackThenAssert (@ Nullable Map expected , FlexMapConverter converter ) {
248+ private <K , V > void convertAndBackThenAssert (@ Nullable Map <K , V > expected , FlexMapConverter converter ) {
249249 assertEquals (expected , convertAndBack (expected , converter ));
250250 }
251251
0 commit comments