github.com/beanworks/dcm@v0.0.0-20230726194615-49d2d0417e04/src/util_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestGetMapVal(t *testing.T) {
    10  	fixture := yamlConfig{
    11  		"foo": "bar",
    12  		"aaa": yamlConfig{
    13  			"bbb": "ccc",
    14  		},
    15  	}
    16  
    17  	assert.Equal(t, fixture, getMapVal(fixture))
    18  	assert.Equal(t, "bar", getMapVal(fixture, "foo"))
    19  	assert.Equal(t, yamlConfig{"bbb": "ccc"}, getMapVal(fixture, "aaa"))
    20  	assert.Equal(t, "ccc", getMapVal(fixture, "aaa", "bbb"))
    21  
    22  	assert.Equal(t, nil, getMapVal(fixture, "foo", "bar"))
    23  	assert.Equal(t, nil, getMapVal(fixture, "foo", "bar", "baz"))
    24  	assert.Equal(t, nil, getMapVal(fixture, "foo", "bar", "baz", "qux"))
    25  	assert.Equal(t, nil, getMapVal(fixture, "aaa", "bbb", "ccc"))
    26  	assert.Equal(t, nil, getMapVal(fixture, "aaa", "bbb", "ccc", "ddd"))
    27  	assert.Equal(t, nil, getMapVal(fixture, "aaa", "bbb", "ccc", "ddd", "eee"))
    28  	assert.Equal(t, nil, getMapVal(fixture, "invalid", "key"))
    29  }