Add query.TableSelector methods to genji table

This commit is contained in:
Asdine El Hrychy
2019-07-27 12:38:32 +02:00
parent 80ab37f747
commit e12fba3f6c
2 changed files with 21 additions and 30 deletions

View File

@@ -15,10 +15,9 @@ import (
func TestTable(t *testing.T) {
t.Run("Table/Insert/NoIndex", func(t *testing.T) {
db, err := genji.New(memory.NewEngine())
require.NoError(t, err)
db := genji.New(memory.NewEngine())
err = db.Update(func(tx *genji.Tx) error {
err := db.Update(func(tx *genji.Tx) error {
err := tx.CreateTable("test")
require.NoError(t, err)
@@ -42,11 +41,10 @@ func TestTable(t *testing.T) {
})
t.Run("Table/Insert/WithIndex", func(t *testing.T) {
db, err := genji.New(memory.NewEngine())
require.NoError(t, err)
db := genji.New(memory.NewEngine())
defer db.Close()
err = db.Update(func(tx *genji.Tx) error {
err := db.Update(func(tx *genji.Tx) error {
err := tx.CreateTable("test")
require.NoError(t, err)
@@ -80,39 +78,22 @@ func TestTable(t *testing.T) {
func TestTableString(t *testing.T) {
tests := []struct {
name string
withSchema bool
expected string
name string
expected string
}{
{"No schema", false, `name(String): "John 0", age(Int): 10
{"OK", `name(String): "John 0", age(Int): 10
name(String): "John 1", age(Int): 11
name(String): "John 2", age(Int): 12
`},
{"With schema", true, `name(String), age(Int)
"John 0", 10
"John 1", 11
"John 2", 12
`},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
db, err := genji.New(memory.NewEngine())
require.NoError(t, err)
db := genji.New(memory.NewEngine())
err = db.Update(func(tx *genji.Tx) error {
if test.withSchema {
err := tx.CreateTableWithSchema("test", &record.Schema{
Fields: []field.Field{
{Name: "name", Type: field.String},
{Name: "age", Type: field.Int},
},
})
require.NoError(t, err)
} else {
err := tx.CreateTable("test")
require.NoError(t, err)
}
err := db.Update(func(tx *genji.Tx) error {
err := tx.CreateTable("test")
require.NoError(t, err)
tb, err := tx.Table("test")
require.NoError(t, err)