Skip to content

Commit 9d2d817

Browse files
committed
[ignore] add tests to ensure vrf child resources are not deleted upon change of parent
1 parent b229649 commit 9d2d817

2 files changed

Lines changed: 51 additions & 10 deletions

File tree

mso/resource_mso_schema_template_vrf_test.go

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,26 +182,40 @@ func TestAccMSOSchemaTemplateVrfResource(t *testing.T) {
182182
),
183183
},
184184
{
185-
PreConfig: func() { fmt.Println("Test: Add BD child to VRF") },
186-
Config: testAccMSOSchemaTemplateVrfConfigWithBdChild(),
185+
PreConfig: func() { fmt.Println("Test: Add BD and contract children to VRF") },
186+
Config: testAccMSOSchemaTemplateVrfConfigWithChildren(),
187187
Check: resource.ComposeAggregateTestCheckFunc(
188188
resource.TestCheckResourceAttrSet("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "schema_id"),
189189
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "name", msoSchemaTemplateVrfName),
190190
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "display_name", msoSchemaTemplateVrfName+" updated"),
191191
resource.TestCheckResourceAttr("mso_schema_template_bd."+msoSchemaTemplateBdName, "name", msoSchemaTemplateBdName),
192192
resource.TestCheckResourceAttr("mso_schema_template_bd."+msoSchemaTemplateBdName, "display_name", msoSchemaTemplateBdName),
193+
resource.TestCheckResourceAttr("mso_schema_template_vrf_contract."+msoSchemaTemplateContractName+"_provider", "contract_name", msoSchemaTemplateContractName),
194+
resource.TestCheckResourceAttr("mso_schema_template_vrf_contract."+msoSchemaTemplateContractName+"_provider", "relationship_type", "provider"),
193195
),
194196
},
195197
{
196-
PreConfig: func() { fmt.Println("Test: Update VRF description with BD child present") },
197-
Config: testAccMSOSchemaTemplateVrfConfigWithBdChildUpdateDescription(),
198+
PreConfig: func() { fmt.Println("Test: Update VRF description with children present") },
199+
Config: testAccMSOSchemaTemplateVrfConfigWithChildrenUpdateDescription(),
198200
Check: resource.ComposeAggregateTestCheckFunc(
199201
resource.TestCheckResourceAttrSet("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "schema_id"),
200202
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "name", msoSchemaTemplateVrfName),
201203
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "display_name", msoSchemaTemplateVrfName+" updated"),
202-
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "description", "Terraform test VRF with BD"),
204+
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "description", "Terraform test VRF with children"),
203205
resource.TestCheckResourceAttr("mso_schema_template_bd."+msoSchemaTemplateBdName, "name", msoSchemaTemplateBdName),
204206
resource.TestCheckResourceAttr("mso_schema_template_bd."+msoSchemaTemplateBdName, "display_name", msoSchemaTemplateBdName),
207+
resource.TestCheckResourceAttr("mso_schema_template_vrf_contract."+msoSchemaTemplateContractName+"_provider", "contract_name", msoSchemaTemplateContractName),
208+
resource.TestCheckResourceAttr("mso_schema_template_vrf_contract."+msoSchemaTemplateContractName+"_provider", "relationship_type", "provider"),
209+
),
210+
},
211+
{
212+
PreConfig: func() { fmt.Println("Test: Remove children from VRF") },
213+
Config: testAccMSOSchemaTemplateVrfConfigRemoveChildren(),
214+
Check: resource.ComposeAggregateTestCheckFunc(
215+
resource.TestCheckResourceAttrSet("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "schema_id"),
216+
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "name", msoSchemaTemplateVrfName),
217+
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "display_name", msoSchemaTemplateVrfName+" updated"),
218+
resource.TestCheckResourceAttr("mso_schema_template_vrf."+msoSchemaTemplateVrfName, "description", "Terraform test VRF with children"),
205219
),
206220
},
207221
},
@@ -337,19 +351,34 @@ func testAccMSOSchemaTemplateVrfConfigRemoveAllRps() string {
337351
}`, testAccMSOSchemaTemplateVrfPrerequisiteConfig(), msoSchemaTemplateVrfName, msoSchemaName, msoSchemaTemplateName)
338352
}
339353

340-
func testAccMSOSchemaTemplateVrfConfigWithBdChild() string {
341-
return testAccMSOSchemaTemplateVrfConfigUpdateDisplayName() + testSchemaTemplateBdConfig()
354+
func testAccMSOSchemaTemplateVrfChildrenConfig() string {
355+
return testSchemaTemplateBdConfig() + testSchemaTemplateFilterEntryConfig() + testSchemaTemplateContractConfig() + testSchemaTemplateVrfContractConfig()
356+
}
357+
358+
func testAccMSOSchemaTemplateVrfConfigWithChildren() string {
359+
return testAccMSOSchemaTemplateVrfConfigUpdateDisplayName() + testAccMSOSchemaTemplateVrfChildrenConfig()
342360
}
343361

344-
func testAccMSOSchemaTemplateVrfConfigWithBdChildUpdateDescription() string {
362+
func testAccMSOSchemaTemplateVrfConfigWithChildrenUpdateDescription() string {
345363
return fmt.Sprintf(`%[1]s
346364
resource "mso_schema_template_vrf" "%[2]s" {
347365
schema_id = mso_schema.%[3]s.id
348366
template = "%[4]s"
349367
name = "%[2]s"
350368
display_name = "%[2]s updated"
351-
description = "Terraform test VRF with BD"
352-
}`, testAccMSOSchemaTemplateVrfPrerequisiteConfig(), msoSchemaTemplateVrfName, msoSchemaName, msoSchemaTemplateName) + testSchemaTemplateBdConfig()
369+
description = "Terraform test VRF with children"
370+
}`, testAccMSOSchemaTemplateVrfPrerequisiteConfig(), msoSchemaTemplateVrfName, msoSchemaName, msoSchemaTemplateName) + testAccMSOSchemaTemplateVrfChildrenConfig()
371+
}
372+
373+
func testAccMSOSchemaTemplateVrfConfigRemoveChildren() string {
374+
return fmt.Sprintf(`%[1]s
375+
resource "mso_schema_template_vrf" "%[2]s" {
376+
schema_id = mso_schema.%[3]s.id
377+
template = "%[4]s"
378+
name = "%[2]s"
379+
display_name = "%[2]s updated"
380+
description = "Terraform test VRF with children"
381+
}`, testAccMSOSchemaTemplateVrfPrerequisiteConfig(), msoSchemaTemplateVrfName, msoSchemaName, msoSchemaTemplateName)
353382
}
354383

355384
func testAccCheckMSOSchemaTemplateVrfDestroy(s *terraform.State) error {

mso/test_constants.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,18 @@ resource "mso_schema_template_contract" "%[1]s" {
266266
`, msoSchemaTemplateContractName, msoSchemaName, msoSchemaTemplateName, msoSchemaTemplateFilterName)
267267
}
268268

269+
func testSchemaTemplateVrfContractConfig() string {
270+
return fmt.Sprintf(`
271+
resource "mso_schema_template_vrf_contract" "%[1]s_provider" {
272+
schema_id = mso_schema.%[2]s.id
273+
template_name = "%[3]s"
274+
vrf_name = mso_schema_template_vrf.%[4]s.name
275+
relationship_type = "provider"
276+
contract_name = mso_schema_template_contract.%[1]s.contract_name
277+
}
278+
`, msoSchemaTemplateContractName, msoSchemaName, msoSchemaTemplateName, msoSchemaTemplateVrfName)
279+
}
280+
269281
func testSchemaTemplateAnpEpgContractConfig() string {
270282
return fmt.Sprintf(`
271283
resource "mso_schema_template_anp_epg_contract" "%[1]s_provider" {

0 commit comments

Comments
 (0)