|
|
|
|
@ -1641,8 +1641,10 @@ func TestResourceDataState(t *testing.T) {
|
|
|
|
|
State: &terraform.InstanceState{
|
|
|
|
|
Attributes: map[string]string{
|
|
|
|
|
"config_vars.#": "2",
|
|
|
|
|
"config_vars.0.#": "2",
|
|
|
|
|
"config_vars.0.foo": "bar",
|
|
|
|
|
"config_vars.0.bar": "bar",
|
|
|
|
|
"config_vars.1.#": "1",
|
|
|
|
|
"config_vars.1.bar": "baz",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
@ -1669,7 +1671,9 @@ func TestResourceDataState(t *testing.T) {
|
|
|
|
|
Result: &terraform.InstanceState{
|
|
|
|
|
Attributes: map[string]string{
|
|
|
|
|
"config_vars.#": "2",
|
|
|
|
|
"config_vars.0.#": "1",
|
|
|
|
|
"config_vars.0.foo": "bar",
|
|
|
|
|
"config_vars.1.#": "1",
|
|
|
|
|
"config_vars.1.baz": "bang",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
@ -2094,8 +2098,10 @@ func TestResourceDataState(t *testing.T) {
|
|
|
|
|
Attributes: map[string]string{
|
|
|
|
|
// TODO: broken, shouldn't bar be removed?
|
|
|
|
|
"config_vars.#": "2",
|
|
|
|
|
"config_vars.0.#": "2",
|
|
|
|
|
"config_vars.0.foo": "bar",
|
|
|
|
|
"config_vars.0.bar": "bar",
|
|
|
|
|
"config_vars.1.#": "1",
|
|
|
|
|
"config_vars.1.bar": "baz",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
@ -2199,6 +2205,7 @@ func TestResourceDataState(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
Result: &terraform.InstanceState{
|
|
|
|
|
Attributes: map[string]string{
|
|
|
|
|
"tags.#": "1",
|
|
|
|
|
"tags.Name": "foo",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
@ -2289,6 +2296,57 @@ func TestResourceDataState(t *testing.T) {
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// #23 Set of maps
|
|
|
|
|
{
|
|
|
|
|
Schema: map[string]*Schema{
|
|
|
|
|
"ports": &Schema{
|
|
|
|
|
Type: TypeSet,
|
|
|
|
|
Optional: true,
|
|
|
|
|
Computed: true,
|
|
|
|
|
Elem: &Resource{
|
|
|
|
|
Schema: map[string]*Schema{
|
|
|
|
|
"index": &Schema{Type: TypeInt},
|
|
|
|
|
"uuids": &Schema{Type: TypeMap},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
Set: func(a interface{}) int {
|
|
|
|
|
m := a.(map[string]interface{})
|
|
|
|
|
return m["index"].(int)
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
State: nil,
|
|
|
|
|
|
|
|
|
|
Diff: &terraform.InstanceDiff{
|
|
|
|
|
Attributes: map[string]*terraform.ResourceAttrDiff{
|
|
|
|
|
"ports.10.uuids.#": &terraform.ResourceAttrDiff{
|
|
|
|
|
NewComputed: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
Set: map[string]interface{}{
|
|
|
|
|
"ports": []interface{}{
|
|
|
|
|
map[string]interface{}{
|
|
|
|
|
"index": 10,
|
|
|
|
|
"uuids": map[string]interface{}{
|
|
|
|
|
"80": "value",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
Result: &terraform.InstanceState{
|
|
|
|
|
Attributes: map[string]string{
|
|
|
|
|
"ports.#": "1",
|
|
|
|
|
"ports.10.index": "10",
|
|
|
|
|
"ports.10.uuids.#": "1",
|
|
|
|
|
"ports.10.uuids.80": "value",
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i, tc := range cases {
|
|
|
|
|
|