github.com/fastly/go-fastly@v1.18.0/fastly/backend_test.go (about)

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