github.com/fastly/go-fastly/v5@v5.3.0/fastly/syslog_test.go (about) 1 package fastly 2 3 import ( 4 "strings" 5 "testing" 6 ) 7 8 func TestClient_Syslogs(t *testing.T) { 9 t.Parallel() 10 11 var err error 12 var tv *Version 13 record(t, "syslogs/version", func(c *Client) { 14 tv = testVersion(t, c) 15 }) 16 17 caCert := strings.TrimSpace(` 18 -----BEGIN CERTIFICATE----- 19 MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL 20 MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC 21 VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx 22 NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD 23 TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu 24 ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j 25 V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj 26 gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA 27 FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE 28 CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS 29 BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE 30 BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju 31 Wm7DCfrPNGVwFWUQOmsPue9rZBgO 32 -----END CERTIFICATE----- 33 `) 34 clientCert := strings.TrimSpace(certificate()) 35 clientKey := strings.TrimSpace(privateKey()) 36 37 // Create 38 var s *Syslog 39 record(t, "syslogs/create", func(c *Client) { 40 s, err = c.CreateSyslog(&CreateSyslogInput{ 41 ServiceID: testServiceID, 42 ServiceVersion: tv.Number, 43 Name: "test-syslog", 44 Address: "example.com", 45 Hostname: "example.com", 46 Port: 1234, 47 UseTLS: true, 48 TLSCACert: caCert, 49 TLSHostname: "example.com", 50 TLSClientCert: clientCert, 51 TLSClientKey: clientKey, 52 Token: "abcd1234", 53 Format: "format", 54 FormatVersion: 2, 55 MessageType: "classic", 56 Placement: "waf_debug", 57 }) 58 }) 59 if err != nil { 60 t.Fatal(err) 61 } 62 63 // Ensure deleted 64 defer func() { 65 record(t, "syslogs/cleanup", func(c *Client) { 66 c.DeleteSyslog(&DeleteSyslogInput{ 67 ServiceID: testServiceID, 68 ServiceVersion: tv.Number, 69 Name: "test-syslog", 70 }) 71 72 c.DeleteSyslog(&DeleteSyslogInput{ 73 ServiceID: testServiceID, 74 ServiceVersion: tv.Number, 75 Name: "new-test-syslog", 76 }) 77 }) 78 }() 79 80 if s.Name != "test-syslog" { 81 t.Errorf("bad name: %q", s.Name) 82 } 83 if s.Address != "example.com" { 84 t.Errorf("bad address: %q", s.Address) 85 } 86 if s.Hostname != "example.com" { 87 t.Errorf("bad hostname: %q", s.Hostname) 88 } 89 if s.Port != 1234 { 90 t.Errorf("bad port: %q", s.Port) 91 } 92 if s.UseTLS != true { 93 t.Errorf("bad use_tls: %t", s.UseTLS) 94 } 95 if s.TLSCACert != caCert { 96 t.Errorf("bad tls_ca_cert: %q", s.TLSCACert) 97 } 98 if s.TLSHostname != "example.com" { 99 t.Errorf("bad tls_hostname: %q", s.TLSHostname) 100 } 101 if s.TLSClientCert != clientCert { 102 t.Errorf("bad tls_client_cert: %q", s.TLSClientCert) 103 } 104 if s.TLSClientKey != clientKey { 105 t.Errorf("bad tls_client_key: %q", s.TLSClientKey) 106 } 107 if s.Token != "abcd1234" { 108 t.Errorf("bad token: %q", s.Token) 109 } 110 if s.Format != "format" { 111 t.Errorf("bad format: %q", s.Format) 112 } 113 if s.FormatVersion != 2 { 114 t.Errorf("bad format_version: %d", s.FormatVersion) 115 } 116 if s.MessageType != "classic" { 117 t.Errorf("bad message_type: %s", s.MessageType) 118 } 119 if s.Placement != "waf_debug" { 120 t.Errorf("bad placement: %q", s.Placement) 121 } 122 123 // List 124 var ss []*Syslog 125 record(t, "syslogs/list", func(c *Client) { 126 ss, err = c.ListSyslogs(&ListSyslogsInput{ 127 ServiceID: testServiceID, 128 ServiceVersion: tv.Number, 129 }) 130 }) 131 if err != nil { 132 t.Fatal(err) 133 } 134 if len(ss) < 1 { 135 t.Errorf("bad syslogs: %v", ss) 136 } 137 138 // Get 139 var ns *Syslog 140 record(t, "syslogs/get", func(c *Client) { 141 ns, err = c.GetSyslog(&GetSyslogInput{ 142 ServiceID: testServiceID, 143 ServiceVersion: tv.Number, 144 Name: "test-syslog", 145 }) 146 }) 147 if err != nil { 148 t.Fatal(err) 149 } 150 if s.Name != ns.Name { 151 t.Errorf("bad name: %q", s.Name) 152 } 153 if s.Address != ns.Address { 154 t.Errorf("bad address: %q", s.Address) 155 } 156 if s.Hostname != ns.Hostname { 157 t.Errorf("bad hostname: %q", s.Hostname) 158 } 159 if s.Port != ns.Port { 160 t.Errorf("bad port: %q", s.Port) 161 } 162 if s.UseTLS != ns.UseTLS { 163 t.Errorf("bad use_tls: %t", s.UseTLS) 164 } 165 if s.TLSCACert != ns.TLSCACert { 166 t.Errorf("bad tls_ca_cert: %q", s.TLSCACert) 167 } 168 if s.TLSHostname != ns.TLSHostname { 169 t.Errorf("bad tls_hostname: %q", s.TLSHostname) 170 } 171 if s.TLSClientCert != ns.TLSClientCert { 172 t.Errorf("bad tls_client_cert: %q", s.TLSClientCert) 173 } 174 if s.TLSClientKey != ns.TLSClientKey { 175 t.Errorf("bad tls_client_key: %q", s.TLSClientKey) 176 } 177 if s.Token != ns.Token { 178 t.Errorf("bad token: %q", s.Token) 179 } 180 if s.Format != ns.Format { 181 t.Errorf("bad format: %q", s.Format) 182 } 183 if s.FormatVersion != ns.FormatVersion { 184 t.Errorf("bad format_version: %q", s.FormatVersion) 185 } 186 if s.MessageType != ns.MessageType { 187 t.Errorf("bad message_type: %q", s.MessageType) 188 } 189 if s.Placement != ns.Placement { 190 t.Errorf("bad placement: %q", s.Placement) 191 } 192 193 // Update 194 var us *Syslog 195 record(t, "syslogs/update", func(c *Client) { 196 us, err = c.UpdateSyslog(&UpdateSyslogInput{ 197 ServiceID: testServiceID, 198 ServiceVersion: tv.Number, 199 Name: "test-syslog", 200 NewName: String("new-test-syslog"), 201 FormatVersion: Uint(2), 202 }) 203 }) 204 if err != nil { 205 t.Fatal(err) 206 } 207 if us.Name != "new-test-syslog" { 208 t.Errorf("bad name: %q", us.Name) 209 } 210 211 if us.FormatVersion != 2 { 212 t.Errorf("bad format_version: %d", us.FormatVersion) 213 } 214 215 // Delete 216 record(t, "syslogs/delete", func(c *Client) { 217 err = c.DeleteSyslog(&DeleteSyslogInput{ 218 ServiceID: testServiceID, 219 ServiceVersion: tv.Number, 220 Name: "new-test-syslog", 221 }) 222 }) 223 if err != nil { 224 t.Fatal(err) 225 } 226 } 227 228 func TestClient_ListSyslogs_validation(t *testing.T) { 229 var err error 230 _, err = testClient.ListSyslogs(&ListSyslogsInput{ 231 ServiceID: "", 232 }) 233 if err != ErrMissingServiceID { 234 t.Errorf("bad error: %s", err) 235 } 236 237 _, err = testClient.ListSyslogs(&ListSyslogsInput{ 238 ServiceID: "foo", 239 ServiceVersion: 0, 240 }) 241 if err != ErrMissingServiceVersion { 242 t.Errorf("bad error: %s", err) 243 } 244 } 245 246 func TestClient_CreateSyslog_validation(t *testing.T) { 247 var err error 248 _, err = testClient.CreateSyslog(&CreateSyslogInput{ 249 ServiceID: "", 250 }) 251 if err != ErrMissingServiceID { 252 t.Errorf("bad error: %s", err) 253 } 254 255 _, err = testClient.CreateSyslog(&CreateSyslogInput{ 256 ServiceID: "foo", 257 ServiceVersion: 0, 258 }) 259 if err != ErrMissingServiceVersion { 260 t.Errorf("bad error: %s", err) 261 } 262 } 263 264 func TestClient_GetSyslog_validation(t *testing.T) { 265 var err error 266 _, err = testClient.GetSyslog(&GetSyslogInput{ 267 ServiceID: "", 268 }) 269 if err != ErrMissingServiceID { 270 t.Errorf("bad error: %s", err) 271 } 272 273 _, err = testClient.GetSyslog(&GetSyslogInput{ 274 ServiceID: "foo", 275 ServiceVersion: 0, 276 }) 277 if err != ErrMissingServiceVersion { 278 t.Errorf("bad error: %s", err) 279 } 280 281 _, err = testClient.GetSyslog(&GetSyslogInput{ 282 ServiceID: "foo", 283 ServiceVersion: 1, 284 Name: "", 285 }) 286 if err != ErrMissingName { 287 t.Errorf("bad error: %s", err) 288 } 289 } 290 291 func TestClient_UpdateSyslog_validation(t *testing.T) { 292 var err error 293 _, err = testClient.UpdateSyslog(&UpdateSyslogInput{ 294 ServiceID: "", 295 }) 296 if err != ErrMissingServiceID { 297 t.Errorf("bad error: %s", err) 298 } 299 300 _, err = testClient.UpdateSyslog(&UpdateSyslogInput{ 301 ServiceID: "foo", 302 ServiceVersion: 0, 303 }) 304 if err != ErrMissingServiceVersion { 305 t.Errorf("bad error: %s", err) 306 } 307 308 _, err = testClient.UpdateSyslog(&UpdateSyslogInput{ 309 ServiceID: "foo", 310 ServiceVersion: 1, 311 Name: "", 312 }) 313 if err != ErrMissingName { 314 t.Errorf("bad error: %s", err) 315 } 316 } 317 318 func TestClient_DeleteSyslog_validation(t *testing.T) { 319 var err error 320 err = testClient.DeleteSyslog(&DeleteSyslogInput{ 321 ServiceID: "", 322 }) 323 if err != ErrMissingServiceID { 324 t.Errorf("bad error: %s", err) 325 } 326 327 err = testClient.DeleteSyslog(&DeleteSyslogInput{ 328 ServiceID: "foo", 329 ServiceVersion: 0, 330 }) 331 if err != ErrMissingServiceVersion { 332 t.Errorf("bad error: %s", err) 333 } 334 335 err = testClient.DeleteSyslog(&DeleteSyslogInput{ 336 ServiceID: "foo", 337 ServiceVersion: 1, 338 Name: "", 339 }) 340 if err != ErrMissingName { 341 t.Errorf("bad error: %s", err) 342 } 343 }