blob: 7aea3fe3e84c07632c30d6b0499336e4932f95cd [file] [log] [blame]
library syncbase_table_test;
import 'dart:convert' show UTF8;
import 'package:test/test.dart';
import 'package:ether/syncbase_client.dart' show SyncbaseClient;
import './utils.dart' as utils;
runTableTests(SyncbaseClient c) {
test('getting a handle to a table', () {
var app = c.app(utils.uniqueName('app'));
var db = app.noSqlDatabase(utils.uniqueName('db'));
var tableName = utils.uniqueName('table');
var table = db.table(tableName);
expect(table.relativeName, equals(tableName));
expect(table.fullName, equals(db.fullName + '/' + tableName));
});
test('creating and deleting a table', () async {
var app = c.app(utils.uniqueName('app'));
await app.create(utils.emptyPerms());
var db = app.noSqlDatabase(utils.uniqueName('db'));
await db.create(utils.emptyPerms());
var table = db.table(utils.uniqueName('table'));
expect(await table.exists(), equals(false));
await table.create(utils.emptyPerms());
expect(await table.exists(), equals(true));
await table.delete();
expect(await table.exists(), equals(false));
});
test('scanning rows', () async {
var app = c.app(utils.uniqueName('app'));
await app.create(utils.emptyPerms());
var db = app.noSqlDatabase(utils.uniqueName('db'));
await db.create(utils.emptyPerms());
var table = db.table(utils.uniqueName('table'));
await table.create(utils.emptyPerms());
// Put some rows.
var rowNames = [utils.uniqueName('rowA'), utils.uniqueName('rowB')];
for (var rowName in rowNames) {
var row = table.row(rowName);
await row.put(UTF8.encode(utils.uniqueName('value')));
}
// Scan!
var stream = table.scan(UTF8.encode(''), UTF8.encode('z'));
var gotRows = await stream.toList();
expect(gotRows, hasLength(rowNames.length));
expect(gotRows[0].key, equals(rowNames[0]));
expect(gotRows[1].key, equals(rowNames[1]));
// TODO(nlacasse): Write tests that check that 'start' and 'limit' are
// working properly.
});
}