@@ -861,6 +861,153 @@ func TestAccRecord_OverrideTTLTrueToFalse(t *testing.T) {
861
861
})
862
862
}
863
863
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
+
864
1011
func TestAccRecord_Link (t * testing.T ) {
865
1012
var record1 dns.Record
866
1013
var record2 dns.Record
@@ -1049,6 +1196,16 @@ func ExpectOverrideTTLNotNil() bool {
1049
1196
return false
1050
1197
}
1051
1198
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
+
1052
1209
func testAccCheckRecordOverrideTTL (r * dns.Record , expectedNil bool ) resource.TestCheckFunc {
1053
1210
return func (s * terraform.State ) error {
1054
1211
if expectedNil {
@@ -1273,6 +1430,25 @@ resource "ns1_zone" "test" {
1273
1430
` , domain , zone )
1274
1431
}
1275
1432
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
+
1276
1452
func testAccRecordBasicALIASOverrideTTL (rString string , overridettl bool ) string {
1277
1453
return fmt .Sprintf (`
1278
1454
resource "ns1_record" "it" {
0 commit comments