From 6b42d3d9a572d8b1e97e8db130e2c413eb3aff6a Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 2 Jul 2014 17:36:07 -0700 Subject: [PATCH] helper/resource: basic tests --- helper/resource/map.go | 9 ++++++++- helper/resource/map_test.go | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/helper/resource/map.go b/helper/resource/map.go index 523c24b8e4..61f0b78a33 100644 --- a/helper/resource/map.go +++ b/helper/resource/map.go @@ -2,6 +2,7 @@ package resource import ( "fmt" + "sort" "github.com/hashicorp/terraform/terraform" ) @@ -87,8 +88,14 @@ func (m *Map) Refresh( // resource map and can be used to satisfy the Resources method of // a ResourceProvider. func (m *Map) Resources() []terraform.ResourceType { - rs := make([]terraform.ResourceType, 0, len(m.Mapping)) + ks := make([]string, 0, len(m.Mapping)) for k, _ := range m.Mapping { + ks = append(ks, k) + } + sort.Strings(ks) + + rs := make([]terraform.ResourceType, 0, len(m.Mapping)) + for _, k := range ks { rs = append(rs, terraform.ResourceType{ Name: k, }) diff --git a/helper/resource/map_test.go b/helper/resource/map_test.go index 958e3540f7..f188f54e40 100644 --- a/helper/resource/map_test.go +++ b/helper/resource/map_test.go @@ -1 +1,32 @@ package resource + +import ( + "reflect" + "testing" + + "github.com/hashicorp/terraform/terraform" +) + +func TestMapResources(t *testing.T) { + m := &Map{ + Mapping: map[string]Resource{ + "aws_elb": Resource{}, + "aws_instance": Resource{}, + }, + } + + rts := m.Resources() + + expected := []terraform.ResourceType{ + terraform.ResourceType{ + Name: "aws_elb", + }, + terraform.ResourceType{ + Name: "aws_instance", + }, + } + + if !reflect.DeepEqual(rts, expected) { + t.Fatalf("bad: %#v", rts) + } +}