Test Insert method

This commit is contained in:
Asdine El Hrychy
2019-02-16 16:22:05 +01:00
parent 03283c458d
commit 3f916fe49a
2 changed files with 67 additions and 1 deletions

66
db_test.go Normal file
View File

@@ -0,0 +1,66 @@
package genji
import (
"testing"
"github.com/asdine/genji/engine/memory"
"github.com/asdine/genji/field"
"github.com/asdine/genji/record"
"github.com/stretchr/testify/require"
)
func TestTable(t *testing.T) {
db, err := Open(memory.NewEngine())
require.NoError(t, err)
t.Run("Table/Insert/NoIndex", func(t *testing.T) {
tx, err := db.Begin(true)
require.NoError(t, err)
defer tx.Rollback()
tb, err := tx.CreateTable("test")
require.NoError(t, err)
rowid, err := tb.Insert(record.FieldBuffer([]field.Field{
field.NewString("name", "John"),
field.NewInt64("age", 10),
}))
require.NoError(t, err)
require.NotNil(t, rowid)
m, err := tx.Indexes("test")
require.NoError(t, err)
require.Empty(t, m)
})
t.Run("Table/Insert/WithIndex", func(t *testing.T) {
tx, err := db.Begin(true)
require.NoError(t, err)
defer tx.Rollback()
tb, err := tx.CreateTable("test")
require.NoError(t, err)
_, err = tx.CreateIndex("test", "name")
require.NoError(t, err)
rowid, err := tb.Insert(record.FieldBuffer([]field.Field{
field.NewString("name", "John"),
field.NewInt64("age", 10),
}))
require.NoError(t, err)
require.NotNil(t, rowid)
m, err := tx.Indexes("test")
require.NoError(t, err)
require.NotEmpty(t, m)
c := m["name"].Cursor()
v, rid := c.Seek([]byte("John"))
require.Equal(t, []byte("John"), v)
require.Equal(t, rowid, rid)
})
err = db.Close()
require.NoError(t, err)
}