@Test public void resolveArgument() throws Exception { MultiValueMap<String, String> params = getVariablesFor("cars"); params.add("colors", "red"); params.add("colors", "green"); params.add("colors", "blue"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); assertEquals(Arrays.asList("red", "green", "blue"), this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO)); }
@Test public void resolveArgument() throws Exception { MultiValueMap<String, String> params = getVariablesFor("cars"); params.add("colors", "red"); params.add("colors", "green"); params.add("colors", "blue"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); assertEquals(Arrays.asList("red", "green", "blue"), this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null)); }
@Test public void resolveArgumentPathVariable() throws Exception { MultiValueMap<String, String> params1 = getVariablesFor("cars"); params1.add("colors", "red"); params1.add("colors", "purple"); MultiValueMap<String, String> params2 = getVariablesFor("planes"); params2.add("colors", "yellow"); params2.add("colors", "orange"); MethodParameter param = this.testMethod.annot(matrixAttribute().pathVar("cars")) .arg(MultiValueMap.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> mapForPathVar = (Map<String, String>) this.resolver.resolveArgument( param, this.mavContainer, this.webRequest, null); assertEquals(Arrays.asList("red", "purple"), mapForPathVar.get("colors")); param = this.testMethod.annot(matrixAttribute().noName()).arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> mapAll = (Map<String, String>) this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); assertEquals("red", mapAll.get("colors")); }
@Test public void resolveArgument() throws Exception { MultiValueMap<String, String> params = getMatrixVariables("cars"); params.add("colors", "red"); params.add("colors", "green"); params.add("colors", "blue"); params.add("year", "2012"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> map = (Map<String, String>) this.resolver.resolveArgument( param, new BindingContext(), this.exchange).block(Duration.ZERO); assertNotNull(map); assertEquals("red", map.get("colors")); param = this.testMethod .annot(matrixAttribute().noPathVar()) .arg(MultiValueMap.class, String.class, String.class); @SuppressWarnings("unchecked") MultiValueMap<String, String> multivalueMap = (MultiValueMap<String, String>) this.resolver.resolveArgument( param, new BindingContext(), this.exchange).block(Duration.ZERO); assertEquals(Arrays.asList("red", "green", "blue"), multivalueMap.get("colors")); }
@Test public void resolveArgument() throws Exception { MultiValueMap<String, String> params = getVariablesFor("cars"); params.add("colors", "red"); params.add("colors", "green"); params.add("colors", "blue"); params.add("year", "2012"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> map = (Map<String, String>) this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); assertEquals("red", map.get("colors")); param = this.testMethod .annot(matrixAttribute().noPathVar()) .arg(MultiValueMap.class, String.class, String.class); @SuppressWarnings("unchecked") MultiValueMap<String, String> multivalueMap = (MultiValueMap<String, String>) this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); assertEquals(Arrays.asList("red", "green", "blue"), multivalueMap.get("colors")); }
@Test public void resolveArgumentPathVariable() throws Exception { MultiValueMap<String, String> params1 = getMatrixVariables("cars"); params1.add("colors", "red"); params1.add("colors", "purple"); MultiValueMap<String, String> params2 = getMatrixVariables("planes"); params2.add("colors", "yellow"); params2.add("colors", "orange"); MethodParameter param = this.testMethod.annot(matrixAttribute().pathVar("cars")) .arg(MultiValueMap.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> mapForPathVar = (Map<String, String>) this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); assertNotNull(mapForPathVar); assertEquals(Arrays.asList("red", "purple"), mapForPathVar.get("colors")); param = this.testMethod.annot(matrixAttribute().noName()).arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> mapAll = (Map<String, String>) this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); assertNotNull(mapAll); assertEquals("red", mapAll.get("colors")); }
@Test(expected = ServletRequestBindingException.class) public void resolveArgumentMultipleMatches() throws Exception { getVariablesFor("var1").add("colors", "red"); getVariablesFor("var2").add("colors", "green"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); }
@Test public void resolveArgumentNoParams() throws Exception { MethodParameter param = this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> map = (Map<String, String>) this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); assertEquals(Collections.emptyMap(), map); }
@Test(expected = ServerWebInputException.class) public void resolveArgumentRequired() throws Exception { MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); }
@Test(expected = ServerErrorException.class) public void resolveArgumentMultipleMatches() throws Exception { getVariablesFor("var1").add("colors", "red"); getVariablesFor("var2").add("colors", "green"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); }
@Test public void supportsParameter() { assertFalse(this.resolver.supportsParameter(this.testMethod.arg(String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod .annot(matrixAttribute().noName()).arg(List.class, String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod .annot(matrixAttribute().name("year")).arg(int.class))); }
@Test public void supportsParameter() { assertFalse(this.resolver.supportsParameter(this.testMethod.arg(String.class))); assertTrue(this.resolver.supportsParameter( this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class))); assertTrue(this.resolver.supportsParameter( this.testMethod.annot(matrixAttribute().name("year")).arg(int.class))); }
@Test public void supportsParameter() { assertFalse(this.resolver.supportsParameter(this.testMethod.arg(String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().noPathVar()) .arg(MultiValueMap.class, String.class, String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().pathVar("cars")) .arg(MultiValueMap.class, String.class, String.class))); assertFalse(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().name("name")) .arg(Map.class, String.class, String.class))); }
@Test public void resolveArgumentNoParams() throws Exception { MethodParameter param = this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class); @SuppressWarnings("unchecked") Map<String, String> map = (Map<String, String>) this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); assertEquals(Collections.emptyMap(), map); }
@Test(expected = ServletRequestBindingException.class) public void resolveArgumentRequired() throws Exception { MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); }
@Test public void supportsParameter() { assertFalse(this.resolver.supportsParameter(this.testMethod.arg(String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().noName()) .arg(Map.class, String.class, String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().noPathVar()) .arg(MultiValueMap.class, String.class, String.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().pathVar("cars")) .arg(MultiValueMap.class, String.class, String.class))); assertFalse(this.resolver.supportsParameter(this.testMethod.annot(matrixAttribute().name("name")) .arg(Map.class, String.class, String.class))); }