2015-10-16 20:22:28 +00:00
|
|
|
package printer
|
2015-10-03 00:30:57 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/hashicorp/hcl/hcl"
|
|
|
|
)
|
|
|
|
|
|
|
|
var complexHcl = `// This comes from Terraform, as a test
|
|
|
|
variable "foo" {
|
|
|
|
default = "bar"
|
|
|
|
description = "bar"
|
|
|
|
}
|
|
|
|
|
|
|
|
provider "aws" {
|
|
|
|
access_key = "foo"
|
|
|
|
secret_key = "bar"
|
|
|
|
}
|
|
|
|
|
|
|
|
provider "do" {
|
|
|
|
api_key = "${var.foo}"
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "aws_security_group" "firewall" {
|
|
|
|
count = 5
|
|
|
|
}
|
|
|
|
|
|
|
|
resource aws_instance "web" {
|
|
|
|
ami = "${var.foo}"
|
|
|
|
security_groups = [
|
|
|
|
"foo",
|
|
|
|
"${aws_security_group.firewall.foo}"
|
|
|
|
]
|
|
|
|
|
|
|
|
network_interface {
|
|
|
|
device_index = 0
|
|
|
|
description = "Main network interface"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "aws_instance" "db" {
|
|
|
|
security_groups = "${aws_security_group.firewall.*.id}"
|
|
|
|
VPC = "foo"
|
|
|
|
|
|
|
|
depends_on = ["aws_instance.web"]
|
|
|
|
}
|
|
|
|
|
|
|
|
output "web_ip" {
|
|
|
|
value = "${aws_instance.web.private_ip}"
|
|
|
|
}
|
|
|
|
`
|
|
|
|
|
|
|
|
func TestPrint(t *testing.T) {
|
|
|
|
obj, err := hcl.Parse(complexHcl)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if err := Fprint(os.Stdout, obj); err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|