This is an automated email from the ASF dual-hosted git repository.
jihoonson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new c3b7704 validate non-empty String baseDataSource in
MaterializedViewSupervisorSpec, added tests (#6075)
c3b7704 is described below
commit c3b7704b50b6d52eb4df813bcd3a55c5cbf8f3b4
Author: chengchengpei <[email protected]>
AuthorDate: Tue Aug 7 20:23:10 2018 -0400
validate non-empty String baseDataSource in MaterializedViewSupervisorSpec,
added tests (#6075)
---
.../MaterializedViewSupervisorSpec.java | 8 +-
.../MaterializedViewSupervisorSpecTest.java | 94 ++++++++++++++++++++++
2 files changed, 98 insertions(+), 4 deletions(-)
diff --git
a/extensions-contrib/materialized-view-maintenance/src/main/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpec.java
b/extensions-contrib/materialized-view-maintenance/src/main/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpec.java
index 69fcbca..e77fec1 100644
---
a/extensions-contrib/materialized-view-maintenance/src/main/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpec.java
+++
b/extensions-contrib/materialized-view-maintenance/src/main/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpec.java
@@ -26,6 +26,7 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.common.base.Strings;
import io.druid.data.input.impl.DimensionSchema;
import io.druid.data.input.impl.DimensionsSpec;
import io.druid.indexer.HadoopIOConfig;
@@ -102,10 +103,9 @@ public class MaterializedViewSupervisorSpec implements
SupervisorSpec
@JacksonInject ChatHandlerProvider chatHandlerProvider
)
{
- this.baseDataSource = Preconditions.checkNotNull(
- baseDataSource,
- "baseDataSource cannot be null. Please provide a
baseDataSource."
- );
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(baseDataSource),
"baseDataSource cannot be null or empty. Please provide a baseDataSource.");
+ this.baseDataSource = baseDataSource;
+
this.dimensionsSpec = Preconditions.checkNotNull(
dimensionsSpec,
"dimensionsSpec cannot be null. Please provide a
dimensionsSpec"
diff --git
a/extensions-contrib/materialized-view-maintenance/src/test/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpecTest.java
b/extensions-contrib/materialized-view-maintenance/src/test/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpecTest.java
index 7a7951e..dd3a734 100644
---
a/extensions-contrib/materialized-view-maintenance/src/test/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpecTest.java
+++
b/extensions-contrib/materialized-view-maintenance/src/test/java/io/druid/indexing/materializedview/MaterializedViewSupervisorSpecTest.java
@@ -44,11 +44,17 @@ import static org.easymock.EasyMock.createMock;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.hamcrest.CoreMatchers;
+import org.junit.Rule;
+import org.junit.rules.ExpectedException;
import java.io.IOException;
public class MaterializedViewSupervisorSpecTest
{
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
private ObjectMapper objectMapper = TestHelper.makeJsonMapper();
@Before
@@ -143,4 +149,92 @@ public class MaterializedViewSupervisorSpecTest
Assert.assertEquals(expected.getDimensions(), spec.getDimensions());
Assert.assertEquals(expected.getMetrics(), spec.getMetrics());
}
+
+ @Test
+ public void testEmptyBaseDataSource() throws Exception
+ {
+
expectedException.expect(CoreMatchers.instanceOf(IllegalArgumentException.class));
+ expectedException.expectMessage(
+ "baseDataSource cannot be null or empty. Please provide a
baseDataSource."
+ );
+ MaterializedViewSupervisorSpec materializedViewSupervisorSpec = new
MaterializedViewSupervisorSpec(
+ "",
+ new DimensionsSpec(
+ Lists.newArrayList(
+ new StringDimensionSchema("isUnpatrolled"),
+ new StringDimensionSchema("metroCode"),
+ new StringDimensionSchema("namespace"),
+ new StringDimensionSchema("page"),
+ new StringDimensionSchema("regionIsoCode"),
+ new StringDimensionSchema("regionName"),
+ new StringDimensionSchema("user")
+ ),
+ null,
+ null
+ ),
+ new AggregatorFactory[]{
+ new CountAggregatorFactory("count"),
+ new LongSumAggregatorFactory("added", "added")
+ },
+ HadoopTuningConfig.makeDefaultTuningConfig(),
+ null,
+ null,
+ null,
+ null,
+ null,
+ objectMapper,
+ null,
+ null,
+ null,
+ null,
+ null,
+ new MaterializedViewTaskConfig(),
+ createMock(AuthorizerMapper.class),
+ new NoopChatHandlerProvider()
+ );
+ }
+
+ @Test
+ public void testNullBaseDataSource() throws Exception
+ {
+
expectedException.expect(CoreMatchers.instanceOf(IllegalArgumentException.class));
+ expectedException.expectMessage(
+ "baseDataSource cannot be null or empty. Please provide a
baseDataSource."
+ );
+ MaterializedViewSupervisorSpec materializedViewSupervisorSpec = new
MaterializedViewSupervisorSpec(
+ null,
+ new DimensionsSpec(
+ Lists.newArrayList(
+ new StringDimensionSchema("isUnpatrolled"),
+ new StringDimensionSchema("metroCode"),
+ new StringDimensionSchema("namespace"),
+ new StringDimensionSchema("page"),
+ new StringDimensionSchema("regionIsoCode"),
+ new StringDimensionSchema("regionName"),
+ new StringDimensionSchema("user")
+ ),
+ null,
+ null
+ ),
+ new AggregatorFactory[]{
+ new CountAggregatorFactory("count"),
+ new LongSumAggregatorFactory("added", "added")
+ },
+ HadoopTuningConfig.makeDefaultTuningConfig(),
+ null,
+ null,
+ null,
+ null,
+ null,
+ objectMapper,
+ null,
+ null,
+ null,
+ null,
+ null,
+ new MaterializedViewTaskConfig(),
+ createMock(AuthorizerMapper.class),
+ new NoopChatHandlerProvider()
+ );
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]