@SuppressWarnings("serial") @Test public void shouldBindHeaderValuesToCollections() { ParameterDescription param1 = new ParameterDescription( "param1", new ArrayList<String>() {}.getClass().getGenericSuperclass()); ParameterDescription param2 = new ParameterDescription( "param2", new HashSet<Integer>() {}.getClass().getGenericSuperclass()); ParameterDescription param3 = new ParameterDescription( "param3", ((Collection<String>) new ArrayList<String>() {}).getClass().getGenericSuperclass()); parameterDescriptions.put(param1, null); parameterDescriptions.put(param2, null); parameterDescriptions.put(param3, null); request.header("param1", "1", "one"); request.header("param2", "2", "22"); request.header("param3", "3", "three"); binder.bindAll(parameterDescriptions, request, response, pathVariables); assertThat(parameterDescriptions.get(param1), is((Object) list("1", "one"))); assertThat(parameterDescriptions.get(param2), is((Object) set(2, 22))); assertThat(parameterDescriptions.get(param3), is((Object) list("3", "three"))); }
@Test public void shouldHandleCoreTypeParamBindings() { ParameterDescription param1 = new ParameterDescription("param1", String.class); ParameterDescription param2 = new ParameterDescription("param2", int.class); ParameterDescription param3 = new ParameterDescription("param3", Integer.class); ParameterDescription param4 = new ParameterDescription("param4", double.class); ParameterDescription param5 = new ParameterDescription("param5", Double.class); ParameterDescription param6 = new ParameterDescription("param6", short.class); ParameterDescription param7 = new ParameterDescription("param7", Short.class); ParameterDescription param8 = new ParameterDescription("param8", float.class); ParameterDescription param9 = new ParameterDescription("param9", Float.class); ParameterDescription param10 = new ParameterDescription("param10", long.class); ParameterDescription param11 = new ParameterDescription("param11", Long.class); ParameterDescription param12 = new ParameterDescription("param12", BigDecimal.class); ParameterDescription param13 = new ParameterDescription("param13", BigInteger.class); parameterDescriptions.put(param1, null); parameterDescriptions.put(param2, null); parameterDescriptions.put(param3, null); parameterDescriptions.put(param4, null); parameterDescriptions.put(param5, null); parameterDescriptions.put(param6, null); parameterDescriptions.put(param7, null); parameterDescriptions.put(param8, null); parameterDescriptions.put(param9, null); parameterDescriptions.put(param10, null); parameterDescriptions.put(param11, null); parameterDescriptions.put(param12, null); parameterDescriptions.put(param13, null); request.header("param1", "string-value"); request.header("param2", "2"); request.header("param3", "3"); request.header("param4", "4.0"); request.header("param5", "5.0"); request.header("param6", "6"); request.header("param7", "7"); request.header("param8", "8.8"); request.header("param9", "9.9"); request.header("param10", "10"); request.header("param11", "11"); request.header("param12", "12.00"); request.header("param13", "13"); binder.bindAll(parameterDescriptions, request, response, pathVariables); assertThat(parameterDescriptions.get(param1), is((Object) "string-value")); assertThat(parameterDescriptions.get(param2), is((Object) 2)); assertThat(parameterDescriptions.get(param3), is((Object) 3)); assertThat(parameterDescriptions.get(param4), is((Object) 4.0)); assertThat(parameterDescriptions.get(param5), is((Object) 5.0)); assertThat(parameterDescriptions.get(param6), is((Object) (short) 6)); assertThat(parameterDescriptions.get(param7), is((Object) (short) 7)); assertThat(parameterDescriptions.get(param8), is((Object) 8.8f)); assertThat(parameterDescriptions.get(param9), is((Object) 9.9f)); assertThat(parameterDescriptions.get(param10), is((Object) 10L)); assertThat(parameterDescriptions.get(param11), is((Object) 11L)); assertThat(parameterDescriptions.get(param12), is((Object) new BigDecimal("12.00"))); assertThat(parameterDescriptions.get(param13), is((Object) BigInteger.valueOf(13))); }
@Test public void shouldLeaveUnbindableValuesNull() { ParameterDescription param1 = new ParameterDescription("param1", String.class); ParameterDescription param2 = new ParameterDescription("param2", UUID.class); ParameterDescription param3 = new ParameterDescription("param3", Object.class); parameterDescriptions.put(param1, null); parameterDescriptions.put(param2, null); request.header("param1", "string-value"); request.header("param2", UUID.randomUUID().toString()); request.header("param3", "3"); binder.bindAll(parameterDescriptions, request, response, pathVariables); assertThat(parameterDescriptions.get(param1), is((Object) "string-value")); assertThat(parameterDescriptions.get(param2), is(nullValue())); assertThat(parameterDescriptions.get(param3), is(nullValue())); }