github.com/kunnos/engine@v1.13.1/cli/compose/convert/compose_test.go (about) 1 package convert 2 3 import ( 4 "testing" 5 6 "github.com/docker/docker/api/types" 7 "github.com/docker/docker/api/types/network" 8 composetypes "github.com/docker/docker/cli/compose/types" 9 "github.com/docker/docker/pkg/testutil/assert" 10 "github.com/docker/docker/pkg/testutil/tempfile" 11 ) 12 13 func TestNamespaceScope(t *testing.T) { 14 scoped := Namespace{name: "foo"}.Scope("bar") 15 assert.Equal(t, scoped, "foo_bar") 16 } 17 18 func TestAddStackLabel(t *testing.T) { 19 labels := map[string]string{ 20 "something": "labeled", 21 } 22 actual := AddStackLabel(Namespace{name: "foo"}, labels) 23 expected := map[string]string{ 24 "something": "labeled", 25 LabelNamespace: "foo", 26 } 27 assert.DeepEqual(t, actual, expected) 28 } 29 30 func TestNetworks(t *testing.T) { 31 namespace := Namespace{name: "foo"} 32 source := networkMap{ 33 "normal": composetypes.NetworkConfig{ 34 Driver: "overlay", 35 DriverOpts: map[string]string{ 36 "opt": "value", 37 }, 38 Ipam: composetypes.IPAMConfig{ 39 Driver: "driver", 40 Config: []*composetypes.IPAMPool{ 41 { 42 Subnet: "10.0.0.0", 43 }, 44 }, 45 }, 46 Labels: map[string]string{ 47 "something": "labeled", 48 }, 49 }, 50 "outside": composetypes.NetworkConfig{ 51 External: composetypes.External{ 52 External: true, 53 Name: "special", 54 }, 55 }, 56 } 57 expected := map[string]types.NetworkCreate{ 58 "default": { 59 Labels: map[string]string{ 60 LabelNamespace: "foo", 61 }, 62 }, 63 "normal": { 64 Driver: "overlay", 65 IPAM: &network.IPAM{ 66 Driver: "driver", 67 Config: []network.IPAMConfig{ 68 { 69 Subnet: "10.0.0.0", 70 }, 71 }, 72 }, 73 Options: map[string]string{ 74 "opt": "value", 75 }, 76 Labels: map[string]string{ 77 LabelNamespace: "foo", 78 "something": "labeled", 79 }, 80 }, 81 } 82 83 serviceNetworks := map[string]struct{}{ 84 "default": {}, 85 "normal": {}, 86 "outside": {}, 87 } 88 networks, externals := Networks(namespace, source, serviceNetworks) 89 assert.DeepEqual(t, networks, expected) 90 assert.DeepEqual(t, externals, []string{"special"}) 91 } 92 93 func TestSecrets(t *testing.T) { 94 namespace := Namespace{name: "foo"} 95 96 secretText := "this is the first secret" 97 secretFile := tempfile.NewTempFile(t, "convert-secrets", secretText) 98 defer secretFile.Remove() 99 100 source := map[string]composetypes.SecretConfig{ 101 "one": { 102 File: secretFile.Name(), 103 Labels: map[string]string{"monster": "mash"}, 104 }, 105 "ext": { 106 External: composetypes.External{ 107 External: true, 108 }, 109 }, 110 } 111 112 specs, err := Secrets(namespace, source) 113 assert.NilError(t, err) 114 assert.Equal(t, len(specs), 1) 115 secret := specs[0] 116 assert.Equal(t, secret.Name, "foo_one") 117 assert.DeepEqual(t, secret.Labels, map[string]string{ 118 "monster": "mash", 119 LabelNamespace: "foo", 120 }) 121 assert.DeepEqual(t, secret.Data, []byte(secretText)) 122 }