43 lines
965 B
Go
43 lines
965 B
Go
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())
|
|
}
|