github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/aws/resource_aws_security_group_rule_migrate_test.go (about) 1 package aws 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/terraform/terraform" 7 ) 8 9 func TestAWSSecurityGroupRuleMigrateState(t *testing.T) { 10 cases := map[string]struct { 11 StateVersion int 12 ID string 13 Attributes map[string]string 14 Expected string 15 Meta interface{} 16 }{ 17 "v0_1": { 18 StateVersion: 0, 19 ID: "sg-4235098228", 20 Attributes: map[string]string{ 21 "self": "false", 22 "to_port": "0", 23 "security_group_id": "sg-13877277", 24 "cidr_blocks.#": "0", 25 "type": "ingress", 26 "protocol": "-1", 27 "from_port": "0", 28 "source_security_group_id": "sg-11877275", 29 }, 30 Expected: "sgrule-2889201120", 31 }, 32 "v0_2": { 33 StateVersion: 0, 34 ID: "sg-1021609891", 35 Attributes: map[string]string{ 36 "security_group_id": "sg-0981746d", 37 "from_port": "0", 38 "to_port": "0", 39 "type": "ingress", 40 "self": "false", 41 "protocol": "-1", 42 "cidr_blocks.0": "172.16.1.0/24", 43 "cidr_blocks.1": "172.16.2.0/24", 44 "cidr_blocks.2": "172.16.3.0/24", 45 "cidr_blocks.3": "172.16.4.0/24", 46 "cidr_blocks.#": "4"}, 47 Expected: "sgrule-1826358977", 48 }, 49 } 50 51 for tn, tc := range cases { 52 is := &terraform.InstanceState{ 53 ID: tc.ID, 54 Attributes: tc.Attributes, 55 } 56 is, err := resourceAwsSecurityGroupRuleMigrateState( 57 tc.StateVersion, is, tc.Meta) 58 59 if err != nil { 60 t.Fatalf("bad: %s, err: %#v", tn, err) 61 } 62 63 if is.ID != tc.Expected { 64 t.Fatalf("bad sg rule id: %s\n\n expected: %s", is.ID, tc.Expected) 65 } 66 } 67 }