Repository: incubator-griffin Updated Branches: refs/heads/master 8e0afa45a -> 8d1707faa
fix rule details format and update ut Author: ahutsunshine <[email protected]> Closes #179 from ahutsunshine/master. Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/8d1707fa Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/8d1707fa Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/8d1707fa Branch: refs/heads/master Commit: 8d1707faa2c3621fcd568fdcd7ec2f716a23df06 Parents: 8e0afa4 Author: ahutsunshine <[email protected]> Authored: Wed Nov 22 17:12:22 2017 +0800 Committer: Lionel Liu <[email protected]> Committed: Wed Nov 22 17:12:22 2017 +0800 ---------------------------------------------------------------------- .../griffin/core/measure/entity/Rule.java | 27 +++++++++++++++++--- .../core/measure/MeasureControllerTest.java | 13 +++++----- .../griffin/core/measure/MeasureTestHelper.java | 4 ++- 3 files changed, 33 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/8d1707fa/service/src/main/java/org/apache/griffin/core/measure/entity/Rule.java ---------------------------------------------------------------------- diff --git a/service/src/main/java/org/apache/griffin/core/measure/entity/Rule.java b/service/src/main/java/org/apache/griffin/core/measure/entity/Rule.java index 48c65d2..99bd514 100644 --- a/service/src/main/java/org/apache/griffin/core/measure/entity/Rule.java +++ b/service/src/main/java/org/apache/griffin/core/measure/entity/Rule.java @@ -19,12 +19,16 @@ under the License. package org.apache.griffin.core.measure.entity; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.griffin.core.util.JsonUtil; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.Transient; +import java.io.IOException; +import java.util.Map; @Entity @@ -40,9 +44,13 @@ public class Rule extends AbstractAuditableEntity { @Column(length = 1024) private String rule; - @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonIgnore private String details; + @Transient + @JsonInclude(JsonInclude.Include.NON_NULL) + private Map<String, Object> detailsMap; + @JsonProperty("dsl.type") public String getDslType() { @@ -76,17 +84,28 @@ public class Rule extends AbstractAuditableEntity { return details; } - public void setDetails(Object details) { + public void setDetails(String details) { + this.details = details; + } + + @JsonProperty("details") + public Map<String, Object> getDetailsMap() { + return detailsMap; + } + + @JsonProperty("details") + public void setDetailsMap(Map<String, Object> details) throws IOException { + this.detailsMap = details; this.details = JsonUtil.toJson(details); } public Rule() { } - public Rule(String dslType, String dqType, String rule, String details) { + public Rule(String dslType, String dqType, String rule, Map<String, Object> details) throws IOException { this.dslType = dslType; this.dqType = dqType; this.rule = rule; - this.details = details; + setDetailsMap(details); } } http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/8d1707fa/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java ---------------------------------------------------------------------- diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java index 2680298..510a65b 100644 --- a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java +++ b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java @@ -21,6 +21,7 @@ package org.apache.griffin.core.measure; import org.apache.griffin.core.measure.entity.Measure; import org.apache.griffin.core.util.GriffinOperationMessage; +import org.apache.griffin.core.util.JsonUtil; import org.apache.griffin.core.util.URLHelper; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Before; @@ -112,7 +113,7 @@ public class MeasureControllerTest { @Test public void testUpdateMeasureForSuccess() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_SUCCESS); mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) @@ -124,7 +125,7 @@ public class MeasureControllerTest { @Test public void testUpdateMeasureForNotFound() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.RESOURCE_NOT_FOUND); mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) @@ -137,7 +138,7 @@ public class MeasureControllerTest { @Test public void testUpdateMeasureForFail() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_FAIL); mvc.perform(put(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) @@ -163,7 +164,7 @@ public class MeasureControllerTest { @Test public void testCreateNewMeasureForSuccess() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_SUCCESS); mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) @@ -175,7 +176,7 @@ public class MeasureControllerTest { @Test public void testCreateNewMeasureForFailWithDuplicate() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL_DUPLICATE); mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) @@ -187,7 +188,7 @@ public class MeasureControllerTest { @Test public void testCreateNewMeasureForFailWithSaveException() throws Exception { Measure measure = createATestMeasure("view_item_hourly", "test"); - String measureJson = new ObjectMapper().writeValueAsString(measure); + String measureJson = JsonUtil.toJson(measure); given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL); mvc.perform(post(URLHelper.API_VERSION_PATH + "/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson)) http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/8d1707fa/service/src/test/java/org/apache/griffin/core/measure/MeasureTestHelper.java ---------------------------------------------------------------------- diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureTestHelper.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureTestHelper.java index ad727f7..614a5d1 100644 --- a/service/src/test/java/org/apache/griffin/core/measure/MeasureTestHelper.java +++ b/service/src/test/java/org/apache/griffin/core/measure/MeasureTestHelper.java @@ -47,7 +47,9 @@ public class MeasureTestHelper { dataSources.add(dataSource); dataSources.add(targetSource); String rules = "source.id=target.id AND source.name=target.name AND source.age=target.age"; - Rule rule = new Rule("griffin-dsl", "accuracy", rules,null); + Map<String, Object> map = new HashMap<>(); + map.put("detail", "detail info"); + Rule rule = new Rule("griffin-dsl", "accuracy", rules,map); EvaluateRule evaluateRule = new EvaluateRule(Arrays.asList(rule)); return new Measure(name, "description", org, "batch", "test", dataSources, evaluateRule); }
