open-nomad/nomad/memdb/txn_test.go
2015-06-07 19:38:01 -05:00

59 lines
892 B
Go

package memdb
import "testing"
func testDB(t *testing.T) *MemDB {
db, err := NewMemDB(testValidSchema())
if err != nil {
t.Fatalf("err: %v", err)
}
return db
}
func TestTxn_Read_AbortCommit(t *testing.T) {
db := testDB(t)
txn := db.Txn(false) // Readonly
txn.Abort()
txn.Abort()
txn.Commit()
txn.Commit()
}
func TestTxn_Write_AbortCommit(t *testing.T) {
db := testDB(t)
txn := db.Txn(true) // Write
txn.Abort()
txn.Abort()
txn.Commit()
txn.Commit()
txn = db.Txn(true) // Write
txn.Commit()
txn.Commit()
txn.Abort()
txn.Abort()
}
func TestTxn_Insert_First(t *testing.T) {
db := testDB(t)
txn := db.Txn(true)
obj := testObj()
err := txn.Insert("main", obj)
if err != nil {
t.Fatalf("err: %v", err)
}
raw, err := txn.First("main", "id", obj.ID)
if err != nil {
t.Fatalf("err: %v", err)
}
if raw != obj {
t.Fatalf("bad: %#v %#v", raw, obj)
}
}