@@ -94,27 +94,45 @@ func TestAccIBMISVPCRoutingTable_advertiseRoutesTO(t *testing.T) {
9494 var vpcRouteTables string
9595 name1 := fmt .Sprintf ("tfvpc-create-%d" , acctest .RandIntRange (10 , 100 ))
9696 routeTableName := fmt .Sprintf ("tfvpcrt-create-%d" , acctest .RandIntRange (10 , 100 ))
97- routeTableName1 := fmt .Sprintf ("tfvpcrt-up-create-%d" , acctest .RandIntRange (10 , 100 ))
9897
98+ advertiseRoutesToDirectLink := "direct_link"
99+ advertiseRoutesToTransit_gateway := "transit_gateway"
100+ acceptRoutesFromVPNServer := "vpn_server"
99101 resource .Test (t , resource.TestCase {
100102 PreCheck : func () { acc .TestAccPreCheck (t ) },
101103 Providers : acc .TestAccProviders ,
102104 CheckDestroy : testAccCheckIBMISVPCRouteTableDestroy ,
103105 Steps : []resource.TestStep {
104106 {
105- Config : testAccCheckIBMISVPCRouteTableConfig (routeTableName , name1 ),
107+ Config : testAccCheckIBMISVPCRouteTableAdvertiseRoutesToConfig (routeTableName , name1 , acceptRoutesFromVPNServer , advertiseRoutesToDirectLink , advertiseRoutesToTransit_gateway ),
106108 Check : resource .ComposeTestCheckFunc (
107109 testAccCheckIBMISVPCRouteTableExists ("ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , vpcRouteTables ),
108- resource .TestCheckResourceAttrSet (
109- "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to" ),
110+ resource .TestCheckResourceAttr (
111+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to.0" , advertiseRoutesToDirectLink ),
112+ resource .TestCheckResourceAttr (
113+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to.1" , advertiseRoutesToTransit_gateway ),
114+ resource .TestCheckResourceAttr (
115+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "accept_routes_from_resource_type.0" , acceptRoutesFromVPNServer ),
110116 ),
111117 },
112118 {
113- Config : testAccCheckIBMISVPCRouteTableConfig ( routeTableName1 , name1 ),
119+ Config : testAccCheckIBMISVPCRouteTableAdvertiseRoutesToDLConfig ( routeTableName , name1 , acceptRoutesFromVPNServer , advertiseRoutesToDirectLink ),
114120 Check : resource .ComposeTestCheckFunc (
115121 testAccCheckIBMISVPCRouteTableExists ("ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , vpcRouteTables ),
116- resource .TestCheckResourceAttrSet (
117- "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to" ),
122+ resource .TestCheckResourceAttr (
123+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to.0" , advertiseRoutesToDirectLink ),
124+ resource .TestCheckResourceAttr (
125+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "accept_routes_from_resource_type.0" , acceptRoutesFromVPNServer ),
126+ ),
127+ },
128+ {
129+ Config : testAccCheckIBMISVPCRouteTableAdvertiseRoutesToRemovalConfig (routeTableName , name1 ),
130+ Check : resource .ComposeTestCheckFunc (
131+ testAccCheckIBMISVPCRouteTableExists ("ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , vpcRouteTables ),
132+ resource .TestCheckResourceAttr (
133+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "advertise_routes_to.#" , "0" ),
134+ resource .TestCheckResourceAttr (
135+ "ibm_is_vpc_routing_table.test_ibm_is_vpc_routing_table" , "accept_routes_from_resource_type.#" , "0" ),
118136 ),
119137 },
120138 },
@@ -206,3 +224,50 @@ resource "ibm_is_vpc_routing_table" "test_ibm_is_vpc_routing_table" {
206224 accept_routes_from_resource_type=["%s"]
207225}` , name , rtName , acceptRoutesFromVPNServer )
208226}
227+
228+ func testAccCheckIBMISVPCRouteTableAdvertiseRoutesToConfig (rtName , name , acceptRoutesFromVPNServer , advertiseRoutesTo1 , advertiseRoutesTo2 string ) string {
229+ return fmt .Sprintf (`
230+ resource "ibm_is_vpc" "testacc_vpc" {
231+ name = "%s"
232+ }
233+ resource "ibm_is_vpc_routing_table" "test_ibm_is_vpc_routing_table" {
234+ depends_on = [ibm_is_vpc.testacc_vpc]
235+ route_direct_link_ingress = true
236+ route_transit_gateway_ingress = true
237+ vpc = ibm_is_vpc.testacc_vpc.id
238+ name = "%s"
239+ accept_routes_from_resource_type=["%s"]
240+ advertise_routes_to=["%s","%s"]
241+ }` , name , rtName , acceptRoutesFromVPNServer , advertiseRoutesTo1 , advertiseRoutesTo2 )
242+ }
243+
244+ func testAccCheckIBMISVPCRouteTableAdvertiseRoutesToDLConfig (rtName , name , acceptRoutesFromVPNServer , advertiseRoutesTo1 string ) string {
245+ return fmt .Sprintf (`
246+ resource "ibm_is_vpc" "testacc_vpc" {
247+ name = "%s"
248+ }
249+ resource "ibm_is_vpc_routing_table" "test_ibm_is_vpc_routing_table" {
250+ depends_on = [ibm_is_vpc.testacc_vpc]
251+ route_direct_link_ingress = true
252+ route_transit_gateway_ingress = true
253+ vpc = ibm_is_vpc.testacc_vpc.id
254+ name = "%s"
255+ accept_routes_from_resource_type=["%s"]
256+ advertise_routes_to=["%s"]
257+ }` , name , rtName , acceptRoutesFromVPNServer , advertiseRoutesTo1 )
258+ }
259+
260+ func testAccCheckIBMISVPCRouteTableAdvertiseRoutesToRemovalConfig (rtName , name string ) string {
261+ return fmt .Sprintf (`
262+ resource "ibm_is_vpc" "testacc_vpc" {
263+ name = "%s"
264+ }
265+ resource "ibm_is_vpc_routing_table" "test_ibm_is_vpc_routing_table" {
266+ depends_on = [ibm_is_vpc.testacc_vpc]
267+ route_direct_link_ingress = true
268+ vpc = ibm_is_vpc.testacc_vpc.id
269+ name = "%s"
270+ accept_routes_from_resource_type=[]
271+ advertise_routes_to=[]
272+ }` , name , rtName )
273+ }
0 commit comments