terraform: tests for the plan graph builder

This commit is contained in:
Mitchell Hashimoto 2016-11-05 17:58:38 -07:00
parent 7557e6e70a
commit dbac0785bc
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A
2 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,52 @@
package terraform
import (
"reflect"
"strings"
"testing"
)
func TestPlanGraphBuilder_impl(t *testing.T) {
var _ GraphBuilder = new(PlanGraphBuilder)
}
func TestPlanGraphBuilder(t *testing.T) {
b := &PlanGraphBuilder{
Module: testModule(t, "graph-builder-plan-basic"),
Providers: []string{"aws", "openstack"},
DisableReduce: true,
}
g, err := b.Build(RootModulePath)
if err != nil {
t.Fatalf("err: %s", err)
}
if !reflect.DeepEqual(g.Path, RootModulePath) {
t.Fatalf("bad: %#v", g.Path)
}
actual := strings.TrimSpace(g.String())
expected := strings.TrimSpace(testPlanGraphBuilderStr)
if actual != expected {
t.Fatalf("bad: %s", actual)
}
}
const testPlanGraphBuilderStr = `
aws_instance.web
aws_security_group.firewall
provider.aws
var.foo
aws_load_balancer.weblb
aws_instance.web
provider.aws
aws_security_group.firewall
provider.aws
openstack_floating_ip.random
provider.openstack
provider.aws
openstack_floating_ip.random
provider.openstack
var.foo
`

View File

@ -0,0 +1,24 @@
variable "foo" {
default = "bar"
description = "bar"
}
provider "aws" {
foo = "${openstack_floating_ip.random.value}"
}
resource "openstack_floating_ip" "random" {}
resource "aws_security_group" "firewall" {}
resource "aws_instance" "web" {
ami = "${var.foo}"
security_groups = [
"foo",
"${aws_security_group.firewall.foo}"
]
}
resource "aws_load_balancer" "weblb" {
members = "${aws_instance.web.id_list}"
}