123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright © 2016 Steve Francia <spf@spf13.com>.
- //
- // Use of this source code is governed by an MIT-style
- // license that can be found in the LICENSE file.
- // Viper is a application configuration system.
- // It believes that applications can be configured a variety of ways
- // via flags, ENVIRONMENT variables, configuration files retrieved
- // from the file system, or a remote key/value store.
- package viper
- import (
- "reflect"
- "testing"
- )
- func TestCopyAndInsensitiviseMap(t *testing.T) {
- var (
- given = map[string]interface{}{
- "Foo": 32,
- "Bar": map[interface{}]interface {
- }{
- "ABc": "A",
- "cDE": "B"},
- }
- expected = map[string]interface{}{
- "foo": 32,
- "bar": map[string]interface {
- }{
- "abc": "A",
- "cde": "B"},
- }
- )
- got := copyAndInsensitiviseMap(given)
- if !reflect.DeepEqual(got, expected) {
- t.Fatalf("Got %q\nexpected\n%q", got, expected)
- }
- if _, ok := given["foo"]; ok {
- t.Fatal("Input map changed")
- }
- if _, ok := given["bar"]; ok {
- t.Fatal("Input map changed")
- }
- m := given["Bar"].(map[interface{}]interface{})
- if _, ok := m["ABc"]; !ok {
- t.Fatal("Input map changed")
- }
- }
|