diff --git a/altsrc/map_input_source.go b/altsrc/map_input_source.go index 661b7856d4..117461f5a0 100644 --- a/altsrc/map_input_source.go +++ b/altsrc/map_input_source.go @@ -16,6 +16,11 @@ type MapInputSource struct { valueMap map[interface{}]interface{} } +// NewMapInputSource creates a new MapInputSource for implementing custom input sources. +func NewMapInputSource(file string, valueMap map[interface{}]interface{}) *MapInputSource { + return &MapInputSource{file: file, valueMap: valueMap} +} + // nestedVal checks if the name has '.' delimiters. // If so, it tries to traverse the tree by the '.' delimited sections to find // a nested value for the key. diff --git a/altsrc/map_input_source_test.go b/altsrc/map_input_source_test.go index 5046d1485d..b90f796b30 100644 --- a/altsrc/map_input_source_test.go +++ b/altsrc/map_input_source_test.go @@ -6,14 +6,13 @@ import ( ) func TestMapDuration(t *testing.T) { - inputSource := &MapInputSource{ - file: "test", - valueMap: map[interface{}]interface{}{ + inputSource := NewMapInputSource( + "test", + map[interface{}]interface{}{ "duration_of_duration_type": time.Minute, "duration_of_string_type": "1m", "duration_of_int_type": 1000, - }, - } + }) d, err := inputSource.Duration("duration_of_duration_type") expect(t, time.Minute, d) expect(t, nil, err)