public void CanGetColumn() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); IList<IHBaseCellData> cellData = connection.GetColumn(TableName, RowKey1, FqColNameToDelete); Assert.Equal(1, cellData.Count); deleteTimestamp = cellData[0].Timestamp; } }
public void CanGetRowExpectMultiColumns() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var row = connection.GetRow(TableName, RowKey1); IList<byte[]> columns = row.Columns.Keys.ToList(); Assert.Equal(2, row.Columns.Count); Assert.Contains(FqColName, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Contains(FqColNameToDelete, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Equal(1, row.Columns[columns[0]].Count); Assert.Equal(1, row.Columns[columns[1]].Count); Assert.Equal(CellVal, row.Columns[columns[0]][0].Value); Assert.Equal(CellVal, row.Columns[columns[1]][0].Value); } }
public void GetTables() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var table = connection.GetTables().SingleOrDefault(t => t.Name.SequenceEqual(TableName)); Assert.NotNull(table); Assert.Equal(TableName, table.Name); Assert.Equal(1, table.ColumnFamilies.Count); Assert.Equal(ColFamName, table.ColumnFamilies.First().Value.Name); } }
public void MutateRowsCanDelete() { MockRepository mockRepository = new MockRepository(); IHBaseMutation mutation1 = mockRepository.Stub<IHBaseMutation>(); IHBaseMutation mutation2 = mockRepository.Stub<IHBaseMutation>(); using (mockRepository.Record()) { SetupResult.For(mutation1.Row).Return(RowKey1); SetupResult.For(mutation1.Column).Return(FqColNameToDelete); SetupResult.For(mutation1.IsDelete).Return(true); SetupResult.For(mutation1.Value).Return(CellVal); SetupResult.For(mutation2.Row).Return(RowKey2); SetupResult.For(mutation2.Column).Return(FqColNameToDelete); SetupResult.For(mutation2.IsDelete).Return(true); SetupResult.For(mutation2.Value).Return(CellVal); } using (mockRepository.Playback()) { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); connection.MutateRows(TableName, new List<IHBaseMutation> { mutation1, mutation2 }); } } }
public void DisableTable() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); connection.DisableTable(TableName); var table = connection.GetTables().SingleOrDefault(t => t.Name.SequenceEqual(TableName)); Assert.False(table.IsEnabled); } }
public void GetColumnFamilies() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var columnFamilies = connection.GetColumnFamilies(TableName); Assert.Equal(1, columnFamilies.Count); Assert.Equal(ColFamName, columnFamilies.First().Value.Name); } }
public void CreatesTable() { MockRepository mockRepository = new MockRepository(); IHBaseTableData tableData = mockRepository.Stub<IHBaseTableData>(); IHBaseColumnFamilyData cfData = mockRepository.Stub<IHBaseColumnFamilyData>(); using (mockRepository.Record()) { SetupResult.For(tableData.Name).Return(TableName); SetupResult.For(cfData.Name).Return(ColFamName); SetupResult.For(cfData.MaxVersions).Return(3); SetupResult.For(tableData.ColumnFamilies).Return(new Dictionary<byte[], IHBaseColumnFamilyData> { { ColFamName, cfData } }); } using (mockRepository.Playback()) { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); connection.CreateTable(tableData); } } }
public void DeletesTable() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); connection.DeleteTable(TableName); var table = connection.GetTables().SingleOrDefault(t => t.Name.SequenceEqual(TableName)); Assert.Null(table); } }
public void CanOpenScannerWithStartRowAndStopRowAndAllColumns() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); string row1 = Encoding.UTF8.GetString(RowKey1); string row2 = Encoding.UTF8.GetString(RowKey2); byte[] start; byte[] stop; if (row1.CompareTo(row2) > 0) { start = RowKey2; stop = RowKey1; } else { start = RowKey1; stop = RowKey2; } var rows = connection.ScanWithStop(TableName, start, stop, null, null, 10); // The stop row is not included in a stop row scan Assert.Equal(1, rows.Count); foreach (var row in rows) { IList<byte[]> columns = row.Columns.Keys.ToList(); Assert.Equal(2, row.Columns.Count); Assert.Contains(FqColName, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Contains(FqColNameToDelete, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Equal(1, row.Columns[columns[0]].Count); Assert.Equal(1, row.Columns[columns[1]].Count); Assert.Equal(CellVal, row.Columns[columns[0]][0].Value); Assert.Equal(CellVal, row.Columns[columns[1]][0].Value); } } }
public void CanOpenScannerWithStartRowAndSingleColumn() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var rows = connection.Scan(TableName, RowKey1, new List<byte[]> { FqColName }, null, 10); // Expect one or two rows because RowKey1 and RowKey2 are not intentionally in order. Assert.InRange(rows.Count, 1, 2); foreach (var row in rows) { IList<byte[]> columns = row.Columns.Keys.ToList(); Assert.Equal(1, row.Columns.Count); Assert.Contains(FqColName, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Equal(1, row.Columns[columns[0]].Count); Assert.Equal(CellVal, row.Columns[columns[0]][0].Value); } } }
public void CanOpenScannerWithStartRowAndMaxRowsAllColumns() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var rows = connection.Scan(TableName, RowKey1, null, null, 1); Assert.Equal(rows.Count, 1); rows = connection.Scan(TableName, RowKey1, null, null, 0); Assert.Equal(rows.Count, 0); } }
public void CanOpenScannerWithPrefixStartRowAndAllColumns() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); // All keys are prefixed with 'k'. byte[] startPrefix = new byte[] {(byte) 'k'}; var rows = connection.ScanWithPrefix(TableName, startPrefix, null, 10); Assert.Equal(2, rows.Count); foreach (var row in rows) { IList<byte[]> columns = row.Columns.Keys.ToList(); Assert.Equal(2, row.Columns.Count); Assert.Contains(FqColName, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Contains(FqColNameToDelete, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Equal(1, row.Columns[columns[0]].Count); Assert.Equal(1, row.Columns[columns[1]].Count); Assert.Equal(CellVal, row.Columns[columns[0]][0].Value); Assert.Equal(CellVal, row.Columns[columns[1]][0].Value); } } }
public void CanGetRowsSingleColumnRowHasSingleColumn() { using (HBaseThriftConnection connection = new HBaseThriftConnection(Host, Port)) { connection.Open(); var rows = connection.GetRows(new List<byte[]> { RowKey1, RowKey2 }, TableName, new List<byte[]> { FqColName }); Assert.Equal(2, rows.Count); foreach (var row in rows) { IList<byte[]> columns = row.Columns.Keys.ToList(); Assert.Equal(1, row.Columns.Count); Assert.Contains(FqColName, row.Columns.Keys, new ByteArrayEqualityComparer()); Assert.Equal(1, row.Columns[columns[0]].Count); Assert.Equal(CellVal, row.Columns[columns[0]][0].Value); } } }