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) }