github.com/paybyphone/terraform@v0.9.5-0.20170613192930-9706042ddd51/terraform/node_resource_destroy_test.go (about) 1 package terraform 2 3 import ( 4 "strings" 5 "sync" 6 "testing" 7 ) 8 9 func TestNodeDestroyResourceDynamicExpand_deposedCount(t *testing.T) { 10 var stateLock sync.RWMutex 11 state := &State{ 12 Modules: []*ModuleState{ 13 &ModuleState{ 14 Path: rootModulePath, 15 Resources: map[string]*ResourceState{ 16 "aws_instance.bar.0": &ResourceState{ 17 Type: "aws_instance", 18 Deposed: []*InstanceState{ 19 &InstanceState{ 20 ID: "foo", 21 }, 22 }, 23 }, 24 "aws_instance.bar.1": &ResourceState{ 25 Type: "aws_instance", 26 Deposed: []*InstanceState{ 27 &InstanceState{ 28 ID: "bar", 29 }, 30 }, 31 }, 32 }, 33 }, 34 }, 35 } 36 37 addr, err := parseResourceAddressInternal("aws_instance.bar.0") 38 if err != nil { 39 t.Fatalf("err: %s", err) 40 } 41 42 m := testModule(t, "apply-cbd-count") 43 n := &NodeDestroyResource{ 44 NodeAbstractResource: &NodeAbstractResource{ 45 Addr: addr, 46 ResourceState: state.Modules[0].Resources["aws_instance.bar.0"], 47 Config: m.Config().Resources[0], 48 }, 49 } 50 51 g, err := n.DynamicExpand(&MockEvalContext{ 52 PathPath: []string{"root"}, 53 StateState: state, 54 StateLock: &stateLock, 55 }) 56 if err != nil { 57 t.Fatalf("err: %s", err) 58 } 59 60 actual := strings.TrimSpace(g.String()) 61 expected := strings.TrimSpace(` 62 aws_instance.bar.0 (deposed #0) 63 `) 64 if actual != expected { 65 t.Fatalf("bad:\n\n%s", actual) 66 } 67 }