@@ -8,34 +8,18 @@ import (
8
8
"testing"
9
9
10
10
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
11
12
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
12
13
)
13
14
14
- var accTestPolicyMacDiscoveryProfileCreateAttributes = map [string ]string {
15
- "display_name" : getAccTestResourceName (),
16
- "description" : "terraform created" ,
17
- "mac_change_enabled" : "true" ,
18
- "mac_learning_enabled" : "true" ,
19
- "mac_limit" : "2" ,
20
- "mac_limit_policy" : "ALLOW" ,
21
- "remote_overlay_mac_limit" : "2048" ,
22
- "unknown_unicast_flooding_enabled" : "true" ,
23
- }
24
-
25
- var accTestPolicyMacDiscoveryProfileUpdateAttributes = map [string ]string {
26
- "display_name" : getAccTestResourceName (),
27
- "description" : "terraform updated" ,
28
- "mac_change_enabled" : "false" ,
29
- "mac_learning_enabled" : "false" ,
30
- "mac_limit" : "5" ,
31
- "mac_limit_policy" : "DROP" ,
32
- "remote_overlay_mac_limit" : "4096" ,
33
- "unknown_unicast_flooding_enabled" : "false" ,
34
- }
15
+ // TODO - include display name in metadata
16
+ var createDisplayName = getAccTestResourceName ()
17
+ var updateDisplayName = getAccTestResourceName ()
35
18
36
19
func TestAccResourceNsxtPolicyMacDiscoveryProfile_basic (t * testing.T ) {
37
20
testAccResourceNsxtPolicyMacDiscoveryProfileBasic (t , false , func () {
38
21
testAccPreCheck (t )
22
+ testAccNSXVersion (t , "3.0.0" )
39
23
})
40
24
}
41
25
@@ -46,58 +30,77 @@ func TestAccResourceNsxtPolicyMacDiscoveryProfile_multitenancy(t *testing.T) {
46
30
})
47
31
}
48
32
33
+ func getMacDiscoveryProfileTestCheckFunc (testResourceName string , create bool ) []resource.TestCheckFunc {
34
+ displayName := createDisplayName
35
+ if ! create {
36
+ displayName = updateDisplayName
37
+ }
38
+ result := []resource.TestCheckFunc {testAccNsxtPolicyMacDiscoveryProfileExists (displayName , testResourceName ),
39
+ resource .TestCheckResourceAttrSet (testResourceName , "nsx_id" ),
40
+ resource .TestCheckResourceAttrSet (testResourceName , "path" ),
41
+ resource .TestCheckResourceAttrSet (testResourceName , "revision" ),
42
+ resource .TestCheckResourceAttr (testResourceName , "tag.#" , "1" ),
43
+ }
44
+ for key , item := range macDiscoveryProfileMetadata {
45
+ if item .introducedInVersion != "" && nsxVersionLower (item .introducedInVersion ) {
46
+ continue
47
+ }
48
+
49
+ value := item .testData .createValue
50
+ if ! create {
51
+ value = item .testData .updateValue
52
+ }
53
+ result = append (result , resource .TestCheckResourceAttr (testResourceName , key , value .(string )))
54
+ }
55
+
56
+ return result
57
+ }
58
+
59
+ func getMacDiscoveryProfileTestConfigAttributes (create bool ) string {
60
+ result := ""
61
+ schemaDef := resourceNsxtPolicyMacDiscoveryProfile ().Schema
62
+ for key , item := range macDiscoveryProfileMetadata {
63
+ if item .introducedInVersion != "" && nsxVersionLower (item .introducedInVersion ) {
64
+ continue
65
+ }
66
+
67
+ value := item .testData .createValue
68
+ if ! create {
69
+ value = item .testData .updateValue
70
+ }
71
+
72
+ if schemaDef [key ].Type == schema .TypeString {
73
+ result += fmt .Sprintf ("\n %s = \" %s\" " , key , value .(string ))
74
+ } else {
75
+ result += fmt .Sprintf ("\n %s = %s" , key , value .(string ))
76
+ }
77
+ }
78
+
79
+ return result
80
+ }
81
+
49
82
func testAccResourceNsxtPolicyMacDiscoveryProfileBasic (t * testing.T , withContext bool , preCheck func ()) {
50
83
testResourceName := "nsxt_policy_mac_discovery_profile.test"
51
84
52
85
resource .ParallelTest (t , resource.TestCase {
53
86
PreCheck : preCheck ,
54
87
Providers : testAccProviders ,
55
88
CheckDestroy : func (state * terraform.State ) error {
56
- return testAccNsxtPolicyMacDiscoveryProfileCheckDestroy (state , accTestPolicyMacDiscoveryProfileUpdateAttributes [ "display_name" ] )
89
+ return testAccNsxtPolicyMacDiscoveryProfileCheckDestroy (state , updateDisplayName )
57
90
},
58
91
Steps : []resource.TestStep {
59
92
{
60
93
Config : testAccNsxtPolicyMacDiscoveryProfileTemplate (true , withContext ),
61
- Check : resource .ComposeTestCheckFunc (
62
- testAccNsxtPolicyMacDiscoveryProfileExists (accTestPolicyMacDiscoveryProfileCreateAttributes ["display_name" ], testResourceName ),
63
- resource .TestCheckResourceAttr (testResourceName , "display_name" , accTestPolicyMacDiscoveryProfileCreateAttributes ["display_name" ]),
64
- resource .TestCheckResourceAttr (testResourceName , "description" , accTestPolicyMacDiscoveryProfileCreateAttributes ["description" ]),
65
- resource .TestCheckResourceAttr (testResourceName , "mac_change_enabled" , accTestPolicyMacDiscoveryProfileCreateAttributes ["mac_change_enabled" ]),
66
- resource .TestCheckResourceAttr (testResourceName , "mac_learning_enabled" , accTestPolicyMacDiscoveryProfileCreateAttributes ["mac_learning_enabled" ]),
67
- resource .TestCheckResourceAttr (testResourceName , "mac_limit" , accTestPolicyMacDiscoveryProfileCreateAttributes ["mac_limit" ]),
68
- resource .TestCheckResourceAttr (testResourceName , "mac_limit_policy" , accTestPolicyMacDiscoveryProfileCreateAttributes ["mac_limit_policy" ]),
69
- resource .TestCheckResourceAttr (testResourceName , "remote_overlay_mac_limit" , accTestPolicyMacDiscoveryProfileCreateAttributes ["remote_overlay_mac_limit" ]),
70
- resource .TestCheckResourceAttr (testResourceName , "unknown_unicast_flooding_enabled" , accTestPolicyMacDiscoveryProfileCreateAttributes ["unknown_unicast_flooding_enabled" ]),
71
-
72
- resource .TestCheckResourceAttrSet (testResourceName , "nsx_id" ),
73
- resource .TestCheckResourceAttrSet (testResourceName , "path" ),
74
- resource .TestCheckResourceAttrSet (testResourceName , "revision" ),
75
- resource .TestCheckResourceAttr (testResourceName , "tag.#" , "1" ),
76
- ),
94
+ Check : resource .ComposeTestCheckFunc (getMacDiscoveryProfileTestCheckFunc (testResourceName , true )... ),
77
95
},
78
96
{
79
97
Config : testAccNsxtPolicyMacDiscoveryProfileTemplate (false , withContext ),
80
- Check : resource .ComposeTestCheckFunc (
81
- testAccNsxtPolicyMacDiscoveryProfileExists (accTestPolicyMacDiscoveryProfileUpdateAttributes ["display_name" ], testResourceName ),
82
- resource .TestCheckResourceAttr (testResourceName , "display_name" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["display_name" ]),
83
- resource .TestCheckResourceAttr (testResourceName , "description" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["description" ]),
84
- resource .TestCheckResourceAttr (testResourceName , "mac_change_enabled" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["mac_change_enabled" ]),
85
- resource .TestCheckResourceAttr (testResourceName , "mac_learning_enabled" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["mac_learning_enabled" ]),
86
- resource .TestCheckResourceAttr (testResourceName , "mac_limit" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["mac_limit" ]),
87
- resource .TestCheckResourceAttr (testResourceName , "mac_limit_policy" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["mac_limit_policy" ]),
88
- resource .TestCheckResourceAttr (testResourceName , "remote_overlay_mac_limit" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["remote_overlay_mac_limit" ]),
89
- resource .TestCheckResourceAttr (testResourceName , "unknown_unicast_flooding_enabled" , accTestPolicyMacDiscoveryProfileUpdateAttributes ["unknown_unicast_flooding_enabled" ]),
90
-
91
- resource .TestCheckResourceAttrSet (testResourceName , "nsx_id" ),
92
- resource .TestCheckResourceAttrSet (testResourceName , "path" ),
93
- resource .TestCheckResourceAttrSet (testResourceName , "revision" ),
94
- resource .TestCheckResourceAttr (testResourceName , "tag.#" , "1" ),
95
- ),
98
+ Check : resource .ComposeTestCheckFunc (getMacDiscoveryProfileTestCheckFunc (testResourceName , false )... ),
96
99
},
97
100
{
98
101
Config : testAccNsxtPolicyMacDiscoveryProfileMinimalistic (withContext ),
99
102
Check : resource .ComposeTestCheckFunc (
100
- testAccNsxtPolicyMacDiscoveryProfileExists (accTestPolicyMacDiscoveryProfileCreateAttributes [ "display_name" ] , testResourceName ),
103
+ testAccNsxtPolicyMacDiscoveryProfileExists (createDisplayName , testResourceName ),
101
104
resource .TestCheckResourceAttr (testResourceName , "description" , "" ),
102
105
resource .TestCheckResourceAttrSet (testResourceName , "nsx_id" ),
103
106
resource .TestCheckResourceAttrSet (testResourceName , "path" ),
@@ -205,11 +208,9 @@ func testAccNsxtPolicyMacDiscoveryProfileCheckDestroy(state *terraform.State, di
205
208
}
206
209
207
210
func testAccNsxtPolicyMacDiscoveryProfileTemplate (createFlow , withContext bool ) string {
208
- var attrMap map [string ]string
209
- if createFlow {
210
- attrMap = accTestPolicyMacDiscoveryProfileCreateAttributes
211
- } else {
212
- attrMap = accTestPolicyMacDiscoveryProfileUpdateAttributes
211
+ displayName := createDisplayName
212
+ if ! createFlow {
213
+ displayName = updateDisplayName
213
214
}
214
215
context := ""
215
216
if withContext {
@@ -219,18 +220,12 @@ func testAccNsxtPolicyMacDiscoveryProfileTemplate(createFlow, withContext bool)
219
220
resource "nsxt_policy_mac_discovery_profile" "test" {
220
221
%s
221
222
display_name = "%s"
222
- description = "%s"
223
- mac_change_enabled = %s
224
- mac_learning_enabled = %s
225
- mac_limit = %s
226
- mac_limit_policy = "%s"
227
- remote_overlay_mac_limit = %s
228
- unknown_unicast_flooding_enabled = %s
223
+ %s
229
224
tag {
230
225
scope = "scope1"
231
226
tag = "tag1"
232
227
}
233
- }` , context , attrMap [ "display_name" ], attrMap [ "description" ], attrMap [ "mac_change_enabled" ], attrMap [ "mac_learning_enabled" ], attrMap [ "mac_limit" ], attrMap [ "mac_limit_policy" ], attrMap [ "remote_overlay_mac_limit" ], attrMap [ "unknown_unicast_flooding_enabled" ] )
228
+ }` , context , displayName , getMacDiscoveryProfileTestConfigAttributes ( createFlow ) )
234
229
}
235
230
236
231
func testAccNsxtPolicyMacDiscoveryProfileMinimalistic (withContext bool ) string {
@@ -242,5 +237,5 @@ func testAccNsxtPolicyMacDiscoveryProfileMinimalistic(withContext bool) string {
242
237
resource "nsxt_policy_mac_discovery_profile" "test" {
243
238
%s
244
239
display_name = "%s"
245
- }` , context , accTestPolicyMacDiscoveryProfileUpdateAttributes [ "display_name" ] )
240
+ }` , context , updateDisplayName )
246
241
}
0 commit comments