You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/db/schema/statement_test.go

43 lines
965 B

package schema
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestStatementProvider(t *testing.T) {
testDialect := "test"
migrationStates[testDialect] = migrationState{
binarySchemaVersion: 5,
upMigrations: map[int][]byte{
1: []byte("one"),
2: []byte("two"),
3: []byte("three"),
},
}
st := newStatementProvider(testDialect, 1)
assert.Equal(t, -1, st.Version())
assert.Equal(t, []byte(nil), st.ReadUp())
assert.True(t, st.Next())
assert.Equal(t, 2, st.Version())
assert.Equal(t, []byte("two"), st.ReadUp())
assert.True(t, st.Next())
assert.Equal(t, 3, st.Version())
assert.Equal(t, []byte("three"), st.ReadUp())
assert.False(t, st.Next())
assert.Equal(t, -1, st.Version())
assert.Equal(t, []byte(nil), st.ReadUp())
assert.False(t, st.Next())
assert.Equal(t, -1, st.Version())
assert.Equal(t, []byte(nil), st.ReadUp())
st = newStatementProvider("unknown_dialect", nilVersion)
assert.False(t, st.Next())
}