@@ -861,6 +861,153 @@ func TestAccRecord_OverrideTTLTrueToFalse(t *testing.T) {
861861 })
862862}
863863
864+ func TestAccRecord_OverrideAddressRecordsNilToTrue (t * testing.T ) {
865+ var record dns.Record
866+ rString := acctest .RandStringFromCharSet (15 , acctest .CharSetAlphaNum )
867+
868+ tfFileBasicAlias := testAccRecordBasicALIAS (rString )
869+ tfFileOverrideAddressRecordsAliasTrue := testAccRecordBasicALIASOverrideAddressRecords (rString , true )
870+
871+ resource .Test (t , resource.TestCase {
872+ PreCheck : func () { testAccPreCheck (t ) },
873+ Providers : testAccProviders ,
874+ CheckDestroy : testAccCheckRecordDestroy ,
875+ Steps : []resource.TestStep {
876+ // Create an ALIAS record with override_address_records not set
877+ {
878+ Config : tfFileBasicAlias ,
879+ Check : resource .ComposeTestCheckFunc (
880+ testAccCheckRecordExists ("ns1_record.it" , & record ),
881+ testAccCheckRecordOverrideAddressRecords (& record , false ),
882+ ),
883+ },
884+ // Plan again to detect "loop" conditions
885+ {
886+ Config : tfFileBasicAlias ,
887+ PlanOnly : true ,
888+ ExpectNonEmptyPlan : false ,
889+ },
890+ // Change override_address_records to true Plan and Apply
891+ {
892+ Config : tfFileOverrideAddressRecordsAliasTrue ,
893+ PlanOnly : true ,
894+ ExpectNonEmptyPlan : true ,
895+ },
896+ {
897+ Config : tfFileOverrideAddressRecordsAliasTrue ,
898+ Check : resource .ComposeTestCheckFunc (
899+ testAccCheckRecordExists ("ns1_record.it" , & record ),
900+ testAccCheckRecordOverrideAddressRecords (& record , true ),
901+ ),
902+ },
903+ // Plan again to detect "loop" conditions
904+ {
905+ Config : tfFileOverrideAddressRecordsAliasTrue ,
906+ PlanOnly : true ,
907+ ExpectNonEmptyPlan : false ,
908+ },
909+ },
910+ })
911+ }
912+
913+ func TestAccRecord_OverrideAddressRecordsTrueToNil (t * testing.T ) {
914+ var record dns.Record
915+ rString := acctest .RandStringFromCharSet (15 , acctest .CharSetAlphaNum )
916+
917+ tfFileBasicAlias := testAccRecordBasicALIAS (rString )
918+ tfFileOverrideAddressRecordsAliasTrue := testAccRecordBasicALIASOverrideAddressRecords (rString , true )
919+
920+ resource .Test (t , resource.TestCase {
921+ PreCheck : func () { testAccPreCheck (t ) },
922+ Providers : testAccProviders ,
923+ CheckDestroy : testAccCheckRecordDestroy ,
924+ Steps : []resource.TestStep {
925+ // Create an ALIAS record with override_address_records true
926+ {
927+ Config : tfFileOverrideAddressRecordsAliasTrue ,
928+ Check : resource .ComposeTestCheckFunc (
929+ testAccCheckRecordExists ("ns1_record.it" , & record ),
930+ testAccCheckRecordOverrideAddressRecords (& record , true ),
931+ ),
932+ },
933+ // Plan again to detect "loop" conditions
934+ {
935+ Config : tfFileOverrideAddressRecordsAliasTrue ,
936+ PlanOnly : true ,
937+ ExpectNonEmptyPlan : false ,
938+ },
939+ {
940+ Config : tfFileBasicAlias ,
941+ PlanOnly : true ,
942+ ExpectNonEmptyPlan : true ,
943+ },
944+ // Change override_address_records from true setting to "null" results in false
945+ {
946+ Config : tfFileBasicAlias ,
947+ Check : resource .ComposeTestCheckFunc (
948+ testAccCheckRecordExists ("ns1_record.it" , & record ),
949+ testAccCheckRecordOverrideAddressRecords (& record , false ),
950+ ),
951+ },
952+ // Plan again to detect "loop" conditions
953+ {
954+ Config : tfFileBasicAlias ,
955+ PlanOnly : true ,
956+ ExpectNonEmptyPlan : false ,
957+ },
958+ },
959+ })
960+ }
961+
962+ func TestAccRecord_OverrideAddressRecordsTrueToFalse (t * testing.T ) {
963+ var record dns.Record
964+ rString := acctest .RandStringFromCharSet (15 , acctest .CharSetAlphaNum )
965+
966+ tfFileOverrideAddressRecordsAliasTrue := testAccRecordBasicALIASOverrideAddressRecords (rString , true )
967+ tfFileDoNotOverrideAddressRecordsAliasFalse := testAccRecordBasicALIASOverrideAddressRecords (rString , false )
968+
969+ resource .Test (t , resource.TestCase {
970+ PreCheck : func () { testAccPreCheck (t ) },
971+ Providers : testAccProviders ,
972+ CheckDestroy : testAccCheckRecordDestroy ,
973+ Steps : []resource.TestStep {
974+ // Create an ALIAS record with override_address_records true
975+ {
976+ Config : tfFileOverrideAddressRecordsAliasTrue ,
977+ Check : resource .ComposeTestCheckFunc (
978+ testAccCheckRecordExists ("ns1_record.it" , & record ),
979+ testAccCheckRecordOverrideAddressRecords (& record , true ),
980+ ),
981+ },
982+ // Plan again to detect "loop" conditions
983+ {
984+ Config : tfFileOverrideAddressRecordsAliasTrue ,
985+ PlanOnly : true ,
986+ ExpectNonEmptyPlan : false ,
987+ },
988+ // Change override_address_records to false setting to false Plan and Apply
989+ {
990+ Config : tfFileDoNotOverrideAddressRecordsAliasFalse ,
991+ ExpectNonEmptyPlan : true ,
992+ PlanOnly : true ,
993+ },
994+ {
995+ Config : tfFileDoNotOverrideAddressRecordsAliasFalse ,
996+ Check : resource .ComposeTestCheckFunc (
997+ testAccCheckRecordExists ("ns1_record.it" , & record ),
998+ testAccCheckRecordOverrideAddressRecords (& record , false ),
999+ ),
1000+ },
1001+ // Plan again to detect "loop" conditions
1002+ {
1003+ Config : tfFileDoNotOverrideAddressRecordsAliasFalse ,
1004+ PlanOnly : true ,
1005+ ExpectNonEmptyPlan : false ,
1006+ },
1007+ },
1008+ })
1009+ }
1010+
8641011func TestAccRecord_Link (t * testing.T ) {
8651012 var record1 dns.Record
8661013 var record2 dns.Record
@@ -1049,6 +1196,16 @@ func ExpectOverrideTTLNotNil() bool {
10491196 return false
10501197}
10511198
1199+ func testAccCheckRecordOverrideAddressRecords (r * dns.Record , expected bool ) resource.TestCheckFunc {
1200+ return func (s * terraform.State ) error {
1201+ if * r .OverrideAddressRecords != expected {
1202+ return fmt .Errorf ("Override Address Records: got: %#v want: %#v" , * r .OverrideAddressRecords , expected )
1203+ }
1204+
1205+ return nil
1206+ }
1207+ }
1208+
10521209func testAccCheckRecordOverrideTTL (r * dns.Record , expectedNil bool ) resource.TestCheckFunc {
10531210 return func (s * terraform.State ) error {
10541211 if expectedNil {
@@ -1273,6 +1430,25 @@ resource "ns1_zone" "test" {
12731430` , domain , zone )
12741431}
12751432
1433+ func testAccRecordBasicALIASOverrideAddressRecords (rString string , overrideAddressRecords bool ) string {
1434+ return fmt .Sprintf (`
1435+ resource "ns1_record" "it" {
1436+ zone = "${ns1_zone.test.zone}"
1437+ domain = "${ns1_zone.test.zone}"
1438+ type = "ALIAS"
1439+ ttl = 60
1440+ override_address_records = %v
1441+ answers {
1442+ answer = "test.${ns1_zone.test.zone}"
1443+ }
1444+ }
1445+
1446+ resource "ns1_zone" "test" {
1447+ zone = "terraform-test-%s.io"
1448+ }
1449+ ` , overrideAddressRecords , rString )
1450+ }
1451+
12761452func testAccRecordBasicALIASOverrideTTL (rString string , overridettl bool ) string {
12771453 return fmt .Sprintf (`
12781454resource "ns1_record" "it" {
0 commit comments