47 lines
660 B
Go
47 lines
660 B
Go
package chef
|
|
|
|
import (
|
|
"io"
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
type TestEncoder struct {
|
|
Name string
|
|
Awesome []string
|
|
OtherStuff map[string]string
|
|
}
|
|
|
|
func TestEncoderJSONReader(t *testing.T) {
|
|
f, err := ioutil.TempFile("test/", "reader")
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
defer f.Close()
|
|
defer os.Remove(f.Name())
|
|
|
|
tr := &TestEncoder{
|
|
Name: "Test Reader",
|
|
Awesome: []string{"foo", "bar", "baz"},
|
|
OtherStuff: map[string]string{
|
|
"foo": "bar",
|
|
"baz": "banana",
|
|
},
|
|
}
|
|
|
|
// Generate body
|
|
body, err := JSONReader(tr)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
t.Log(body)
|
|
|
|
_, err = io.Copy(f, body)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|