jx/internal/resource/file_test.go
2024-03-20 09:15:27 -07:00

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