databricks-cli/bundle/deploy/terraform/util_test.go

94 lines
1.4 KiB
Go
Raw Normal View History

package terraform
import (
"fmt"
"io"
"testing"
"testing/iotest"
"github.com/stretchr/testify/assert"
)
type mockedReader struct {
content string
}
func (r *mockedReader) Read(p []byte) (n int, err error) {
content := []byte(r.content)
n = copy(p, content)
return n, io.EOF
}
func TestLocalStateIsNewer(t *testing.T) {
local := &mockedReader{content: `
{
"serial": 5
}
`}
remote := &mockedReader{content: `
{
"serial": 4
}
`}
stale := IsLocalStateStale(local, remote)
assert.False(t, stale)
}
func TestLocalStateIsOlder(t *testing.T) {
local := &mockedReader{content: `
{
"serial": 5
}
`}
remote := &mockedReader{content: `
{
"serial": 6
}
`}
stale := IsLocalStateStale(local, remote)
assert.True(t, stale)
}
func TestLocalStateIsTheSame(t *testing.T) {
local := &mockedReader{content: `
{
"serial": 5
}
`}
remote := &mockedReader{content: `
{
"serial": 5
}
`}
stale := IsLocalStateStale(local, remote)
assert.False(t, stale)
}
func TestLocalStateMarkStaleWhenFailsToLoad(t *testing.T) {
local := iotest.ErrReader(fmt.Errorf("Random error"))
remote := &mockedReader{content: `
{
"serial": 5
}
`}
stale := IsLocalStateStale(local, remote)
assert.True(t, stale)
}
func TestLocalStateMarkNonStaleWhenRemoteFailsToLoad(t *testing.T) {
local := &mockedReader{content: `
{
"serial": 5
}
`}
remote := iotest.ErrReader(fmt.Errorf("Random error"))
stale := IsLocalStateStale(local, remote)
assert.False(t, stale)
}