github.com/docker/app@v0.9.1-beta3.0.20210611140623-a48f773ab002/internal/packager/custom_test.go (about) 1 package packager 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/deislabs/cnab-go/bundle" 8 "github.com/docker/app/internal" 9 "gotest.tools/assert" 10 ) 11 12 func TestNewCustomPayload(t *testing.T) { 13 payloadJSON, err := newCustomPayload() 14 assert.NilError(t, err) 15 16 var payload payloadV1_0 17 err = json.Unmarshal(payloadJSON, &payload) 18 assert.NilError(t, err) 19 20 assert.Equal(t, internal.Version, payload.AppVersion()) 21 } 22 23 func TestCustomPayloadNil(t *testing.T) { 24 testCases := []struct { 25 testName string 26 version string 27 payload interface{} 28 }{ 29 { 30 testName: "NoVersion", 31 version: "", 32 payload: payloadV1_0{}, 33 }, 34 { 35 testName: "UnknownVersion", 36 version: "unknown-version", 37 payload: payloadV1_0{}, 38 }, 39 { 40 testName: "NoPayload", 41 version: DockerAppPayloadVersionCurrent, 42 payload: nil, 43 }, 44 } 45 for _, tc := range testCases { 46 t.Run(tc.testName, func(t *testing.T) { 47 b := createBundle(t, "", payloadV1_0{}) 48 payload, err := CustomPayload(&b) 49 assert.NilError(t, err) 50 assert.Assert(t, payload == nil) 51 }) 52 } 53 } 54 55 func TestCustomPayloadV1_0_0(t *testing.T) { 56 b := createBundle(t, DockerAppPayloadVersion1_0_0, payloadV1_0{"version"}) 57 payload, err := CustomPayload(&b) 58 assert.NilError(t, err) 59 v1, ok := payload.(payloadV1_0) 60 assert.Assert(t, ok) 61 assert.Equal(t, "version", v1.AppVersion()) 62 } 63 64 func createBundle(t *testing.T, version string, payload interface{}) bundle.Bundle { 65 j, err := json.Marshal(payload) 66 assert.NilError(t, err) 67 return bundle.Bundle{ 68 Custom: map[string]interface{}{ 69 internal.CustomDockerAppName: DockerAppCustom{ 70 Version: version, 71 Payload: j, 72 }, 73 }, 74 } 75 }