github.com/DominikUrban/viper@v0.0.0-20220730150717-aaf74638bd32/internal/encoding/yaml/yaml2_test.go (about)

     1  //go:build viper_yaml2
     2  // +build viper_yaml2
     3  
     4  package yaml
     5  
     6  // original form of the data
     7  const original = `# key-value pair
     8  key: value
     9  list:
    10  - item1
    11  - item2
    12  - item3
    13  map:
    14    key: value
    15  
    16  # nested
    17  # map
    18  nested_map:
    19    map:
    20      key: value
    21      list:
    22      - item1
    23      - item2
    24      - item3
    25  `
    26  
    27  // encoded form of the data
    28  const encoded = `key: value
    29  list:
    30  - item1
    31  - item2
    32  - item3
    33  map:
    34    key: value
    35  nested_map:
    36    map:
    37      key: value
    38      list:
    39      - item1
    40      - item2
    41      - item3
    42  `
    43  
    44  // decoded form of the data
    45  //
    46  // in case of YAML it's slightly different from Viper's internal representation
    47  // (eg. map is decoded into a map with interface key)
    48  var decoded = map[string]interface{}{
    49  	"key": "value",
    50  	"list": []interface{}{
    51  		"item1",
    52  		"item2",
    53  		"item3",
    54  	},
    55  	"map": map[interface{}]interface{}{
    56  		"key": "value",
    57  	},
    58  	"nested_map": map[interface{}]interface{}{
    59  		"map": map[interface{}]interface{}{
    60  			"key": "value",
    61  			"list": []interface{}{
    62  				"item1",
    63  				"item2",
    64  				"item3",
    65  			},
    66  		},
    67  	},
    68  }
    69  
    70  // Viper's internal representation
    71  var data = map[string]interface{}{
    72  	"key": "value",
    73  	"list": []interface{}{
    74  		"item1",
    75  		"item2",
    76  		"item3",
    77  	},
    78  	"map": map[string]interface{}{
    79  		"key": "value",
    80  	},
    81  	"nested_map": map[string]interface{}{
    82  		"map": map[string]interface{}{
    83  			"key": "value",
    84  			"list": []interface{}{
    85  				"item1",
    86  				"item2",
    87  				"item3",
    88  			},
    89  		},
    90  	},
    91  }