@@ -17,13 +17,16 @@ import (
1717func TestAccAWSRDSCluster_basic (t * testing.T ) {
1818 var v rds.DBCluster
1919
20+ ri := rand .New (rand .NewSource (time .Now ().UnixNano ())).Int ()
21+ config := fmt .Sprintf (testAccAWSClusterConfig , ri )
22+
2023 resource .Test (t , resource.TestCase {
2124 PreCheck : func () { testAccPreCheck (t ) },
2225 Providers : testAccProviders ,
2326 CheckDestroy : testAccCheckAWSClusterDestroy ,
2427 Steps : []resource.TestStep {
2528 resource.TestStep {
26- Config : testAccAWSClusterConfig ,
29+ Config : config ,
2730 Check : resource .ComposeTestCheckFunc (
2831 testAccCheckAWSClusterExists ("aws_rds_cluster.default" , & v ),
2932 resource .TestCheckResourceAttr (
@@ -38,6 +41,47 @@ func TestAccAWSRDSCluster_basic(t *testing.T) {
3841 })
3942}
4043
44+ func TestAccAWSRDSCluster_update (t * testing.T ) {
45+ var v rds.DBCluster
46+
47+ ri := rand .New (rand .NewSource (time .Now ().UnixNano ())).Int ()
48+ preConfig := fmt .Sprintf (testAccAWSClusterConfig , ri )
49+ postConfig := fmt .Sprintf (testAccAWSClusterConfig_update , ri )
50+
51+ resource .Test (t , resource.TestCase {
52+ PreCheck : func () { testAccPreCheck (t ) },
53+ Providers : testAccProviders ,
54+ CheckDestroy : testAccCheckAWSClusterDestroy ,
55+ Steps : []resource.TestStep {
56+ resource.TestStep {
57+ Config : preConfig ,
58+ Check : resource .ComposeTestCheckFunc (
59+ testAccCheckAWSClusterExists ("aws_rds_cluster.default" , & v ),
60+ resource .TestCheckResourceAttr (
61+ "aws_rds_cluster.default" , "preferred_backup_window" , "07:00-09:00" ),
62+ resource .TestCheckResourceAttr (
63+ "aws_rds_cluster.default" , "backup_retention_period" , "5" ),
64+ resource .TestCheckResourceAttr (
65+ "aws_rds_cluster.default" , "preferred_maintenance_window" , "tue:04:00-tue:04:30" ),
66+ ),
67+ },
68+
69+ resource.TestStep {
70+ Config : postConfig ,
71+ Check : resource .ComposeTestCheckFunc (
72+ testAccCheckAWSClusterExists ("aws_rds_cluster.default" , & v ),
73+ resource .TestCheckResourceAttr (
74+ "aws_rds_cluster.default" , "preferred_backup_window" , "03:00-09:00" ),
75+ resource .TestCheckResourceAttr (
76+ "aws_rds_cluster.default" , "backup_retention_period" , "10" ),
77+ resource .TestCheckResourceAttr (
78+ "aws_rds_cluster.default" , "preferred_maintenance_window" , "wed:01:00-wed:01:30" ),
79+ ),
80+ },
81+ },
82+ })
83+ }
84+
4185func testAccCheckAWSClusterDestroy (s * terraform.State ) error {
4286 for _ , rs := range s .RootModule ().Resources {
4387 if rs .Type != "aws_rds_cluster" {
@@ -104,7 +148,7 @@ func testAccCheckAWSClusterExists(n string, v *rds.DBCluster) resource.TestCheck
104148}
105149
106150// Add some random to the name, to avoid collision
107- var testAccAWSClusterConfig = fmt . Sprintf ( `
151+ var testAccAWSClusterConfig = `
108152resource "aws_rds_cluster" "default" {
109153 cluster_identifier = "tf-aurora-cluster-%d"
110154 availability_zones = ["us-west-2a","us-west-2b","us-west-2c"]
@@ -114,4 +158,18 @@ resource "aws_rds_cluster" "default" {
114158 backup_retention_period = 5
115159 preferred_backup_window = "07:00-09:00"
116160 preferred_maintenance_window = "tue:04:00-tue:04:30"
117- }` , rand .New (rand .NewSource (time .Now ().UnixNano ())).Int ())
161+ }`
162+
163+ // Add some random to the name, to avoid collision
164+ var testAccAWSClusterConfig_update = `
165+ resource "aws_rds_cluster" "default" {
166+ cluster_identifier = "tf-aurora-cluster-%d"
167+ availability_zones = ["us-west-2a","us-west-2b","us-west-2c"]
168+ database_name = "mydb"
169+ master_username = "foo"
170+ master_password = "mustbeeightcharaters"
171+ backup_retention_period = 10
172+ preferred_backup_window = "03:00-09:00"
173+ preferred_maintenance_window = "wed:01:00-wed:01:30"
174+ apply_immediately = true
175+ }`
0 commit comments