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  }