#198 - TemplateVariables now drops duplicate TemplateVariable instances.
This commit is contained in:
@@ -77,7 +77,12 @@ public final class TemplateVariables implements Iterable<TemplateVariable>, Seri
|
||||
|
||||
List<TemplateVariable> result = new ArrayList<TemplateVariable>(this.variables.size() + variables.size());
|
||||
result.addAll(this.variables);
|
||||
result.addAll(variables);
|
||||
|
||||
for (TemplateVariable variable : variables) {
|
||||
if (!result.contains(variable)) {
|
||||
result.add(variable);
|
||||
}
|
||||
}
|
||||
|
||||
return new TemplateVariables(result);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
*/
|
||||
package org.springframework.hateoas;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.hateoas.TemplateVariable.VariableType;
|
||||
|
||||
@@ -116,4 +118,18 @@ public class TemplateVariablesUnitTest {
|
||||
assertThat(variables.toString(), is("{&foo,bar}"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #198
|
||||
*/
|
||||
@Test
|
||||
public void dropsDuplicateTemplateVariable() {
|
||||
|
||||
TemplateVariable variable = new TemplateVariable("foo", VariableType.REQUEST_PARAM);
|
||||
TemplateVariables variables = new TemplateVariables(variable);
|
||||
|
||||
List<TemplateVariable> result = variables.concat(variable).asList();
|
||||
|
||||
assertThat(result, hasSize(1));
|
||||
assertThat(result, hasItem(variable));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user