97 lines
2.5 KiB
Go
97 lines
2.5 KiB
Go
package terraform
|
|
|
|
import "testing"
|
|
|
|
func TestRefreshGraphBuilder_configOrphans(t *testing.T) {
|
|
|
|
m := testModule(t, "refresh-config-orphan")
|
|
|
|
state := &State{
|
|
Modules: []*ModuleState{
|
|
&ModuleState{
|
|
Path: rootModulePath,
|
|
Resources: map[string]*ResourceState{
|
|
"aws_instance.foo.0": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "foo",
|
|
},
|
|
},
|
|
},
|
|
"aws_instance.foo.1": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "bar",
|
|
},
|
|
},
|
|
},
|
|
"aws_instance.foo.2": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "baz",
|
|
},
|
|
},
|
|
},
|
|
"data.aws_instance.foo.0": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "foo",
|
|
},
|
|
},
|
|
},
|
|
"data.aws_instance.foo.1": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "bar",
|
|
},
|
|
},
|
|
},
|
|
"data.aws_instance.foo.2": &ResourceState{
|
|
Type: "aws_instance",
|
|
Deposed: []*InstanceState{
|
|
&InstanceState{
|
|
ID: "baz",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
b := &RefreshGraphBuilder{
|
|
Module: m,
|
|
State: state,
|
|
Providers: []string{"aws"},
|
|
}
|
|
g, err := b.Build(rootModulePath)
|
|
if err != nil {
|
|
t.Fatalf("Error building graph: %s", err)
|
|
}
|
|
|
|
actual := g.StringWithNodeTypes()
|
|
expected := `aws_instance.foo - *terraform.NodeRefreshableManagedResource
|
|
provider.aws - *terraform.NodeApplyableProvider
|
|
data.aws_instance.foo[0] - *terraform.NodeRefreshableManagedResourceInstance
|
|
provider.aws - *terraform.NodeApplyableProvider
|
|
data.aws_instance.foo[1] - *terraform.NodeRefreshableManagedResourceInstance
|
|
provider.aws - *terraform.NodeApplyableProvider
|
|
data.aws_instance.foo[2] - *terraform.NodeRefreshableManagedResourceInstance
|
|
provider.aws - *terraform.NodeApplyableProvider
|
|
provider.aws - *terraform.NodeApplyableProvider
|
|
provider.aws (close) - *terraform.graphNodeCloseProvider
|
|
aws_instance.foo - *terraform.NodeRefreshableManagedResource
|
|
data.aws_instance.foo[0] - *terraform.NodeRefreshableManagedResourceInstance
|
|
data.aws_instance.foo[1] - *terraform.NodeRefreshableManagedResourceInstance
|
|
data.aws_instance.foo[2] - *terraform.NodeRefreshableManagedResourceInstance
|
|
`
|
|
if expected != actual {
|
|
t.Fatalf("Expected:\n%s\nGot:\n%s", expected, actual)
|
|
}
|
|
}
|