generated from hashicorp/terraform-provider-scaffolding
-
Notifications
You must be signed in to change notification settings - Fork 3
/
posture_check_test.go
119 lines (113 loc) · 5.3 KB
/
posture_check_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
package acc_tests
import (
"regexp"
"testing"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
const (
userConf = `
resource "pfptmeta_user" "user" {
given_name = "John"
family_name = "Smith"
email = "john.smith@example.com"
}
`
postureCheckStep1 = `
resource "pfptmeta_posture_check" "check" {
name = "check-name"
description = "check-desc"
apply_to_entities = [pfptmeta_user.user.id]
osquery = "select * from processes where name='falcon-sensor' and state='S';"
platform = "Linux"
enabled = true
action = "WARNING"
when = ["PERIODIC"]
interval = 60
user_message_on_fail = "check failed"
}
`
postureCheckStep2 = `
resource "pfptmeta_posture_check" "check" {
name = "check-name1"
apply_to_org = true
exempt_entities = [pfptmeta_user.user.id]
check {
type = "minimum_app_version"
min_version = "4.0.0"
}
platform = "iOS"
action = "DISCONNECT"
when = ["PRE_CONNECT"]
user_message_on_fail = "check failed1"
}
`
dataSourcePostureCheck = `
data "pfptmeta_posture_check" "check" {
id = pfptmeta_posture_check.check.id
}
`
)
func TestAccResourcePostureCheck(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
CheckDestroy: validateResourceDestroyed("posture_check", "v1/posture_checks"),
Steps: []resource.TestStep{
{
Config: userConf + postureCheckStep1,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("pfptmeta_posture_check.check", "id", regexp.MustCompile("^pc-.+$")),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "name", "check-name"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "description", "check-desc"),
resource.TestMatchResourceAttr("pfptmeta_posture_check.check", "apply_to_entities.0", regexp.MustCompile("^usr-.+$")),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "osquery", "select * from processes where name='falcon-sensor' and state='S';"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "platform", "Linux"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "enabled", "true"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "action", "WARNING"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "when.0", "PERIODIC"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "interval", "60"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "user_message_on_fail", "check failed"),
),
},
{
Config: userConf + postureCheckStep2,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("pfptmeta_posture_check.check", "id", regexp.MustCompile("^pc-.+$")),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "name", "check-name1"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "apply_to_org", "true"),
resource.TestMatchResourceAttr("pfptmeta_posture_check.check", "exempt_entities.0", regexp.MustCompile("^usr-.+$")),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "platform", "iOS"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "enabled", "true"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "action", "DISCONNECT"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "when.0", "PRE_CONNECT"),
resource.TestCheckResourceAttr("pfptmeta_posture_check.check", "user_message_on_fail", "check failed1"),
),
},
},
})
}
func TestAccDataSourcePostureCheck(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
CheckDestroy: validateResourceDestroyed("posture_check", "v1/posture_checks"),
Steps: []resource.TestStep{
{
Config: userConf + postureCheckStep1 + dataSourcePostureCheck,
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr("data.pfptmeta_posture_check.check", "id", regexp.MustCompile("^pc-.+$")),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "name", "check-name"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "description", "check-desc"),
resource.TestMatchResourceAttr("data.pfptmeta_posture_check.check", "apply_to_entities.0", regexp.MustCompile("^usr-.+$")),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "osquery", "select * from processes where name='falcon-sensor' and state='S';"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "platform", "Linux"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "enabled", "true"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "action", "WARNING"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "when.0", "PERIODIC"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "interval", "60"),
resource.TestCheckResourceAttr("data.pfptmeta_posture_check.check", "user_message_on_fail", "check failed"),
),
},
},
})
}