Skip to content

Commit

Permalink
Merge pull request #29 from zapr-oss/develop
Browse files Browse the repository at this point in the history
Version bumped to 2.1
  • Loading branch information
GG-Zapr authored Jul 4, 2018
2 parents 6c7f1bc + c6de781 commit 72b83e1
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>in.zapr.druid</groupId>
<artifactId>druidry</artifactId>
<version>2.0</version>
<version>2.1</version>

<name>Druidry - Druid Java Client</name>
<description>Druidry is an open-source Java based utility library which supports creating
Expand Down
23 changes: 22 additions & 1 deletion src/main/java/in/zapr/druid/druidry/filter/BoundFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,18 @@
package in.zapr.druid.druidry.filter;

import in.zapr.druid.druidry.SortingOrder;

import lombok.Builder;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;

@Getter
@Setter
public class BoundFilter extends DruidFilter {

private static String BOUND_DRUID_FILTER_TYPE = "bound";

@NonNull
private String dimension;
private String lower;
private String upper;
Expand All @@ -35,4 +39,21 @@ public class BoundFilter extends DruidFilter {
private SortingOrder ordering;

// TODO: support for Extraction Function

@Builder
private BoundFilter(@NonNull String dimension,
String lower,
String upper,
Boolean lowerStrict,
Boolean upperStrict,
SortingOrder ordering) {

this.type = BOUND_DRUID_FILTER_TYPE;
this.dimension = dimension;
this.lower = lower;
this.upper = upper;
this.lowerStrict = lowerStrict;
this.upperStrict = upperStrict;
this.ordering = ordering;
}
}
2 changes: 2 additions & 0 deletions src/main/java/in/zapr/druid/druidry/filter/DruidFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@

package in.zapr.druid.druidry.filter;

import lombok.EqualsAndHashCode;
import lombok.Getter;

@Getter
@EqualsAndHashCode
public abstract class DruidFilter {
protected String type;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@

package in.zapr.druid.druidry.filter;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;

@Getter
@EqualsAndHashCode(callSuper = true)
public class SelectorFilter extends DruidFilter {

private static String SELECTOR_DRUID_FILTER_TYPE = "selector";
Expand Down
9 changes: 9 additions & 0 deletions src/test/java/in/zapr/druid/druidry/filter/AndFilterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.json.JSONObject;
import org.skyscreamer.jsonassert.JSONAssert;
import org.skyscreamer.jsonassert.JSONCompareMode;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

Expand Down Expand Up @@ -74,4 +75,12 @@ public void testFieldsMissing() {
AndFilter andFilter = new AndFilter(null);
}

@Test
public void testEquals() {
DruidFilter selectorFilter = new SelectorFilter("Hello", "World");
DruidFilter selectorFilter1 = new SelectorFilter("Hello", "World");

Assert.assertEquals(selectorFilter, selectorFilter1);
}

}
69 changes: 69 additions & 0 deletions src/test/java/in/zapr/druid/druidry/filter/BoundFilterTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package in.zapr.druid.druidry.filter;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import org.json.JSONException;
import org.json.JSONObject;
import org.skyscreamer.jsonassert.JSONAssert;
import org.skyscreamer.jsonassert.JSONCompareMode;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import in.zapr.druid.druidry.SortingOrder;

public class BoundFilterTest {

private static ObjectMapper objectMapper;

@BeforeClass
public void init() {
objectMapper = new ObjectMapper();
}

@Test
public void testAllFields() throws JSONException, JsonProcessingException {

BoundFilter filter = BoundFilter.builder()
.dimension("Hello")
.lower("21")
.upper("31")
.lowerStrict(true)
.upperStrict(false)
.ordering(SortingOrder.ALPHANUMERIC)
.build();

JSONObject jsonObject = new JSONObject();
jsonObject.put("type", "bound");
jsonObject.put("dimension", "Hello");
jsonObject.put("lower", "21");
jsonObject.put("upper", "31");
jsonObject.put("lowerStrict", true);
jsonObject.put("upperStrict", false);
jsonObject.put("ordering", "alphanumeric");

String actualJSON = objectMapper.writeValueAsString(filter);
String expectedJSON = jsonObject.toString();
JSONAssert.assertEquals(expectedJSON, actualJSON, JSONCompareMode.NON_EXTENSIBLE);
}

@Test(expectedExceptions = NullPointerException.class)
public void testRequiredFieldsMissing() {
BoundFilter filter = BoundFilter.builder()
.build();
}

@Test(expectedExceptions = NullPointerException.class)
public void testSettingRequiredFieldAsNull() {
BoundFilter filter = BoundFilter.builder()
.dimension("Hello")
.lower("21")
.upper("31")
.lowerStrict(true)
.upperStrict(false)
.ordering(SortingOrder.ALPHANUMERIC)
.build();

filter.setDimension(null);
}
}

0 comments on commit 72b83e1

Please sign in to comment.