@@ -3,84 +3,92 @@ package sumologic
33import (
44 "encoding/json"
55 "fmt"
6- "io/ioutil"
76 "os"
87 "strconv"
8+ "strings"
99 "testing"
1010
1111 "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1212 "github.com/hashicorp/terraform-plugin-sdk/terraform"
1313)
1414
15+ func shouldTestGcpMetricsSource () bool {
16+ return ! strings .EqualFold (os .Getenv ("SUMOLOGIC_ENABLE_GCP_METRICS_ACC_TESTS" ), "false" )
17+ }
18+
1519func TestAccSumologicGcpMetricsSource_create (t * testing.T ) {
16- var GcpMetricsSource PollingSource
17- var collector Collector
18- cName , cDescription , cCategory := getRandomizedParams ()
19- sName , sDescription , sCategory := getRandomizedParams ()
20- GcpMetricsResourceName := "sumologic_gcp_metrics_source.gcp_metrics_source"
21- resource .Test (t , resource.TestCase {
22- PreCheck : func () { getServiceAccountCreds (t ) },
23- Providers : testAccProviders ,
24- CheckDestroy : testAccCheckGcpMetricsSourceDestroy ,
25- Steps : []resource.TestStep {
26- {
27- Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sName , sDescription , sCategory ),
28- Check : resource .ComposeTestCheckFunc (
29- testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
30- testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sName , sDescription , sCategory ),
31- testAccCheckCollectorExists ("sumologic_collector.test" , & collector ),
32- testAccCheckCollectorValues (& collector , cName , cDescription , cCategory , "Etc/UTC" , "" ),
33- resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
34- resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sName ),
35- resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescription ),
36- resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategory ),
37- resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
38- resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
39- ),
20+ if shouldTestGcpMetricsSource () {
21+ var GcpMetricsSource PollingSource
22+ var collector Collector
23+ cName , cDescription , cCategory := getRandomizedParams ()
24+ sName , sDescription , sCategory := getRandomizedParams ()
25+ GcpMetricsResourceName := "sumologic_gcp_metrics_source.gcp_metrics_source"
26+ resource .Test (t , resource.TestCase {
27+ PreCheck : func () { getServiceAccountCreds (t ) },
28+ Providers : testAccProviders ,
29+ CheckDestroy : testAccCheckGcpMetricsSourceDestroy ,
30+ Steps : []resource.TestStep {
31+ {
32+ Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sName , sDescription , sCategory ),
33+ Check : resource .ComposeTestCheckFunc (
34+ testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
35+ testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sName , sDescription , sCategory ),
36+ testAccCheckCollectorExists ("sumologic_collector.test" , & collector ),
37+ testAccCheckCollectorValues (& collector , cName , cDescription , cCategory , "Etc/UTC" , "" ),
38+ resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
39+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sName ),
40+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescription ),
41+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategory ),
42+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
43+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
44+ ),
45+ },
4046 },
41- },
42- })
47+ })
48+ }
4349}
4450
4551func TestAccSumologicGcpMetricsSource_update (t * testing.T ) {
46- var GcpMetricsSource PollingSource
47- cName , cDescription , cCategory := getRandomizedParams ()
48- sName , sDescription , sCategory := getRandomizedParams ()
49- sNameUpdated , sDescriptionUpdated , sCategoryUpdated := getRandomizedParams ()
50- GcpMetricsResourceName := "sumologic_gcp_metrics_source.gcp_metrics_source"
51- resource .Test (t , resource.TestCase {
52- PreCheck : func () { getServiceAccountCreds (t ) },
53- Providers : testAccProviders ,
54- CheckDestroy : testAccCheckHTTPSourceDestroy ,
55- Steps : []resource.TestStep {
56- {
57- Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sName , sDescription , sCategory ),
58- Check : resource .ComposeTestCheckFunc (
59- testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
60- testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sName , sDescription , sCategory ),
61- resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
62- resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sName ),
63- resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescription ),
64- resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategory ),
65- resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
66- resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
67- ),
68- },
69- {
70- Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sNameUpdated , sDescriptionUpdated , sCategoryUpdated ),
71- Check : resource .ComposeTestCheckFunc (
72- testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
73- testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sNameUpdated , sDescriptionUpdated , sCategoryUpdated ),
74- resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
75- resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sNameUpdated ),
76- resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescriptionUpdated ),
77- resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategoryUpdated ),
78- resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
79- resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
80- ),
52+ if shouldTestGcpMetricsSource () {
53+ var GcpMetricsSource PollingSource
54+ cName , cDescription , cCategory := getRandomizedParams ()
55+ sName , sDescription , sCategory := getRandomizedParams ()
56+ sNameUpdated , sDescriptionUpdated , sCategoryUpdated := getRandomizedParams ()
57+ GcpMetricsResourceName := "sumologic_gcp_metrics_source.gcp_metrics_source"
58+ resource .Test (t , resource.TestCase {
59+ PreCheck : func () { getServiceAccountCreds (t ) },
60+ Providers : testAccProviders ,
61+ CheckDestroy : testAccCheckHTTPSourceDestroy ,
62+ Steps : []resource.TestStep {
63+ {
64+ Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sName , sDescription , sCategory ),
65+ Check : resource .ComposeTestCheckFunc (
66+ testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
67+ testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sName , sDescription , sCategory ),
68+ resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
69+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sName ),
70+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescription ),
71+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategory ),
72+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
73+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
74+ ),
75+ },
76+ {
77+ Config : testAccSumologicGcpMetricsSourceConfig (t , cName , cDescription , cCategory , sNameUpdated , sDescriptionUpdated , sCategoryUpdated ),
78+ Check : resource .ComposeTestCheckFunc (
79+ testAccCheckGcpMetricsSourceExists (GcpMetricsResourceName , & GcpMetricsSource ),
80+ testAccCheckGcpMetricsSourceValues (& GcpMetricsSource , sNameUpdated , sDescriptionUpdated , sCategoryUpdated ),
81+ resource .TestCheckResourceAttrSet (GcpMetricsResourceName , "id" ),
82+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "name" , sNameUpdated ),
83+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "description" , sDescriptionUpdated ),
84+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "category" , sCategoryUpdated ),
85+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "content_type" , "GcpMetrics" ),
86+ resource .TestCheckResourceAttr (GcpMetricsResourceName , "path.0.type" , "GcpMetricsPath" ),
87+ ),
88+ },
8189 },
82- },
83- })
90+ })
91+ }
8492}
8593
8694func testAccCheckGcpMetricsSourceDestroy (s * terraform.State ) error {
@@ -169,23 +177,21 @@ type ServiceAccountCreds struct {
169177func getServiceAccountCreds (t * testing.T ) ServiceAccountCreds {
170178 var err error
171179 contentBytes := []byte ("" )
172- serviceAccountDetailsFileEnvName := "SUMOLOGIC_GOOGLE_APPLICATION_CREDENTIALS "
180+ serviceAccountDetailsJsonEnvName := "SUMOLOGIC_TEST_GOOGLE_APPLICATION_CREDENTIALS "
173181
174- serviceAccountDetailsFile , isEnvVarDefined := os .LookupEnv (serviceAccountDetailsFileEnvName )
182+ serviceAccountDetailsJson , isEnvVarDefined := os .LookupEnv (serviceAccountDetailsJsonEnvName )
175183 if ! isEnvVarDefined {
176- t .Fatal (fmt .Sprintf ("Environment variable %#v has to be defined" , serviceAccountDetailsFileEnvName ))
177- } else if len (serviceAccountDetailsFile ) == 0 {
178- t .Fatal (fmt .Sprintf ("Environment variable %#v can not be empty string" , serviceAccountDetailsFileEnvName ))
179- } else if _ , statErr := os .Stat (serviceAccountDetailsFile ); statErr != nil {
180- t .Fatal (fmt .Sprintf ("Environment variable %#v points to non-existing file %#v" , serviceAccountDetailsFileEnvName , serviceAccountDetailsFile ))
181- } else {
182- contentBytes , err = ioutil .ReadFile (serviceAccountDetailsFile )
184+ t .Fatal (fmt .Sprintf ("Environment variable %#v has to be defined" , serviceAccountDetailsJsonEnvName ))
185+ } else if len (serviceAccountDetailsJson ) == 0 {
186+ t .Fatal (fmt .Sprintf ("Environment variable %#v can not be empty string" , serviceAccountDetailsJsonEnvName ))
183187 }
188+
189+ contentBytes = []byte (serviceAccountDetailsJson )
190+ var serviceAccountCreds ServiceAccountCreds
191+ err = json .Unmarshal (contentBytes , & serviceAccountCreds )
184192 if err != nil {
185- t .Fatal (fmt .Sprintf ("Failed to read %#v" , serviceAccountDetailsFile ))
193+ t .Fatal (fmt .Sprintf ("Failed to parse content pointed by environment variable %#v" , serviceAccountDetailsJsonEnvName ))
186194 }
187- var serviceAccountCreds ServiceAccountCreds
188- json .Unmarshal (contentBytes , & serviceAccountCreds )
189195 return serviceAccountCreds
190196}
191197
0 commit comments