diff --git a/src/main/java/com/kenticocloud/delivery/DeliveryParameterBuilder.java b/src/main/java/com/kenticocloud/delivery/DeliveryParameterBuilder.java index 0814822b..aef0504e 100644 --- a/src/main/java/com/kenticocloud/delivery/DeliveryParameterBuilder.java +++ b/src/main/java/com/kenticocloud/delivery/DeliveryParameterBuilder.java @@ -28,6 +28,7 @@ import org.apache.http.message.BasicNameValuePair; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -108,6 +109,10 @@ public DeliveryParameterBuilder filterIn(String attribute, String... values) { return this; } + public DeliveryParameterBuilder filterIn(String attribute, Collection values) { + return filterIn(attribute, values.toArray(new String[values.size()])); + } + public DeliveryParameterBuilder filterContains(String attribute, String value) { if (attribute != null) { nameValuePairs.add(new BasicNameValuePair(String.format("%s%s", attribute, CONTAINS), value)); @@ -122,6 +127,10 @@ public DeliveryParameterBuilder filterAny(String attribute, String... values) { return this; } + public DeliveryParameterBuilder filterAny(String attribute, Collection values) { + return filterAny(attribute, values.toArray(new String[values.size()])); + } + public DeliveryParameterBuilder filterAll(String attribute, String... values) { if (attribute != null) { nameValuePairs.add(new BasicNameValuePair(String.format("%s%s", attribute, ALL), String.join(",", values))); @@ -129,6 +138,10 @@ public DeliveryParameterBuilder filterAll(String attribute, String... values) { return this; } + public DeliveryParameterBuilder filterAll(String attribute, Collection values) { + return filterAll(attribute, values.toArray(new String[values.size()])); + } + public DeliveryParameterBuilder orderByAsc(String attribute) { if (attribute != null) { nameValuePairs.add(new BasicNameValuePair(ORDER, String.format("%s%s", attribute, ASC))); diff --git a/src/test/java/com/kenticocloud/delivery/DeliveryParameterBuilderTest.java b/src/test/java/com/kenticocloud/delivery/DeliveryParameterBuilderTest.java index 4b833d91..9d157a55 100644 --- a/src/test/java/com/kenticocloud/delivery/DeliveryParameterBuilderTest.java +++ b/src/test/java/com/kenticocloud/delivery/DeliveryParameterBuilderTest.java @@ -28,6 +28,7 @@ import org.junit.Assert; import org.junit.Test; +import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -125,6 +126,17 @@ public void testIn() { Assert.assertEquals("bar,foobar", params.get(0).getValue()); } + @Test + public void testInCollection() { + List values = new ArrayList<>(); + values.add("bar"); + values.add("foobar"); + List params = DeliveryParameterBuilder.params().filterIn("foo", values).build(); + Assert.assertEquals(1, params.size()); + Assert.assertEquals("foo[in]", params.get(0).getName()); + Assert.assertEquals("bar,foobar", params.get(0).getValue()); + } + @Test public void testInNullAttr() { List params = DeliveryParameterBuilder.params().filterIn(null, null, null).build(); @@ -153,6 +165,17 @@ public void testAny() { Assert.assertEquals("bar,foobar", params.get(0).getValue()); } + @Test + public void testAnyCollection() { + List values = new ArrayList<>(); + values.add("bar"); + values.add("foobar"); + List params = DeliveryParameterBuilder.params().filterAny("foo", values).build(); + Assert.assertEquals(1, params.size()); + Assert.assertEquals("foo[any]", params.get(0).getName()); + Assert.assertEquals("bar,foobar", params.get(0).getValue()); + } + @Test public void testAnyNullAttr() { List params = DeliveryParameterBuilder.params().filterAny(null, null, null).build(); @@ -167,6 +190,17 @@ public void testAll() { Assert.assertEquals("bar,foobar", params.get(0).getValue()); } + @Test + public void testAllCollection() { + List values = new ArrayList<>(); + values.add("bar"); + values.add("foobar"); + List params = DeliveryParameterBuilder.params().filterAll("foo", values).build(); + Assert.assertEquals(1, params.size()); + Assert.assertEquals("foo[all]", params.get(0).getName()); + Assert.assertEquals("bar,foobar", params.get(0).getValue()); + } + @Test public void testAllNullAttr() { List params = DeliveryParameterBuilder.params().filterAll(null, null, null).build();