github.com/mohanarpit/terraform@v0.6.16-0.20160909104007-291f29853544/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  }