ACCUMULO-1854 Clean up constructors. Add a test.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/7c549ab0 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/7c549ab0 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/7c549ab0 Branch: refs/heads/ACCUMULO-1854-info-in-splits Commit: 7c549ab0d5a05a1f5daa36be21ece2e9e291aa3c Parents: cdbed43 Author: Josh Elser <els...@apache.org> Authored: Fri Nov 8 16:23:49 2013 -0500 Committer: Josh Elser <els...@apache.org> Committed: Fri Nov 8 16:23:49 2013 -0500 ---------------------------------------------------------------------- .../core/client/mapreduce/RangeInputSplit.java | 10 +- .../client/mapreduce/RangeInputSplitTest.java | 97 ++++++++++++++++++++ 2 files changed, 102 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/7c549ab0/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java ---------------------------------------------------------------------- diff --git a/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java b/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java index bba7cf0..4cd16b2 100644 --- a/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java +++ b/src/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java @@ -52,6 +52,11 @@ public class RangeInputSplit extends InputSplit implements Writable { locations = new String[0]; } + public RangeInputSplit(Range range, String[] locations) { + this.range = range; + this.locations = locations; + } + public Range getRange() { return range; } @@ -95,11 +100,6 @@ public class RangeInputSplit extends InputSplit implements Writable { return 0f; } - public RangeInputSplit(Range range, String[] locations) { - this.range = range; - this.locations = locations; - } - /** * This implementation of length is only an estimate, it does not provide exact values. Do not have your code rely on this return value. */ http://git-wip-us.apache.org/repos/asf/accumulo/blob/7c549ab0/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java ---------------------------------------------------------------------- diff --git a/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java b/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java new file mode 100644 index 0000000..abcbde0 --- /dev/null +++ b/src/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java @@ -0,0 +1,97 @@ +package org.apache.accumulo.core.client.mapreduce; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.apache.accumulo.core.data.Key; +import org.apache.accumulo.core.data.Range; +import org.apache.accumulo.core.security.Authorizations; +import org.apache.accumulo.core.util.Pair; +import org.apache.hadoop.io.Text; +import org.junit.Assert; +import org.junit.Test; + +public class RangeInputSplitTest { + + @Test + public void testSimpleWritable() throws IOException { + RangeInputSplit split = new RangeInputSplit(new Range(new Key("a"), new Key("b")), new String[]{"localhost"}); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + split.write(dos); + + RangeInputSplit newSplit = new RangeInputSplit(); + + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + DataInputStream dis = new DataInputStream(bais); + newSplit.readFields(dis); + + Assert.assertEquals(split.getRange(), newSplit.getRange()); + Assert.assertTrue(Arrays.equals(split.getLocations(), newSplit.getLocations())); + } + + + + @Test + public void testAllFieldsWritable() throws IOException { + RangeInputSplit split = new RangeInputSplit(new Range(new Key("a"), new Key("b")), new String[]{"localhost"}); + + Set<Pair<Text,Text>> fetchedColumns = new HashSet<Pair<Text,Text>>(); + + fetchedColumns.add(new Pair<Text,Text>(new Text("colf1"), new Text("colq1"))); + fetchedColumns.add(new Pair<Text,Text>(new Text("colf2"), new Text("colq2"))); + + split.setAuths(new Authorizations("foo")); + split.setOffline(true); + split.setIsolatedScan(true); + split.setUsesLocalIterators(true); + split.setMaxVersions(5); + split.setRowRegex("row"); + split.setColfamRegex("colf"); + split.setColqualRegex("colq"); + split.setValueRegex("value"); + split.setFetchedColumns(fetchedColumns); + split.setPassword("password".getBytes()); + split.setUsername("root"); + split.setInstanceName("instance"); + split.setMockInstance(true); + split.setZooKeepers("localhost"); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + split.write(dos); + + RangeInputSplit newSplit = new RangeInputSplit(); + + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + DataInputStream dis = new DataInputStream(bais); + newSplit.readFields(dis); + + Assert.assertEquals(split.getRange(), newSplit.getRange()); + Assert.assertArrayEquals(split.getLocations(), newSplit.getLocations()); + + Assert.assertEquals(split.getAuths(), newSplit.getAuths()); + Assert.assertEquals(split.isOffline(), newSplit.isOffline()); + Assert.assertEquals(split.isIsolatedScan(), newSplit.isOffline()); + Assert.assertEquals(split.usesLocalIterators(), newSplit.usesLocalIterators()); + Assert.assertEquals(split.getMaxVersions(), newSplit.getMaxVersions()); + Assert.assertEquals(split.getRowRegex(), newSplit.getRowRegex()); + Assert.assertEquals(split.getColfamRegex(), newSplit.getColfamRegex()); + Assert.assertEquals(split.getColqualRegex(), newSplit.getColqualRegex()); + Assert.assertEquals(split.getValueRegex(), newSplit.getValueRegex()); + Assert.assertEquals(split.getFetchedColumns(), newSplit.getFetchedColumns()); + Assert.assertEquals(new String(split.getPassword()), new String(newSplit.getPassword())); + Assert.assertEquals(split.getUsername(), newSplit.getUsername()); + Assert.assertEquals(split.getInstanceName(), newSplit.getInstanceName()); + Assert.assertEquals(split.isMockInstance(), newSplit.isMockInstance()); + Assert.assertEquals(split.getZooKeepers(), newSplit.getZooKeepers()); + } + +}