github.com/gabrielperezs/terraform@v0.7.0-rc2.0.20160715084931-f7da2612946f/builtin/providers/aws/resource_aws_kinesis_firehose_delivery_stream_migrate_test.go (about) 1 package aws 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/terraform/terraform" 7 ) 8 9 func TestAWSKinesisFirehoseMigrateState(t *testing.T) { 10 cases := map[string]struct { 11 StateVersion int 12 Attributes map[string]string 13 Expected map[string]string 14 Meta interface{} 15 }{ 16 "v0.6.16 and earlier": { 17 StateVersion: 0, 18 Attributes: map[string]string{ 19 // EBS 20 "role_arn": "arn:aws:iam::somenumber:role/tf_acctest_4271506651559170635", 21 "s3_bucket_arn": "arn:aws:s3:::tf-test-bucket", 22 "s3_buffer_interval": "400", 23 "s3_buffer_size": "10", 24 "s3_data_compression": "GZIP", 25 }, 26 Expected: map[string]string{ 27 "s3_configuration.#": "1", 28 "s3_configuration.0.bucket_arn": "arn:aws:s3:::tf-test-bucket", 29 "s3_configuration.0.buffer_interval": "400", 30 "s3_configuration.0.buffer_size": "10", 31 "s3_configuration.0.compression_format": "GZIP", 32 "s3_configuration.0.role_arn": "arn:aws:iam::somenumber:role/tf_acctest_4271506651559170635", 33 }, 34 }, 35 "v0.6.16 and earlier, sparse": { 36 StateVersion: 0, 37 Attributes: map[string]string{ 38 // EBS 39 "role_arn": "arn:aws:iam::somenumber:role/tf_acctest_4271506651559170635", 40 "s3_bucket_arn": "arn:aws:s3:::tf-test-bucket", 41 }, 42 Expected: map[string]string{ 43 "s3_configuration.#": "1", 44 "s3_configuration.0.bucket_arn": "arn:aws:s3:::tf-test-bucket", 45 "s3_configuration.0.role_arn": "arn:aws:iam::somenumber:role/tf_acctest_4271506651559170635", 46 }, 47 }, 48 } 49 50 for tn, tc := range cases { 51 is := &terraform.InstanceState{ 52 ID: "i-abc123", 53 Attributes: tc.Attributes, 54 } 55 is, err := resourceAwsKinesisFirehoseMigrateState( 56 tc.StateVersion, is, tc.Meta) 57 58 if err != nil { 59 t.Fatalf("bad: %s, err: %#v", tn, err) 60 } 61 62 for k, v := range tc.Expected { 63 if is.Attributes[k] != v { 64 t.Fatalf( 65 "bad: %s\n\n expected: %#v -> %#v\n got: %#v -> %#v\n in: %#v", 66 tn, k, v, k, is.Attributes[k], is.Attributes) 67 } 68 } 69 } 70 } 71 72 func TestAWSKinesisFirehoseMigrateState_empty(t *testing.T) { 73 var is *terraform.InstanceState 74 var meta interface{} 75 76 // should handle nil 77 is, err := resourceAwsKinesisFirehoseMigrateState(0, is, meta) 78 79 if err != nil { 80 t.Fatalf("err: %#v", err) 81 } 82 if is != nil { 83 t.Fatalf("expected nil instancestate, got: %#v", is) 84 } 85 86 // should handle non-nil but empty 87 is = &terraform.InstanceState{} 88 is, err = resourceAwsInstanceMigrateState(0, is, meta) 89 90 if err != nil { 91 t.Fatalf("err: %#v", err) 92 } 93 }