github.com/fastly/go-fastly/v5@v5.3.0/fastly/director_test.go (about) 1 package fastly 2 3 import ( 4 "testing" 5 ) 6 7 func TestClient_Directors(t *testing.T) { 8 t.Parallel() 9 10 var err error 11 var tv *Version 12 record(t, "directors/version", func(c *Client) { 13 tv = testVersion(t, c) 14 }) 15 16 // Create 17 var b *Director 18 record(t, "directors/create", func(c *Client) { 19 b, err = c.CreateDirector(&CreateDirectorInput{ 20 ServiceID: testServiceID, 21 ServiceVersion: tv.Number, 22 Name: "test-director", 23 Quorum: Uint(50), 24 Type: DirectorTypeRandom, 25 Retries: Uint(5), 26 }) 27 }) 28 if err != nil { 29 t.Fatal(err) 30 } 31 32 // Ensure deleted 33 defer func() { 34 record(t, "directors/cleanup", func(c *Client) { 35 c.DeleteDirector(&DeleteDirectorInput{ 36 ServiceID: testServiceID, 37 ServiceVersion: tv.Number, 38 Name: "test-director", 39 }) 40 41 c.DeleteDirector(&DeleteDirectorInput{ 42 ServiceID: testServiceID, 43 ServiceVersion: tv.Number, 44 Name: "new-test-director", 45 }) 46 }) 47 }() 48 49 if b.Name != "test-director" { 50 t.Errorf("bad name: %q", b.Name) 51 } 52 if b.Quorum != 50 { 53 t.Errorf("bad quorum: %q", b.Quorum) 54 } 55 if b.Type != DirectorTypeRandom { 56 t.Errorf("bad type: %d", b.Type) 57 } 58 if b.Retries != 5 { 59 t.Errorf("bad retries: %d", b.Retries) 60 } 61 62 // List 63 var bs []*Director 64 record(t, "directors/list", func(c *Client) { 65 bs, err = c.ListDirectors(&ListDirectorsInput{ 66 ServiceID: testServiceID, 67 ServiceVersion: tv.Number, 68 }) 69 }) 70 if err != nil { 71 t.Fatal(err) 72 } 73 if len(bs) < 1 { 74 t.Errorf("bad directors: %v", bs) 75 } 76 77 // Get 78 var nb *Director 79 record(t, "directors/get", func(c *Client) { 80 nb, err = c.GetDirector(&GetDirectorInput{ 81 ServiceID: testServiceID, 82 ServiceVersion: tv.Number, 83 Name: "test-director", 84 }) 85 }) 86 if err != nil { 87 t.Fatal(err) 88 } 89 if b.Name != nb.Name { 90 t.Errorf("bad name: %q (%q)", b.Name, nb.Name) 91 } 92 if b.Quorum != nb.Quorum { 93 t.Errorf("bad quorum: %q (%q)", b.Quorum, nb.Quorum) 94 } 95 if b.Type != nb.Type { 96 t.Errorf("bad type: %q (%q)", b.Type, nb.Type) 97 } 98 if b.Retries != nb.Retries { 99 t.Errorf("bad retries: %q (%q)", b.Retries, nb.Retries) 100 } 101 102 // Update 103 var ub *Director 104 record(t, "directors/update", func(c *Client) { 105 ub, err = c.UpdateDirector(&UpdateDirectorInput{ 106 ServiceID: testServiceID, 107 ServiceVersion: tv.Number, 108 Name: "test-director", 109 NewName: String("new-test-director"), 110 Quorum: Uint(100), 111 }) 112 }) 113 if err != nil { 114 t.Fatal(err) 115 } 116 if ub.Quorum != 100 { 117 t.Errorf("bad quorum: %q", ub.Quorum) 118 } 119 120 // Delete 121 record(t, "directors/delete", func(c *Client) { 122 err = c.DeleteDirector(&DeleteDirectorInput{ 123 ServiceID: testServiceID, 124 ServiceVersion: tv.Number, 125 Name: "test-director", 126 }) 127 }) 128 if err != nil { 129 t.Fatal(err) 130 } 131 } 132 133 func TestClient_ListDirectors_validation(t *testing.T) { 134 var err error 135 _, err = testClient.ListDirectors(&ListDirectorsInput{ 136 ServiceID: "", 137 }) 138 if err != ErrMissingServiceID { 139 t.Errorf("bad error: %s", err) 140 } 141 142 _, err = testClient.ListDirectors(&ListDirectorsInput{ 143 ServiceID: "foo", 144 ServiceVersion: 0, 145 }) 146 if err != ErrMissingServiceVersion { 147 t.Errorf("bad error: %s", err) 148 } 149 } 150 151 func TestClient_CreateDirector_validation(t *testing.T) { 152 var err error 153 _, err = testClient.CreateDirector(&CreateDirectorInput{ 154 ServiceID: "", 155 }) 156 if err != ErrMissingServiceID { 157 t.Errorf("bad error: %s", err) 158 } 159 160 _, err = testClient.CreateDirector(&CreateDirectorInput{ 161 ServiceID: "foo", 162 ServiceVersion: 0, 163 }) 164 if err != ErrMissingServiceVersion { 165 t.Errorf("bad error: %s", err) 166 } 167 } 168 169 func TestClient_GetDirector_validation(t *testing.T) { 170 var err error 171 _, err = testClient.GetDirector(&GetDirectorInput{ 172 ServiceID: "", 173 }) 174 if err != ErrMissingServiceID { 175 t.Errorf("bad error: %s", err) 176 } 177 178 _, err = testClient.GetDirector(&GetDirectorInput{ 179 ServiceID: "foo", 180 ServiceVersion: 0, 181 }) 182 if err != ErrMissingServiceVersion { 183 t.Errorf("bad error: %s", err) 184 } 185 186 _, err = testClient.GetDirector(&GetDirectorInput{ 187 ServiceID: "foo", 188 ServiceVersion: 1, 189 Name: "", 190 }) 191 if err != ErrMissingName { 192 t.Errorf("bad error: %s", err) 193 } 194 } 195 196 func TestClient_UpdateDirector_validation(t *testing.T) { 197 var err error 198 _, err = testClient.UpdateDirector(&UpdateDirectorInput{ 199 ServiceID: "", 200 }) 201 if err != ErrMissingServiceID { 202 t.Errorf("bad error: %s", err) 203 } 204 205 _, err = testClient.UpdateDirector(&UpdateDirectorInput{ 206 ServiceID: "foo", 207 ServiceVersion: 0, 208 }) 209 if err != ErrMissingServiceVersion { 210 t.Errorf("bad error: %s", err) 211 } 212 213 _, err = testClient.UpdateDirector(&UpdateDirectorInput{ 214 ServiceID: "foo", 215 ServiceVersion: 1, 216 Name: "", 217 }) 218 if err != ErrMissingName { 219 t.Errorf("bad error: %s", err) 220 } 221 } 222 223 func TestClient_DeleteDirector_validation(t *testing.T) { 224 var err error 225 err = testClient.DeleteDirector(&DeleteDirectorInput{ 226 ServiceID: "", 227 }) 228 if err != ErrMissingServiceID { 229 t.Errorf("bad error: %s", err) 230 } 231 232 err = testClient.DeleteDirector(&DeleteDirectorInput{ 233 ServiceID: "foo", 234 ServiceVersion: 0, 235 }) 236 if err != ErrMissingServiceVersion { 237 t.Errorf("bad error: %s", err) 238 } 239 240 err = testClient.DeleteDirector(&DeleteDirectorInput{ 241 ServiceID: "foo", 242 ServiceVersion: 1, 243 Name: "", 244 }) 245 if err != ErrMissingName { 246 t.Errorf("bad error: %s", err) 247 } 248 }