12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // +build experimental
- package bundlefile
- import (
- "bytes"
- "strings"
- "testing"
- "github.com/docker/docker/pkg/testutil/assert"
- )
- func TestLoadFileV01Success(t *testing.T) {
- reader := strings.NewReader(`{
- "Version": "0.1",
- "Services": {
- "redis": {
- "Image": "redis@sha256:4b24131101fa0117bcaa18ac37055fffd9176aa1a240392bb8ea85e0be50f2ce",
- "Networks": ["default"]
- },
- "web": {
- "Image": "dockercloud/hello-world@sha256:fe79a2cfbd17eefc344fb8419420808df95a1e22d93b7f621a7399fd1e9dca1d",
- "Networks": ["default"],
- "User": "web"
- }
- }
- }`)
- bundle, err := LoadFile(reader)
- assert.NilError(t, err)
- assert.Equal(t, bundle.Version, "0.1")
- assert.Equal(t, len(bundle.Services), 2)
- }
- func TestLoadFileSyntaxError(t *testing.T) {
- reader := strings.NewReader(`{
- "Version": "0.1",
- "Services": unquoted string
- }`)
- _, err := LoadFile(reader)
- assert.Error(t, err, "syntax error at byte 37: invalid character 'u'")
- }
- func TestLoadFileTypeError(t *testing.T) {
- reader := strings.NewReader(`{
- "Version": "0.1",
- "Services": {
- "web": {
- "Image": "redis",
- "Networks": "none"
- }
- }
- }`)
- _, err := LoadFile(reader)
- assert.Error(t, err, "Unexpected type at byte 94. Expected []string but received string")
- }
- func TestPrint(t *testing.T) {
- var buffer bytes.Buffer
- bundle := &Bundlefile{
- Version: "0.1",
- Services: map[string]Service{
- "web": {
- Image: "image",
- Command: []string{"echo", "something"},
- },
- },
- }
- assert.NilError(t, Print(&buffer, bundle))
- output := buffer.String()
- assert.Contains(t, output, "\"Image\": \"image\"")
- assert.Contains(t, output,
- `"Command": [
- "echo",
- "something"
- ]`)
- }
|