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

     1  package fastly
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestClient_NewRelic(t *testing.T) {
     8  	t.Parallel()
     9  
    10  	var err error
    11  	var tv *Version
    12  	record(t, "newrelic/version", func(c *Client) {
    13  		tv = testVersion(t, c)
    14  	})
    15  
    16  	// Create
    17  	var newRelicResp1, newRelicResp2 *NewRelic
    18  	record(t, "newrelic/create", func(c *Client) {
    19  		newRelicResp1, err = c.CreateNewRelic(&CreateNewRelicInput{
    20  			ServiceID:      testServiceID,
    21  			ServiceVersion: tv.Number,
    22  			Name:           "test-newrelic",
    23  			Token:          "abcd1234",
    24  			Format:         "format",
    25  			Placement:      "waf_debug",
    26  			Region:         "us",
    27  		})
    28  	})
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  
    33  	record(t, "newrelic/create2", func(c *Client) {
    34  		newRelicResp2, err = c.CreateNewRelic(&CreateNewRelicInput{
    35  			ServiceID:      testServiceID,
    36  			ServiceVersion: tv.Number,
    37  			Name:           "test-newrelic-2",
    38  			Token:          "abcd1234",
    39  			Format:         "format",
    40  			Placement:      "waf_debug",
    41  			Region:         "eu",
    42  		})
    43  	})
    44  	if err != nil {
    45  		t.Fatal(err)
    46  	}
    47  
    48  	// This case is expected to fail due to an invalid region
    49  	record(t, "newrelic/create3", func(c *Client) {
    50  		_, err = c.CreateNewRelic(&CreateNewRelicInput{
    51  			ServiceID:      testServiceID,
    52  			ServiceVersion: tv.Number,
    53  			Name:           "test-newrelic-3",
    54  			Token:          "abcd1234",
    55  			Format:         "format",
    56  			Placement:      "waf_debug",
    57  			Region:         "abc",
    58  		})
    59  	})
    60  	if err == nil {
    61  		t.Fatal(err)
    62  	}
    63  
    64  	// Ensure deleted
    65  	defer func() {
    66  		record(t, "newrelic/delete", func(c *Client) {
    67  			c.DeleteNewRelic(&DeleteNewRelicInput{
    68  				ServiceID:      testServiceID,
    69  				ServiceVersion: tv.Number,
    70  				Name:           "test-newrelic",
    71  			})
    72  
    73  			c.DeleteNewRelic(&DeleteNewRelicInput{
    74  				ServiceID:      testServiceID,
    75  				ServiceVersion: tv.Number,
    76  				Name:           "test-newrelic-2",
    77  			})
    78  
    79  			c.DeleteNewRelic(&DeleteNewRelicInput{
    80  				ServiceID:      testServiceID,
    81  				ServiceVersion: tv.Number,
    82  				Name:           "new-test-newrelic",
    83  			})
    84  		})
    85  	}()
    86  
    87  	if newRelicResp1.Name != "test-newrelic" {
    88  		t.Errorf("bad name: %q", newRelicResp1.Name)
    89  	}
    90  	if newRelicResp1.Token != "abcd1234" {
    91  		t.Errorf("bad token: %q", newRelicResp1.Token)
    92  	}
    93  	if newRelicResp1.Format != "format" {
    94  		t.Errorf("bad format: %q", newRelicResp1.Format)
    95  	}
    96  	if newRelicResp1.FormatVersion != 2 {
    97  		t.Errorf("bad format_version: %q", newRelicResp1.FormatVersion)
    98  	}
    99  	if newRelicResp1.Placement != "waf_debug" {
   100  		t.Errorf("bad placement: %q", newRelicResp1.Placement)
   101  	}
   102  	if newRelicResp1.Region != "us" {
   103  		t.Errorf("bad region: %q", newRelicResp1.Region)
   104  	}
   105  
   106  	if newRelicResp2.Name != "test-newrelic-2" {
   107  		t.Errorf("bad name: %q", newRelicResp2.Name)
   108  	}
   109  	if newRelicResp2.Token != "abcd1234" {
   110  		t.Errorf("bad token: %q", newRelicResp2.Token)
   111  	}
   112  	if newRelicResp2.Format != "format" {
   113  		t.Errorf("bad format: %q", newRelicResp2.Format)
   114  	}
   115  	if newRelicResp2.FormatVersion != 2 {
   116  		t.Errorf("bad format_version: %q", newRelicResp2.FormatVersion)
   117  	}
   118  	if newRelicResp2.Placement != "waf_debug" {
   119  		t.Errorf("bad placement: %q", newRelicResp2.Placement)
   120  	}
   121  	if newRelicResp2.Region != "eu" {
   122  		t.Errorf("bad region: %q", newRelicResp2.Region)
   123  	}
   124  
   125  	// List
   126  	var ln []*NewRelic
   127  	record(t, "newrelic/list", func(c *Client) {
   128  		ln, err = c.ListNewRelic(&ListNewRelicInput{
   129  			ServiceID:      testServiceID,
   130  			ServiceVersion: tv.Number,
   131  		})
   132  	})
   133  	if err != nil {
   134  		t.Fatal(err)
   135  	}
   136  	if len(ln) < 1 {
   137  		t.Errorf("bad newrelics: %v", ln)
   138  	}
   139  
   140  	// Get
   141  	var newRelicGetResp, newRelicGetResp2 *NewRelic
   142  	record(t, "newrelic/get", func(c *Client) {
   143  		newRelicGetResp, err = c.GetNewRelic(&GetNewRelicInput{
   144  			ServiceID:      testServiceID,
   145  			ServiceVersion: tv.Number,
   146  			Name:           "test-newrelic",
   147  		})
   148  	})
   149  	if err != nil {
   150  		t.Fatal(err)
   151  	}
   152  
   153  	record(t, "newrelic/get2", func(c *Client) {
   154  		newRelicGetResp2, err = c.GetNewRelic(&GetNewRelicInput{
   155  			ServiceID:      testServiceID,
   156  			ServiceVersion: tv.Number,
   157  			Name:           "test-newrelic-2",
   158  		})
   159  	})
   160  	if err != nil {
   161  		t.Fatal(err)
   162  	}
   163  
   164  	if newRelicResp1.Name != newRelicGetResp.Name {
   165  		t.Errorf("bad name: %q", newRelicResp1.Name)
   166  	}
   167  	if newRelicResp1.Token != newRelicGetResp.Token {
   168  		t.Errorf("bad token: %q", newRelicResp1.Token)
   169  	}
   170  	if newRelicResp1.Format != newRelicGetResp.Format {
   171  		t.Errorf("bad format: %q", newRelicResp1.Format)
   172  	}
   173  	if newRelicResp1.FormatVersion != newRelicGetResp.FormatVersion {
   174  		t.Errorf("bad format_version: %q", newRelicResp1.FormatVersion)
   175  	}
   176  	if newRelicResp1.Placement != newRelicGetResp.Placement {
   177  		t.Errorf("bad placement: %q", newRelicResp1.Placement)
   178  	}
   179  	if newRelicResp1.Region != newRelicGetResp.Region {
   180  		t.Errorf("bad region: %q", newRelicResp1.Region)
   181  	}
   182  
   183  	if newRelicResp2.Name != newRelicGetResp2.Name {
   184  		t.Errorf("bad name: %q", newRelicResp2.Name)
   185  	}
   186  	if newRelicResp2.Token != newRelicGetResp2.Token {
   187  		t.Errorf("bad token: %q", newRelicResp2.Token)
   188  	}
   189  	if newRelicResp2.Format != newRelicGetResp2.Format {
   190  		t.Errorf("bad format: %q", newRelicResp2.Format)
   191  	}
   192  	if newRelicResp2.FormatVersion != newRelicGetResp2.FormatVersion {
   193  		t.Errorf("bad format_version: %q", newRelicResp2.FormatVersion)
   194  	}
   195  	if newRelicResp2.Placement != newRelicGetResp2.Placement {
   196  		t.Errorf("bad placement: %q", newRelicResp2.Placement)
   197  	}
   198  	if newRelicResp2.Region != newRelicGetResp2.Region {
   199  		t.Errorf("bad region: %q", newRelicResp2.Region)
   200  	}
   201  
   202  	// Update
   203  	var newRelicUpdateResp1 *NewRelic
   204  	record(t, "newrelic/update", func(c *Client) {
   205  		newRelicUpdateResp1, err = c.UpdateNewRelic(&UpdateNewRelicInput{
   206  			ServiceID:      testServiceID,
   207  			ServiceVersion: tv.Number,
   208  			Name:           "test-newrelic",
   209  			NewName:        String("new-test-newrelic"),
   210  			FormatVersion:  Uint(2),
   211  			Region:         String("eu"),
   212  		})
   213  	})
   214  	if err != nil {
   215  		t.Fatal(err)
   216  	}
   217  
   218  	// This case is expected to fail due to an invalid region.
   219  	record(t, "newrelic/update2", func(c *Client) {
   220  		_, err = c.UpdateNewRelic(&UpdateNewRelicInput{
   221  			ServiceID:      testServiceID,
   222  			ServiceVersion: tv.Number,
   223  			Name:           "new-test-newrelic",
   224  			Region:         String("zz"),
   225  		})
   226  	})
   227  	if err == nil {
   228  		t.Fatal(err)
   229  	}
   230  
   231  	if newRelicUpdateResp1.Name != "new-test-newrelic" {
   232  		t.Errorf("bad name: %q", newRelicUpdateResp1.Name)
   233  	}
   234  	if newRelicUpdateResp1.FormatVersion != 2 {
   235  		t.Errorf("bad format_version: %q", newRelicUpdateResp1.FormatVersion)
   236  	}
   237  	if newRelicUpdateResp1.Region != "eu" {
   238  		t.Errorf("bad region: %q", newRelicUpdateResp1.Region)
   239  	}
   240  
   241  	// Delete
   242  	record(t, "newrelic/delete", func(c *Client) {
   243  		err = c.DeleteNewRelic(&DeleteNewRelicInput{
   244  			ServiceID:      testServiceID,
   245  			ServiceVersion: tv.Number,
   246  			Name:           "new-test-newrelic",
   247  		})
   248  	})
   249  	if err != nil {
   250  		t.Fatal(err)
   251  	}
   252  }
   253  
   254  func TestClient_ListNewRelic_validation(t *testing.T) {
   255  	var err error
   256  	_, err = testClient.ListNewRelic(&ListNewRelicInput{
   257  		ServiceID: "",
   258  	})
   259  	if err != ErrMissingServiceID {
   260  		t.Errorf("bad error: %s", err)
   261  	}
   262  
   263  	_, err = testClient.ListNewRelic(&ListNewRelicInput{
   264  		ServiceID:      "foo",
   265  		ServiceVersion: 0,
   266  	})
   267  	if err != ErrMissingServiceVersion {
   268  		t.Errorf("bad error: %s", err)
   269  	}
   270  }
   271  
   272  func TestClient_CreateNewRelic_validation(t *testing.T) {
   273  	var err error
   274  	_, err = testClient.CreateNewRelic(&CreateNewRelicInput{
   275  		ServiceID: "",
   276  	})
   277  	if err != ErrMissingServiceID {
   278  		t.Errorf("bad error: %s", err)
   279  	}
   280  
   281  	_, err = testClient.CreateNewRelic(&CreateNewRelicInput{
   282  		ServiceID:      "foo",
   283  		ServiceVersion: 0,
   284  	})
   285  	if err != ErrMissingServiceVersion {
   286  		t.Errorf("bad error: %s", err)
   287  	}
   288  }
   289  
   290  func TestClient_GetNewRelic_validation(t *testing.T) {
   291  	var err error
   292  	_, err = testClient.GetNewRelic(&GetNewRelicInput{
   293  		ServiceID: "",
   294  	})
   295  	if err != ErrMissingServiceID {
   296  		t.Errorf("bad error: %s", err)
   297  	}
   298  
   299  	_, err = testClient.GetNewRelic(&GetNewRelicInput{
   300  		ServiceID:      "foo",
   301  		ServiceVersion: 0,
   302  	})
   303  	if err != ErrMissingServiceVersion {
   304  		t.Errorf("bad error: %s", err)
   305  	}
   306  
   307  	_, err = testClient.GetNewRelic(&GetNewRelicInput{
   308  		ServiceID:      "foo",
   309  		ServiceVersion: 1,
   310  		Name:           "",
   311  	})
   312  	if err != ErrMissingName {
   313  		t.Errorf("bad error: %s", err)
   314  	}
   315  }
   316  
   317  func TestClient_UpdateNewRelic_validation(t *testing.T) {
   318  	var err error
   319  	_, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{
   320  		ServiceID: "",
   321  	})
   322  	if err != ErrMissingServiceID {
   323  		t.Errorf("bad error: %s", err)
   324  	}
   325  
   326  	_, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{
   327  		ServiceID:      "foo",
   328  		ServiceVersion: 0,
   329  	})
   330  	if err != ErrMissingServiceVersion {
   331  		t.Errorf("bad error: %s", err)
   332  	}
   333  
   334  	_, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{
   335  		ServiceID:      "foo",
   336  		ServiceVersion: 1,
   337  		Name:           "",
   338  	})
   339  	if err != ErrMissingName {
   340  		t.Errorf("bad error: %s", err)
   341  	}
   342  }
   343  
   344  func TestClient_DeleteNewRelic_validation(t *testing.T) {
   345  	var err error
   346  	err = testClient.DeleteNewRelic(&DeleteNewRelicInput{
   347  		ServiceID: "",
   348  	})
   349  	if err != ErrMissingServiceID {
   350  		t.Errorf("bad error: %s", err)
   351  	}
   352  
   353  	err = testClient.DeleteNewRelic(&DeleteNewRelicInput{
   354  		ServiceID:      "foo",
   355  		ServiceVersion: 0,
   356  	})
   357  	if err != ErrMissingServiceVersion {
   358  		t.Errorf("bad error: %s", err)
   359  	}
   360  
   361  	err = testClient.DeleteNewRelic(&DeleteNewRelicInput{
   362  		ServiceID:      "foo",
   363  		ServiceVersion: 1,
   364  		Name:           "",
   365  	})
   366  	if err != ErrMissingName {
   367  		t.Errorf("bad error: %s", err)
   368  	}
   369  }