diff --git a/helper/schema/schema_test.go b/helper/schema/schema_test.go index f918e19377..91a7d4d4ba 100644 --- a/helper/schema/schema_test.go +++ b/helper/schema/schema_test.go @@ -1944,7 +1944,7 @@ func TestSchemaMap_Diff(t *testing.T) { Err: false, }, - // #48 + // #48 - Zero value in state shouldn't result in diff { Schema: map[string]*Schema{ "port": &Schema{ @@ -1966,6 +1966,49 @@ func TestSchemaMap_Diff(t *testing.T) { Err: false, }, + + // #42 Set - Same as #47 but for sets + { + Schema: map[string]*Schema{ + "route": &Schema{ + Type: TypeSet, + Optional: true, + Elem: &Resource{ + Schema: map[string]*Schema{ + "index": &Schema{ + Type: TypeInt, + Required: true, + }, + + "gateway": &Schema{ + Type: TypeSet, + Optional: true, + Elem: &Schema{Type: TypeInt}, + Set: func(a interface{}) int { + return a.(int) + }, + }, + }, + }, + Set: func(v interface{}) int { + m := v.(map[string]interface{}) + return m["index"].(int) + }, + }, + }, + + State: &terraform.InstanceState{ + Attributes: map[string]string{ + "route.#": "0", + }, + }, + + Config: map[string]interface{}{}, + + Diff: nil, + + Err: false, + }, } for i, tc := range cases {