You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2019/05/15 21:42:34 UTC

[accumulo] branch master updated: fix #576 added more unit tests for NewTableConfiguration (#1161)

This is an automated email from the ASF dual-hosted git repository.

kturner pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/master by this push:
     new 70776c1  fix #576 added more unit tests for NewTableConfiguration (#1161)
70776c1 is described below

commit 70776c1c63a7b5df11c0d5c06358d846dbb41138
Author: elinaawise <47...@users.noreply.github.com>
AuthorDate: Wed May 15 17:42:29 2019 -0400

    fix #576 added more unit tests for NewTableConfiguration (#1161)
---
 .../core/client/sample/AbstractHashSampler.java    |  2 +-
 .../client/admin/NewTableConfigurationTest.java    | 67 ++++++++++++++++++++++
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java b/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
index 702544e..c4c5d63 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
@@ -99,7 +99,7 @@ public abstract class AbstractHashSampler implements Sampler {
         hashFunction = deprecatedSha1;
         break;
       default:
-        throw new IllegalArgumentException("Unknown hahser " + hasherOpt);
+        throw new IllegalArgumentException("Unknown hasher " + hasherOpt);
     }
 
     modulus = Integer.parseInt(modulusOpt);
diff --git a/core/src/test/java/org/apache/accumulo/core/client/admin/NewTableConfigurationTest.java b/core/src/test/java/org/apache/accumulo/core/client/admin/NewTableConfigurationTest.java
index dea710d..2ad8659 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/admin/NewTableConfigurationTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/admin/NewTableConfigurationTest.java
@@ -20,10 +20,16 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
+import org.apache.accumulo.core.client.sample.SamplerConfiguration;
+import org.apache.accumulo.core.client.summary.Summarizer;
+import org.apache.accumulo.core.client.summary.SummarizerConfiguration;
+import org.apache.accumulo.core.client.summary.summarizers.FamilySummarizer;
 import org.apache.hadoop.io.Text;
 import org.junit.Before;
 import org.junit.Test;
@@ -31,8 +37,14 @@ import org.junit.Test;
 public class NewTableConfigurationTest {
 
   private SortedSet<Text> splits;
+  private Map<String,String> options;
 
   @Before
+  public void setup() {
+    populateSplits();
+    populateOptions();
+  }
+
   public void populateSplits() {
     splits = new TreeSet<>();
     splits.add(new Text("ccccc"));
@@ -93,4 +105,59 @@ public class NewTableConfigurationTest {
     NewTableConfiguration ntcOnline = new NewTableConfiguration();
     assertTrue(ntcOnline.getInitialTableState() == InitialTableState.ONLINE);
   }
+
+  public void populateOptions() {
+    options = new HashMap<>();
+    options.put("hasher", "murmur3_32");
+    options.put("modulus", "5");
+  }
+
+  /**
+   * Verify enableSampling returns
+   */
+  @Test
+  public void testEnableSampling() {
+    SamplerConfiguration sha1SamplerConfig = new SamplerConfiguration("com.mysampler");
+    sha1SamplerConfig.setOptions(options);
+    NewTableConfiguration ntcSample2 =
+        new NewTableConfiguration().enableSampling(sha1SamplerConfig);
+    assertEquals("com.mysampler", ntcSample2.getProperties().get("table.sampler"));
+    assertEquals("5", ntcSample2.getProperties().get("table.sampler.opt.modulus"));
+    assertEquals("murmur3_32", ntcSample2.getProperties().get("table.sampler.opt.hasher"));
+  }
+
+  /**
+   * Verify enableSummarization returns SummarizerConfiguration with the expected class name(s).
+   */
+  @Test
+  public void testEnableSummarization() {
+    SummarizerConfiguration summarizerConfig1 = SummarizerConfiguration
+        .builder("com.test.summarizer").setPropertyId("s1").addOption("opt1", "v1").build();
+    NewTableConfiguration ntcSummarization1 =
+        new NewTableConfiguration().enableSummarization(summarizerConfig1);
+    assertEquals("v1", ntcSummarization1.getProperties().get("table.summarizer.s1.opt.opt1"));
+    assertEquals("com.test.summarizer",
+        ntcSummarization1.getProperties().get("table.summarizer.s1"));
+
+    Class<? extends Summarizer> builderClass = FamilySummarizer.class;
+    assertTrue(Summarizer.class.isAssignableFrom(builderClass));
+
+    SummarizerConfiguration summarizerConfig2 = SummarizerConfiguration.builder(builderClass)
+        .setPropertyId("s2").addOption("opt2", "v2").build();
+    NewTableConfiguration ntcSummarization2 =
+        new NewTableConfiguration().enableSummarization(summarizerConfig2);
+    assertEquals("v2", ntcSummarization2.getProperties().get("table.summarizer.s2.opt.opt2"));
+    assertEquals(builderClass.getName(),
+        ntcSummarization2.getProperties().get("table.summarizer.s2"));
+
+    NewTableConfiguration ntcSummarization3 =
+        new NewTableConfiguration().enableSummarization(summarizerConfig1, summarizerConfig2);
+    assertEquals("v1", ntcSummarization1.getProperties().get("table.summarizer.s1.opt.opt1"));
+    assertEquals("v2", ntcSummarization2.getProperties().get("table.summarizer.s2.opt.opt2"));
+    assertEquals("com.test.summarizer",
+        ntcSummarization3.getProperties().get("table.summarizer.s1"));
+    assertEquals(builderClass.getName(),
+        ntcSummarization3.getProperties().get("table.summarizer.s2"));
+
+  }
 }