92 lines
1.6 KiB
Go
92 lines
1.6 KiB
Go
package resource
|
|
|
|
import (
|
|
"fmt"
|
|
_ "context"
|
|
"testing"
|
|
_ "net/http"
|
|
_ "net/http/httptest"
|
|
_ "net/url"
|
|
_ "io"
|
|
"os"
|
|
_ "log"
|
|
"path/filepath"
|
|
"github.com/stretchr/testify/assert"
|
|
_ "encoding/json"
|
|
_ "strings"
|
|
)
|
|
|
|
func TestNewFileResource(t *testing.T) {
|
|
f := NewFile()
|
|
assert.NotEqual(t, nil, f)
|
|
}
|
|
|
|
func TestApplyResourceTransformation(t *testing.T) {
|
|
f := NewFile()
|
|
assert.NotEqual(t, nil, f)
|
|
|
|
//e := f.Apply()
|
|
//assert.Equal(t, nil, e)
|
|
}
|
|
|
|
func TestReadFile(t *testing.T) {
|
|
file := filepath.Join(TempDir, "fooread.txt")
|
|
|
|
decl := fmt.Sprintf(`
|
|
path: "%s"
|
|
owner: "nobody"
|
|
group: "nobody"
|
|
mode: "0600"
|
|
content: |-
|
|
test line 1
|
|
test line 2
|
|
state: present
|
|
`, file)
|
|
|
|
testFile := NewFile()
|
|
e := testFile.LoadDecl(decl)
|
|
assert.Equal(t, nil, e)
|
|
testFile.Apply()
|
|
|
|
f := NewFile()
|
|
assert.NotEqual(t, nil, f)
|
|
|
|
f.Path = file
|
|
r,e := f.Read()
|
|
assert.Equal(t, nil, e)
|
|
assert.Equal(t, "nobody", f.Owner)
|
|
assert.YAMLEq(t, decl, string(r))
|
|
}
|
|
|
|
func TestCreateFile(t *testing.T) {
|
|
file := filepath.Join(TempDir, "foo.txt")
|
|
|
|
decl := fmt.Sprintf(`
|
|
path: "%s"
|
|
owner: "nobody"
|
|
group: "nobody"
|
|
mode: "0600"
|
|
content: |-
|
|
test line 1
|
|
test line 2
|
|
state: present
|
|
`, file)
|
|
|
|
f := NewFile()
|
|
e := f.LoadDecl(decl)
|
|
assert.Equal(t, nil, e)
|
|
assert.Equal(t, "nobody", f.Owner)
|
|
|
|
applyErr := f.Apply()
|
|
assert.Equal(t, nil, applyErr)
|
|
assert.FileExists(t, file, nil)
|
|
s,e := os.Stat(file)
|
|
assert.Equal(t, nil, e)
|
|
|
|
assert.Greater(t, s.Size(), int64(0))
|
|
|
|
f.State = "absent"
|
|
assert.Equal(t, nil, f.Apply())
|
|
assert.NoFileExists(t, file, nil)
|
|
}
|