@Override public String toString() { StringBuilder result = new StringBuilder(); result.append( name ); if ( defaultValue != null ) { result.append( " = " ).append( defaultValue.value() ); } return result.append( " :: " ).append( type ).toString(); }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleMapsWithLists() { // Given String mapString = "{k1: [1337, 42]}"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then Map<String,Object> map1 = (Map<String,Object>) converted.value(); assertThat( map1.get( "k1" ), equalTo( asList( 1337L, 42L ) ) ); } }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleNestedMaps() { // Given String mapString = "{k1: 1337, k2: { k1 : 1337, k2: {k1: 1337}}}"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then Map<String,Object> map1 = (Map<String,Object>) converted.value(); Map<String,Object> map2 = (Map<String,Object>) map1.get( "k2" ); Map<String,Object> map3 = (Map<String,Object>) map2.get( "k2" ); assertThat( map1.get( "k1" ), equalTo( 1337L ) ); assertThat( map2.get( "k1" ), equalTo( 1337L ) ); assertThat( map3.get( "k1" ), equalTo( 1337L ) ); }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleNestedLists() { // Given ParameterizedType type = mock( ParameterizedType.class ); when( type.getActualTypeArguments() ).thenReturn( new Type[]{Object.class} ); ListConverter converter = new ListConverter( type, NTList( NTAny ) ); String mapString = "[42, [42, 1337]]"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then List<Object> list = (List<Object>) converted.value(); assertThat( list.get( 0 ), equalTo( 42L ) ); assertThat( list.get( 1 ), equalTo( asList( 42L, 1337L ) ) ); }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleListsOfMaps() { // Given ListConverter converter = new ListConverter( Map.class, NTMap ); String mapString = "[{k1: 42}, {k1: 1337}]"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then List<Object> list = (List<Object>) converted.value(); assertThat( list.get( 0 ), equalTo( map( "k1", 42L ) ) ); assertThat( list.get( 1 ), equalTo( map( "k1", 1337L ) ) ); } }
@Override public String toString() { StringBuilder result = new StringBuilder(); result.append( name ); if ( defaultValue != null ) { result.append( " = " ).append( defaultValue.value() ); } return result.append( " :: " ).append( type ).toString(); }