@Test public void testSimpleWritable() throws IOException { RangeInputSplit split = new RangeInputSplit( "table", "1", 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.getTableName(), newSplit.getTableName()); Assert.assertEquals(split.getTableId(), newSplit.getTableId()); Assert.assertEquals(split.getRange(), newSplit.getRange()); Assert.assertTrue(Arrays.equals(split.getLocations(), newSplit.getLocations())); }
@Test public void testAllFieldsWritable() throws IOException { RangeInputSplit split = new RangeInputSplit( "table", "1", 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"))); // Fake some iterators ArrayList<IteratorSetting> iterators = new ArrayList<IteratorSetting>(); IteratorSetting setting = new IteratorSetting(50, SummingCombiner.class); setting.addOption("foo", "bar"); iterators.add(setting); setting = new IteratorSetting(100, WholeRowIterator.class); setting.addOption("bar", "foo"); iterators.add(setting); split.setTableName("table"); split.setAuths(new Authorizations("foo")); split.setOffline(true); split.setIsolatedScan(true); split.setUsesLocalIterators(true); split.setFetchedColumns(fetchedColumns); split.setToken(new PasswordToken("password")); split.setPrincipal("root"); split.setInstanceName("instance"); DeprecationUtil.setMockInstance(split, true); split.setZooKeepers("localhost"); split.setIterators(iterators); split.setLogLevel(Level.WARN); 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.getTableName(), newSplit.getTableName()); 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.getFetchedColumns(), newSplit.getFetchedColumns()); Assert.assertEquals(split.getToken(), newSplit.getToken()); Assert.assertEquals(split.getPrincipal(), newSplit.getPrincipal()); Assert.assertEquals(split.getInstanceName(), newSplit.getInstanceName()); Assert.assertEquals( DeprecationUtil.isMockInstanceSet(split), DeprecationUtil.isMockInstanceSet(newSplit)); Assert.assertEquals(split.getZooKeepers(), newSplit.getZooKeepers()); Assert.assertEquals(split.getIterators(), newSplit.getIterators()); Assert.assertEquals(split.getLogLevel(), newSplit.getLogLevel()); }