Files
supermarket-api/pkg/ramdb/ram_test.go
T

71 lines
1.5 KiB
Go

package ramdb
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestDatabase_From(t *testing.T) {
tests := []struct {
test string
expectFunc func(t *testing.T, db *database)
expectedExists bool
}{
{
test: "it should set exist false if table not found",
expectFunc: func(t *testing.T, db *database) {},
expectedExists: false,
},
{
test: "it should set exist true if table is found",
expectFunc: func(t *testing.T, db *database) {
db.CreateTable("test_table")
},
expectedExists: true,
},
}
for _, tc := range tests {
t.Run(tc.test, func(t *testing.T) {
db := NewDatabase()
tc.expectFunc(t, db)
table := db.From("test_table")
assert.Equal(t, table.exists, tc.expectedExists)
})
}
}
func TestDatabase_CreateTable(t *testing.T) {
tests := []struct {
test string
expectFunc func(t *testing.T, db *database)
expectedError error
}{
{
test: "it should error if the table already exists",
expectFunc: func(t *testing.T, db *database) {
db.CreateTable("test_table")
},
expectedError: ErrTableExists,
},
{
test: "it should not return an error on successful table creation",
expectFunc: func(t *testing.T, db *database) {},
},
}
for _, tc := range tests {
t.Run(tc.test, func(t *testing.T) {
db := NewDatabase()
tc.expectFunc(t, db)
err := db.CreateTable("test_table")
assert.Equal(t, tc.expectedError, err)
})
}
}