assert = require('assert') RDB = require('./build/Release/rdb').DBWrapper exec = require('child_process').exec util = require('util') DB_NAME = '/tmp/rocksdbtest-' + process.getuid() a = RDB() assert.equal(a.open(DB_NAME, ['b']), false) exec( util.format( "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \ a = RDB('%s'); a.createColumnFamily('b')\"", DB_NAME ).exitCode, null ) exec( util.format( "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \ a = RDB('%s', ['b'])\"", DB_NAME ).exitCode, null ) exec('rm -rf ' + DB_NAME) a = RDB() assert.equal(a.open(DB_NAME, ['a']), false) assert(a.open(DB_NAME), true) assert(a.createColumnFamily('temp')) b = RDB() assert.equal(b.open(DB_NAME), false) exec('rm -rf ' + DB_NAME) DB_NAME += 'b' a = RDB() assert(a.open(DB_NAME)) assert.equal(a.constructor.name, 'DBWrapper') assert.equal(a.createColumnFamily(), false) assert.equal(a.createColumnFamily(1), false) assert.equal(a.createColumnFamily(['']), false) assert(a.createColumnFamily('b')) assert.equal(a.createColumnFamily('b'), false) // Get and Put assert.equal(a.get(1), null) assert.equal(a.get(['a']), null) assert.equal(a.get('a', 1), null) assert.equal(a.get(1, 'a'), null) assert.equal(a.get(1, 1), null) assert.equal(a.put(1), false) assert.equal(a.put(['a']), false) assert.equal(a.put('a', 1), false) assert.equal(a.put(1, 'a'), false) assert.equal(a.put(1, 1), false) assert.equal(a.put('a', 'a', 1), false) assert.equal(a.put('a', 1, 'a'), false) assert.equal(a.put(1, 'a', 'a'), false) assert.equal(a.put('a', 1, 1), false) assert.equal(a.put(1, 'a', 1), false) assert.equal(a.put(1, 1, 'a'), false) assert.equal(a.put(1, 1, 1), false) assert.equal(a.get(), null) assert.equal(a.get('a'), null) assert.equal(a.get('a', 'c'), null) assert.equal(a.put(), false) assert.equal(a.put('a'), false) assert.equal(a.get('a', 'b', 'c'), null) assert(a.put('a', 'axe')) assert(a.put('a', 'first')) assert.equal(a.get('a'), 'first') assert.equal(a.get('a', 'b'), null) assert.equal(a.get('a', 'c'), null) assert(a.put('a', 'apple', 'b')) assert.equal(a.get('a', 'b'), 'apple') assert.equal(a.get('a'), 'first') assert(a.put('b', 'butter', 'b'), 'butter') assert(a.put('b', 'banana', 'b')) assert.equal(a.get('b', 'b'), 'banana') assert.equal(a.get('b'), null) assert.equal(a.get('b', 'c'), null) // Delete assert.equal(a.delete(1), false) assert.equal(a.delete('a', 1), false) assert.equal(a.delete(1, 'a'), false) assert.equal(a.delete(1, 1), false) assert.equal(a.delete('b'), true) assert(a.delete('a')) assert.equal(a.get('a'), null) assert.equal(a.get('a', 'b'), 'apple') assert.equal(a.delete('c', 'c'), false) assert.equal(a.delete('c', 'b'), true) assert(a.delete('b', 'b')) assert.equal(a.get('b', 'b'), null) // Dump console.log("MARKER 1") assert(a.dump()) console.log("Should be no output between 'MARKER 1' and here\n") console.log('Next line should be "a" => "apple"') assert(a.dump('b')) console.log("\nMARKER 2") assert.equal(a.dump('c'), false) console.log("Should be no output between 'MARKER 2' and here\n") // WriteBatch // Clean up test database exec('rm -rf ' + DB_NAME)