generated from hashicorp/terraform-provider-scaffolding
-
Notifications
You must be signed in to change notification settings - Fork 3
/
device_settings_test.go
128 lines (124 loc) · 6.95 KB
/
device_settings_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package acc_tests
import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"regexp"
"testing"
)
const (
deviceSettingsGroup = `
resource "pfptmeta_group" "ds_group" {
name = "device settings group"
}
`
deviceSettingsResourceStep1 = `
resource "pfptmeta_device_settings" "settings" {
name = "settings-name"
description = "settings-desc"
apply_on_org = true
tunnel_mode = "full"
ztna_always_on = true
proxy_always_on = true
overlay_mfa_required = false
overlay_mfa_refresh_period = 20
vpn_login_browser = "EXTERNAL"
session_lifetime = 15
session_lifetime_grace = "3"
protocol_selection_lifetime = "10"
search_domains = ["example1.com", "example2.com"]
}
`
deviceSettingsResourceStep2 = `
resource "pfptmeta_device_settings" "settings" {
name = "settings-name1"
description = "settings-desc1"
apply_to_entities = [pfptmeta_group.ds_group.id]
tunnel_mode = "split"
vpn_login_browser = "USER_DEFINED"
session_lifetime = 14
}
`
deviceSettingsDataSource = `
data "pfptmeta_device_settings" "settings" {
id = pfptmeta_device_settings.settings.id
}`
)
func TestAccResourceDeviceSettings(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
CheckDestroy: validateResourceDestroyed("device_settings", "v1/settings/device"),
Steps: []resource.TestStep{
{
Config: deviceSettingsResourceStep1,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("pfptmeta_device_settings.settings", "id", regexp.MustCompile("^ds-.+$")),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "name", "settings-name"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "description", "settings-desc"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "apply_on_org", "true"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "tunnel_mode", "full"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "ztna_always_on", "true"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "proxy_always_on", "true"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "overlay_mfa_required", "false"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "overlay_mfa_refresh_period", "20"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "vpn_login_browser", "EXTERNAL"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "session_lifetime", "15"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "session_lifetime_grace", "3"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "protocol_selection_lifetime", "10"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "search_domains.0", "example1.com"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "search_domains.1", "example2.com"),
),
},
{
Config: deviceSettingsGroup + deviceSettingsResourceStep2,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("pfptmeta_device_settings.settings", "id", regexp.MustCompile("^ds-.+$")),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "name", "settings-name1"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "description", "settings-desc1"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "apply_on_org", "false"),
resource.TestCheckResourceAttrPair(
"pfptmeta_device_settings.settings", "apply_to_entities.0",
"pfptmeta_group.ds_group", "id"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "tunnel_mode", "split"),
resource.TestCheckNoResourceAttr("pfptmeta_device_settings.settings", "ztna_always_on"),
resource.TestCheckNoResourceAttr("pfptmeta_device_settings.settings", "proxy_always_on"),
resource.TestCheckNoResourceAttr("pfptmeta_device_settings.settings", "overlay_mfa_required"),
resource.TestCheckNoResourceAttr("pfptmeta_device_settings.settings", "overlay_mfa_refresh_period"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "vpn_login_browser", "USER_DEFINED"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "session_lifetime", "14"),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "session_lifetime_grace", ""),
resource.TestCheckResourceAttr("pfptmeta_device_settings.settings", "protocol_selection_lifetime", ""),
resource.TestCheckNoResourceAttr("pfptmeta_device_settings.settings", "search_domains"),
),
},
},
})
}
func TestAccDataSourceDeviceSettings(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
CheckDestroy: validateResourceDestroyed("device_settings", "v1/settings/device"),
Steps: []resource.TestStep{
{
Config: deviceSettingsResourceStep1 + deviceSettingsDataSource,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("data.pfptmeta_device_settings.settings", "id", regexp.MustCompile("^ds-.+$")),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "name", "settings-name"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "description", "settings-desc"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "apply_on_org", "true"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "tunnel_mode", "full"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "ztna_always_on", "true"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "proxy_always_on", "true"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "overlay_mfa_required", "false"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "overlay_mfa_refresh_period", "20"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "vpn_login_browser", "EXTERNAL"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "session_lifetime", "15"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "session_lifetime_grace", "3"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "protocol_selection_lifetime", "10"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "search_domains.0", "example1.com"),
resource.TestCheckResourceAttr("data.pfptmeta_device_settings.settings", "search_domains.1", "example2.com"),
),
},
},
})
}