mirror of https://github.com/databricks/cli.git
94 lines
1.4 KiB
Go
94 lines
1.4 KiB
Go
|
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)
|
||
|
}
|