github.com/bdwilliams/libcompose@v0.3.1-0.20160826154243-d81a9bdacff0/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  }