github.com/connyay/libcompose@v0.4.0/yaml/external_test.go (about) 1 package yaml 2 3 import ( 4 "testing" 5 6 "gopkg.in/yaml.v2" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestMarshalExternal(t *testing.T) { 12 externals := []struct { 13 external External 14 expected string 15 }{ 16 { 17 external: External{}, 18 expected: `false 19 `, 20 }, 21 { 22 external: External{ 23 External: false, 24 }, 25 expected: `false 26 `, 27 }, 28 { 29 external: External{ 30 External: true, 31 }, 32 expected: `true 33 `, 34 }, 35 { 36 external: External{ 37 External: true, 38 Name: "network-name", 39 }, 40 expected: `name: network-name 41 `, 42 }, 43 } 44 for _, e := range externals { 45 bytes, err := yaml.Marshal(e.external) 46 assert.Nil(t, err) 47 assert.Equal(t, e.expected, string(bytes), "should be equal") 48 } 49 } 50 51 func TestUnmarshalExternal(t *testing.T) { 52 externals := []struct { 53 yaml string 54 expected *External 55 }{ 56 { 57 yaml: `true`, 58 expected: &External{ 59 External: true, 60 }, 61 }, 62 { 63 yaml: `false`, 64 expected: &External{ 65 External: false, 66 }, 67 }, 68 { 69 yaml: ` 70 name: name-of-network`, 71 expected: &External{ 72 External: true, 73 Name: "name-of-network", 74 }, 75 }, 76 } 77 for _, e := range externals { 78 actual := &External{} 79 err := yaml.Unmarshal([]byte(e.yaml), actual) 80 assert.Nil(t, err) 81 assert.Equal(t, e.expected, actual, "should be equal") 82 } 83 }