github.com/fastly/go-fastly/v5@v5.3.0/fastly/pubsub_test.go (about)

     1  package fastly
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  )
     7  
     8  func TestClient_Pubsubs(t *testing.T) {
     9  	t.Parallel()
    10  
    11  	var err error
    12  	var tv *Version
    13  	record(t, "pubsubs/version", func(c *Client) {
    14  		tv = testVersion(t, c)
    15  	})
    16  
    17  	// Create
    18  	var pubsub *Pubsub
    19  	record(t, "pubsubs/create", func(c *Client) {
    20  		pubsub, err = c.CreatePubsub(&CreatePubsubInput{
    21  			ServiceID:      testServiceID,
    22  			ServiceVersion: tv.Number,
    23  			Name:           "test-pubsub",
    24  			Topic:          "topic",
    25  			User:           "user",
    26  			SecretKey:      "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9aQoqdHVA86oq\nTdRQ5HqwMfpiLBBMKNQcAJsO71RKNrDWwJJZiyYbvM4FOWRZFtRSdPIDgX0C0Wg1\nNnqWYvHDyA5Ug+T8kowiQDn56dU6Km2FWO4wnqZeA8q5G7rQVXlqdibuiP7FglHA\neURUzFsqyymXMUGrqDPqrHsVWC2E3NTJEb4QlywtrwI13qbhlvTx6/9oRfUjytXJ\nRuUIE5xL8yhRCagNr5ZW250aa+wBwu5DSCk5fDNr0eDuZjw84WHDll+mHxBFGV+X\nKJ5jCOmGumGqjVWZesJpNN1My3M9bsY9layNJJ0eiDeHDEi/yXhhO/mNEXhvhq/R\nfN0Jh2A3AgMBAAECggEAef+CEL5aF6/aVs0yh7fiXkKSp1ECXkud8ztgpEn63KJF\nXM1EdnBt50fA2xSQUeGmeEXi6+cngf0nRb8FToAEgLoGoOEjSJuLrzP3I8U9Fe3m\nBRG2uZI2Ti/bD0eRGEc1oSDhCpsqnkTGK1bwcD4AKpwY+c08Izh/2BOoY6McDoqh\ndQ89jzTuMtD4cNlnPiIrY9HbxoNjshK2ax1OaeXyYKZFG1TxqMFv5gA/G5+S3Cwr\nVG4fkAxYi5vdIK3b8jUXrTM/kpoTl+d3dlQ7rRZYf7KyT31/HtJ/GNzxFI6upzO7\niDNrrUOyeOPjWXdzUh9budv3j+6UfbYK7uZIoebHIQKBgQDykYX1L/akGaOC2tfS\njzCWUzPxGFYVZQ7zD1PM6UyouuS1KLURDEGk9RxqVzTPh/pYd8Ivnz3vOVski5Zt\n19ozLGxdtDhn122DcnVpfCdYzHBdAzPCzORenFohX+MhiX5fEotTlVi7wfOmzTP5\nhUCMSd/17bJrV4XMLhkdrMRBFQKBgQDH5fwV7o+Ej/ZfcdGIa3mAFazToPDzxhHU\nnwADxaxpNGKRU03XCaiYkykarLYdG6Rk+7dXUv8eLy+6Dcq1SWQtfCWKEor++IIp\n1RwWmFHfYriHGkmxSkkEkLFvL8old9xM5YWbEXc4QIXvnfR4BZxdyJHVzIDdbI2i\nFgcn17U3GwKBgDd1njMY7ENIuWHJt16k7m7wRwfwkH4DxQ89ieNn0+cgE/p3fC6R\nptCYWg7WMXThmhNwDi3lMrvnWTdZ0uL6XyEkHwKtmdfkIV3UZZPglv5uf6JEgSkg\nv3YCOXk3+y5HyWTjUIejtc334kVY1XFPThrFKTeJSSnRsP2l7IgkYBqhAoGAYGsr\nM3z1FrDF2nWw5odIfKJ30UAw2LRyB0eGH0uqhLgyzvwKcK2E98sLqYUi9llN6zOK\n1IEA8xM5hxl97AFxY4sdJEMbbi55wim7uZ5Q51nbvbbNUsmM/Lm6C/JWI8pzpVeU\nIR7EjYp50AE1WOsD6CyFQ0W35pWkn0jWvL4L938CgYEAlax4dLE5+YCG5DeLT1/N\nin6kQjl7JS4oCNlPEj6aRPLX2OJresI7oOn+uNatKvlVyfPm6rdxeHCmER1FpR7Q\nA/aNVjPeViKT/R4nK9ytsa+s/1IJVrwLFHJK3toGE660g5w3vKrCjWisMdP4yzzQ\nbv1KwcKoQbNVXwauH79JKc0=\n-----END PRIVATE KEY-----\n",
    27  			ProjectID:      "project-id",
    28  			FormatVersion:  2,
    29  			Format:         "format",
    30  			Placement:      "waf_debug",
    31  		})
    32  	})
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  
    37  	// Ensure deleted
    38  	defer func() {
    39  		record(t, "pubsubs/cleanup", func(c *Client) {
    40  			c.DeletePubsub(&DeletePubsubInput{
    41  				ServiceID:      testServiceID,
    42  				ServiceVersion: tv.Number,
    43  				Name:           "test-pubsub",
    44  			})
    45  
    46  			c.DeletePubsub(&DeletePubsubInput{
    47  				ServiceID:      testServiceID,
    48  				ServiceVersion: tv.Number,
    49  				Name:           "new-test-pubsub",
    50  			})
    51  		})
    52  	}()
    53  
    54  	if pubsub.Name != "test-pubsub" {
    55  		t.Errorf("bad name: %q", pubsub.Name)
    56  	}
    57  	if pubsub.Topic != "topic" {
    58  		t.Errorf("bad topic: %q", pubsub.Topic)
    59  	}
    60  	if pubsub.User != "user" {
    61  		t.Errorf("bad user: %q", pubsub.User)
    62  	}
    63  	if strings.TrimSpace(pubsub.SecretKey) != `-----BEGIN PRIVATE KEY-----
    64  MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9aQoqdHVA86oq
    65  TdRQ5HqwMfpiLBBMKNQcAJsO71RKNrDWwJJZiyYbvM4FOWRZFtRSdPIDgX0C0Wg1
    66  NnqWYvHDyA5Ug+T8kowiQDn56dU6Km2FWO4wnqZeA8q5G7rQVXlqdibuiP7FglHA
    67  eURUzFsqyymXMUGrqDPqrHsVWC2E3NTJEb4QlywtrwI13qbhlvTx6/9oRfUjytXJ
    68  RuUIE5xL8yhRCagNr5ZW250aa+wBwu5DSCk5fDNr0eDuZjw84WHDll+mHxBFGV+X
    69  KJ5jCOmGumGqjVWZesJpNN1My3M9bsY9layNJJ0eiDeHDEi/yXhhO/mNEXhvhq/R
    70  fN0Jh2A3AgMBAAECggEAef+CEL5aF6/aVs0yh7fiXkKSp1ECXkud8ztgpEn63KJF
    71  XM1EdnBt50fA2xSQUeGmeEXi6+cngf0nRb8FToAEgLoGoOEjSJuLrzP3I8U9Fe3m
    72  BRG2uZI2Ti/bD0eRGEc1oSDhCpsqnkTGK1bwcD4AKpwY+c08Izh/2BOoY6McDoqh
    73  dQ89jzTuMtD4cNlnPiIrY9HbxoNjshK2ax1OaeXyYKZFG1TxqMFv5gA/G5+S3Cwr
    74  VG4fkAxYi5vdIK3b8jUXrTM/kpoTl+d3dlQ7rRZYf7KyT31/HtJ/GNzxFI6upzO7
    75  iDNrrUOyeOPjWXdzUh9budv3j+6UfbYK7uZIoebHIQKBgQDykYX1L/akGaOC2tfS
    76  jzCWUzPxGFYVZQ7zD1PM6UyouuS1KLURDEGk9RxqVzTPh/pYd8Ivnz3vOVski5Zt
    77  19ozLGxdtDhn122DcnVpfCdYzHBdAzPCzORenFohX+MhiX5fEotTlVi7wfOmzTP5
    78  hUCMSd/17bJrV4XMLhkdrMRBFQKBgQDH5fwV7o+Ej/ZfcdGIa3mAFazToPDzxhHU
    79  nwADxaxpNGKRU03XCaiYkykarLYdG6Rk+7dXUv8eLy+6Dcq1SWQtfCWKEor++IIp
    80  1RwWmFHfYriHGkmxSkkEkLFvL8old9xM5YWbEXc4QIXvnfR4BZxdyJHVzIDdbI2i
    81  Fgcn17U3GwKBgDd1njMY7ENIuWHJt16k7m7wRwfwkH4DxQ89ieNn0+cgE/p3fC6R
    82  ptCYWg7WMXThmhNwDi3lMrvnWTdZ0uL6XyEkHwKtmdfkIV3UZZPglv5uf6JEgSkg
    83  v3YCOXk3+y5HyWTjUIejtc334kVY1XFPThrFKTeJSSnRsP2l7IgkYBqhAoGAYGsr
    84  M3z1FrDF2nWw5odIfKJ30UAw2LRyB0eGH0uqhLgyzvwKcK2E98sLqYUi9llN6zOK
    85  1IEA8xM5hxl97AFxY4sdJEMbbi55wim7uZ5Q51nbvbbNUsmM/Lm6C/JWI8pzpVeU
    86  IR7EjYp50AE1WOsD6CyFQ0W35pWkn0jWvL4L938CgYEAlax4dLE5+YCG5DeLT1/N
    87  in6kQjl7JS4oCNlPEj6aRPLX2OJresI7oOn+uNatKvlVyfPm6rdxeHCmER1FpR7Q
    88  A/aNVjPeViKT/R4nK9ytsa+s/1IJVrwLFHJK3toGE660g5w3vKrCjWisMdP4yzzQ
    89  bv1KwcKoQbNVXwauH79JKc0=
    90  -----END PRIVATE KEY-----` {
    91  		t.Errorf("bad secret_key: %q", pubsub.SecretKey)
    92  	}
    93  	if pubsub.ProjectID != "project-id" {
    94  		t.Errorf("bad project_id: %q", pubsub.ProjectID)
    95  	}
    96  	if pubsub.FormatVersion != 2 {
    97  		t.Errorf("bad format_version: %q", pubsub.FormatVersion)
    98  	}
    99  	if pubsub.Format != "format" {
   100  		t.Errorf("bad format: %q", pubsub.Format)
   101  	}
   102  	if pubsub.Placement != "waf_debug" {
   103  		t.Errorf("bad placement: %q", pubsub.Placement)
   104  	}
   105  
   106  	// List
   107  	var pubsubs []*Pubsub
   108  	record(t, "pubsubs/list", func(c *Client) {
   109  		pubsubs, err = c.ListPubsubs(&ListPubsubsInput{
   110  			ServiceID:      testServiceID,
   111  			ServiceVersion: tv.Number,
   112  		})
   113  	})
   114  	if err != nil {
   115  		t.Fatal(err)
   116  	}
   117  	if len(pubsubs) < 1 {
   118  		t.Errorf("bad pubsubs: %v", pubsubs)
   119  	}
   120  
   121  	// Get
   122  	var npubsub *Pubsub
   123  	record(t, "pubsubs/get", func(c *Client) {
   124  		npubsub, err = c.GetPubsub(&GetPubsubInput{
   125  			ServiceID:      testServiceID,
   126  			ServiceVersion: tv.Number,
   127  			Name:           "test-pubsub",
   128  		})
   129  	})
   130  	if err != nil {
   131  		t.Fatal(err)
   132  	}
   133  	if pubsub.Name != npubsub.Name {
   134  		t.Errorf("bad name: %q", pubsub.Name)
   135  	}
   136  	if pubsub.Topic != npubsub.Topic {
   137  		t.Errorf("bad topic: %q", pubsub.Topic)
   138  	}
   139  	if pubsub.User != npubsub.User {
   140  		t.Errorf("bad user: %q", pubsub.User)
   141  	}
   142  	if pubsub.SecretKey != npubsub.SecretKey {
   143  		t.Errorf("bad secret_key: %q", pubsub.SecretKey)
   144  	}
   145  	if pubsub.ProjectID != npubsub.ProjectID {
   146  		t.Errorf("bad project_id: %q", pubsub.ProjectID)
   147  	}
   148  	if pubsub.FormatVersion != npubsub.FormatVersion {
   149  		t.Errorf("bad format_version: %q", pubsub.FormatVersion)
   150  	}
   151  	if pubsub.Format != npubsub.Format {
   152  		t.Errorf("bad format: %q", pubsub.Format)
   153  	}
   154  	if pubsub.Placement != npubsub.Placement {
   155  		t.Errorf("bad placement: %q", pubsub.Placement)
   156  	}
   157  
   158  	// Update
   159  	var upubsub *Pubsub
   160  	record(t, "pubsubs/update", func(c *Client) {
   161  		upubsub, err = c.UpdatePubsub(&UpdatePubsubInput{
   162  			ServiceID:      testServiceID,
   163  			ServiceVersion: tv.Number,
   164  			Name:           "test-pubsub",
   165  			NewName:        String("new-test-pubsub"),
   166  			Topic:          String("new-topic"),
   167  		})
   168  	})
   169  	if err != nil {
   170  		t.Fatal(err)
   171  	}
   172  	if upubsub.Name != "new-test-pubsub" {
   173  		t.Errorf("bad name: %q", upubsub.Name)
   174  	}
   175  	if upubsub.Topic != "new-topic" {
   176  		t.Errorf("bad topic: %q", upubsub.Topic)
   177  	}
   178  
   179  	// Delete
   180  	record(t, "pubsubs/delete", func(c *Client) {
   181  		err = c.DeletePubsub(&DeletePubsubInput{
   182  			ServiceID:      testServiceID,
   183  			ServiceVersion: tv.Number,
   184  			Name:           "new-test-pubsub",
   185  		})
   186  	})
   187  	if err != nil {
   188  		t.Fatal(err)
   189  	}
   190  }
   191  
   192  func TestClient_ListPubsubs_validation(t *testing.T) {
   193  	var err error
   194  	_, err = testClient.ListPubsubs(&ListPubsubsInput{
   195  		ServiceID: "",
   196  	})
   197  	if err != ErrMissingServiceID {
   198  		t.Errorf("bad error: %s", err)
   199  	}
   200  
   201  	_, err = testClient.ListPubsubs(&ListPubsubsInput{
   202  		ServiceID:      "foo",
   203  		ServiceVersion: 0,
   204  	})
   205  	if err != ErrMissingServiceVersion {
   206  		t.Errorf("bad error: %s", err)
   207  	}
   208  }
   209  
   210  func TestClient_CreatePubsub_validation(t *testing.T) {
   211  	var err error
   212  	_, err = testClient.CreatePubsub(&CreatePubsubInput{
   213  		ServiceID: "",
   214  	})
   215  	if err != ErrMissingServiceID {
   216  		t.Errorf("bad error: %s", err)
   217  	}
   218  
   219  	_, err = testClient.CreatePubsub(&CreatePubsubInput{
   220  		ServiceID:      "foo",
   221  		ServiceVersion: 0,
   222  	})
   223  	if err != ErrMissingServiceVersion {
   224  		t.Errorf("bad error: %s", err)
   225  	}
   226  }
   227  
   228  func TestClient_GetPubsub_validation(t *testing.T) {
   229  	var err error
   230  	_, err = testClient.GetPubsub(&GetPubsubInput{
   231  		ServiceID: "",
   232  	})
   233  	if err != ErrMissingServiceID {
   234  		t.Errorf("bad error: %s", err)
   235  	}
   236  
   237  	_, err = testClient.GetPubsub(&GetPubsubInput{
   238  		ServiceID:      "foo",
   239  		ServiceVersion: 0,
   240  	})
   241  	if err != ErrMissingServiceVersion {
   242  		t.Errorf("bad error: %s", err)
   243  	}
   244  
   245  	_, err = testClient.GetPubsub(&GetPubsubInput{
   246  		ServiceID:      "foo",
   247  		ServiceVersion: 1,
   248  		Name:           "",
   249  	})
   250  	if err != ErrMissingName {
   251  		t.Errorf("bad error: %s", err)
   252  	}
   253  }
   254  
   255  func TestClient_UpdatePubsub_validation(t *testing.T) {
   256  	var err error
   257  	_, err = testClient.UpdatePubsub(&UpdatePubsubInput{
   258  		ServiceID: "",
   259  	})
   260  	if err != ErrMissingServiceID {
   261  		t.Errorf("bad error: %s", err)
   262  	}
   263  
   264  	_, err = testClient.UpdatePubsub(&UpdatePubsubInput{
   265  		ServiceID:      "foo",
   266  		ServiceVersion: 0,
   267  	})
   268  	if err != ErrMissingServiceVersion {
   269  		t.Errorf("bad error: %s", err)
   270  	}
   271  
   272  	_, err = testClient.UpdatePubsub(&UpdatePubsubInput{
   273  		ServiceID:      "foo",
   274  		ServiceVersion: 1,
   275  		Name:           "",
   276  	})
   277  	if err != ErrMissingName {
   278  		t.Errorf("bad error: %s", err)
   279  	}
   280  }
   281  
   282  func TestClient_DeletePubsub_validation(t *testing.T) {
   283  	var err error
   284  	err = testClient.DeletePubsub(&DeletePubsubInput{
   285  		ServiceID: "",
   286  	})
   287  	if err != ErrMissingServiceID {
   288  		t.Errorf("bad error: %s", err)
   289  	}
   290  
   291  	err = testClient.DeletePubsub(&DeletePubsubInput{
   292  		ServiceID:      "foo",
   293  		ServiceVersion: 0,
   294  	})
   295  	if err != ErrMissingServiceVersion {
   296  		t.Errorf("bad error: %s", err)
   297  	}
   298  
   299  	err = testClient.DeletePubsub(&DeletePubsubInput{
   300  		ServiceID:      "foo",
   301  		ServiceVersion: 1,
   302  		Name:           "",
   303  	})
   304  	if err != ErrMissingName {
   305  		t.Errorf("bad error: %s", err)
   306  	}
   307  }