github.com/fastly/go-fastly/v6@v6.8.0/fastly/backend_test.go (about)

     1  package fastly
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestClient_Backends(t *testing.T) {
     8  	t.Parallel()
     9  
    10  	var err error
    11  	var tv *Version
    12  	record(t, "backends/version", func(c *Client) {
    13  		tv = testVersion(t, c)
    14  	})
    15  
    16  	// Create
    17  	var b *Backend
    18  	record(t, "backends/create", func(c *Client) {
    19  		b, err = c.CreateBackend(&CreateBackendInput{
    20  			ServiceID:      testServiceID,
    21  			ServiceVersion: tv.Number,
    22  			Name:           "test-backend",
    23  			Address:        "integ-test.go-fastly.com",
    24  			Port:           Uint(1234),
    25  			ConnectTimeout: Uint(1500),
    26  			OverrideHost:   "origin.example.com",
    27  			SSLCiphers:     "DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:AES256-GCM-SHA384",
    28  		})
    29  	})
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	// Ensure deleted
    35  	defer func() {
    36  		record(t, "backends/cleanup", func(c *Client) {
    37  			c.DeleteBackend(&DeleteBackendInput{
    38  				ServiceID:      testServiceID,
    39  				ServiceVersion: tv.Number,
    40  				Name:           "test-backend",
    41  			})
    42  
    43  			c.DeleteBackend(&DeleteBackendInput{
    44  				ServiceID:      testServiceID,
    45  				ServiceVersion: tv.Number,
    46  				Name:           "new-test-backend",
    47  			})
    48  		})
    49  	}()
    50  
    51  	if b.Name != "test-backend" {
    52  		t.Errorf("bad name: %q", b.Name)
    53  	}
    54  	if b.Address != "integ-test.go-fastly.com" {
    55  		t.Errorf("bad address: %q", b.Address)
    56  	}
    57  	if b.Port != 1234 {
    58  		t.Errorf("bad port: %d", b.Port)
    59  	}
    60  	if b.ConnectTimeout != 1500 {
    61  		t.Errorf("bad connect_timeout: %d", b.ConnectTimeout)
    62  	}
    63  	if b.OverrideHost != "origin.example.com" {
    64  		t.Errorf("bad override_host: %q", b.OverrideHost)
    65  	}
    66  
    67  	// List
    68  	var bs []*Backend
    69  	record(t, "backends/list", func(c *Client) {
    70  		bs, err = c.ListBackends(&ListBackendsInput{
    71  			ServiceID:      testServiceID,
    72  			ServiceVersion: tv.Number,
    73  		})
    74  	})
    75  	if err != nil {
    76  		t.Fatal(err)
    77  	}
    78  	if len(bs) < 1 {
    79  		t.Errorf("bad backends: %v", bs)
    80  	}
    81  
    82  	// Get
    83  	var nb *Backend
    84  	record(t, "backends/get", func(c *Client) {
    85  		nb, err = c.GetBackend(&GetBackendInput{
    86  			ServiceID:      testServiceID,
    87  			ServiceVersion: tv.Number,
    88  			Name:           "test-backend",
    89  		})
    90  	})
    91  	if err != nil {
    92  		t.Fatal(err)
    93  	}
    94  	if b.Name != nb.Name {
    95  		t.Errorf("bad name: %q (%q)", b.Name, nb.Name)
    96  	}
    97  	if b.Address != nb.Address {
    98  		t.Errorf("bad address: %q (%q)", b.Address, nb.Address)
    99  	}
   100  	if b.Port != nb.Port {
   101  		t.Errorf("bad port: %q (%q)", b.Port, nb.Port)
   102  	}
   103  	if b.ConnectTimeout != nb.ConnectTimeout {
   104  		t.Errorf("bad connect_timeout: %q (%q)", b.ConnectTimeout, nb.ConnectTimeout)
   105  	}
   106  	if b.OverrideHost != nb.OverrideHost {
   107  		t.Errorf("bad override_host: %q (%q)", b.OverrideHost, nb.OverrideHost)
   108  	}
   109  
   110  	// Update
   111  	var ub *Backend
   112  	record(t, "backends/update", func(c *Client) {
   113  		ub, err = c.UpdateBackend(&UpdateBackendInput{
   114  			ServiceID:      testServiceID,
   115  			ServiceVersion: tv.Number,
   116  			Name:           "test-backend",
   117  			NewName:        String("new-test-backend"),
   118  			OverrideHost:   String("www.example.com"),
   119  			SSLCiphers:     "RC4:!COMPLEMENTOFDEFAULT",
   120  		})
   121  	})
   122  	if err != nil {
   123  		t.Fatal(err)
   124  	}
   125  	if ub.Name != "new-test-backend" {
   126  		t.Errorf("bad name: %q", ub.Name)
   127  	}
   128  	if ub.OverrideHost != "www.example.com" {
   129  		t.Errorf("bad override_host: %q", ub.OverrideHost)
   130  	}
   131  
   132  	// Delete
   133  	record(t, "backends/delete", func(c *Client) {
   134  		err = c.DeleteBackend(&DeleteBackendInput{
   135  			ServiceID:      testServiceID,
   136  			ServiceVersion: tv.Number,
   137  			Name:           "new-test-backend",
   138  		})
   139  	})
   140  	if err != nil {
   141  		t.Fatal(err)
   142  	}
   143  }
   144  
   145  func TestClient_ListBackends_validation(t *testing.T) {
   146  	var err error
   147  	_, err = testClient.ListBackends(&ListBackendsInput{
   148  		ServiceID: "",
   149  	})
   150  	if err != ErrMissingServiceID {
   151  		t.Errorf("bad error: %s", err)
   152  	}
   153  
   154  	_, err = testClient.ListBackends(&ListBackendsInput{
   155  		ServiceID:      "foo",
   156  		ServiceVersion: 0,
   157  	})
   158  	if err != ErrMissingServiceVersion {
   159  		t.Errorf("bad error: %s", err)
   160  	}
   161  }
   162  
   163  func TestClient_CreateBackend_validation(t *testing.T) {
   164  	var err error
   165  	_, err = testClient.CreateBackend(&CreateBackendInput{
   166  		ServiceID: "",
   167  	})
   168  	if err != ErrMissingServiceID {
   169  		t.Errorf("bad error: %s", err)
   170  	}
   171  
   172  	_, err = testClient.CreateBackend(&CreateBackendInput{
   173  		ServiceID:      "foo",
   174  		ServiceVersion: 0,
   175  	})
   176  	if err != ErrMissingServiceVersion {
   177  		t.Errorf("bad error: %s", err)
   178  	}
   179  }
   180  
   181  func TestClient_GetBackend_validation(t *testing.T) {
   182  	var err error
   183  	_, err = testClient.GetBackend(&GetBackendInput{
   184  		ServiceID: "",
   185  	})
   186  	if err != ErrMissingServiceID {
   187  		t.Errorf("bad error: %s", err)
   188  	}
   189  
   190  	_, err = testClient.GetBackend(&GetBackendInput{
   191  		ServiceID:      "foo",
   192  		ServiceVersion: 0,
   193  	})
   194  	if err != ErrMissingServiceVersion {
   195  		t.Errorf("bad error: %s", err)
   196  	}
   197  
   198  	_, err = testClient.GetBackend(&GetBackendInput{
   199  		ServiceID:      "foo",
   200  		ServiceVersion: 1,
   201  		Name:           "",
   202  	})
   203  	if err != ErrMissingName {
   204  		t.Errorf("bad error: %s", err)
   205  	}
   206  }
   207  
   208  func TestClient_UpdateBackend_validation(t *testing.T) {
   209  	var err error
   210  	_, err = testClient.UpdateBackend(&UpdateBackendInput{
   211  		ServiceID: "",
   212  	})
   213  	if err != ErrMissingServiceID {
   214  		t.Errorf("bad error: %s", err)
   215  	}
   216  
   217  	_, err = testClient.UpdateBackend(&UpdateBackendInput{
   218  		ServiceID:      "foo",
   219  		ServiceVersion: 0,
   220  	})
   221  	if err != ErrMissingServiceVersion {
   222  		t.Errorf("bad error: %s", err)
   223  	}
   224  
   225  	_, err = testClient.UpdateBackend(&UpdateBackendInput{
   226  		ServiceID:      "foo",
   227  		ServiceVersion: 1,
   228  		Name:           "",
   229  	})
   230  	if err != ErrMissingName {
   231  		t.Errorf("bad error: %s", err)
   232  	}
   233  }
   234  
   235  func TestClient_DeleteBackend_validation(t *testing.T) {
   236  	var err error
   237  	err = testClient.DeleteBackend(&DeleteBackendInput{
   238  		ServiceID: "",
   239  	})
   240  	if err != ErrMissingServiceID {
   241  		t.Errorf("bad error: %s", err)
   242  	}
   243  
   244  	err = testClient.DeleteBackend(&DeleteBackendInput{
   245  		ServiceID:      "foo",
   246  		ServiceVersion: 0,
   247  	})
   248  	if err != ErrMissingServiceVersion {
   249  		t.Errorf("bad error: %s", err)
   250  	}
   251  
   252  	err = testClient.DeleteBackend(&DeleteBackendInput{
   253  		ServiceID:      "foo",
   254  		ServiceVersion: 1,
   255  		Name:           "",
   256  	})
   257  	if err != ErrMissingName {
   258  		t.Errorf("bad error: %s", err)
   259  	}
   260  }