You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by sr...@apache.org on 2022/04/13 23:24:47 UTC
[trafficcontrol] branch master updated: Refactored DS regex tests (#6732)
This is an automated email from the ASF dual-hosted git repository.
srijeet0406 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 3b8c0cdcb6 Refactored DS regex tests (#6732)
3b8c0cdcb6 is described below
commit 3b8c0cdcb687659b0112fd2f8e3fa0781a418414
Author: Eric Holguin <14...@users.noreply.github.com>
AuthorDate: Wed Apr 13 17:24:41 2022 -0600
Refactored DS regex tests (#6732)
---
.../testing/api/v3/deliveryservicesregexes_test.go | 233 +++++++------------
traffic_ops/testing/api/v3/tc-fixtures.json | 6 -
.../testing/api/v4/deliveryservicesregexes_test.go | 254 +++++++--------------
traffic_ops/testing/api/v4/tc-fixtures.json | 6 -
4 files changed, 170 insertions(+), 329 deletions(-)
diff --git a/traffic_ops/testing/api/v3/deliveryservicesregexes_test.go b/traffic_ops/testing/api/v3/deliveryservicesregexes_test.go
index 02c0ecdef7..512bf4dbed 100644
--- a/traffic_ops/testing/api/v3/deliveryservicesregexes_test.go
+++ b/traffic_ops/testing/api/v3/deliveryservicesregexes_test.go
@@ -16,178 +16,121 @@
package v3
import (
+ "encoding/json"
"fmt"
"net/http"
+ "net/url"
"strconv"
"testing"
- "time"
- "github.com/apache/trafficcontrol/lib/go-rfc"
"github.com/apache/trafficcontrol/lib/go-tc"
+ "github.com/apache/trafficcontrol/traffic_ops/testing/api/assert"
+ "github.com/apache/trafficcontrol/traffic_ops/testing/api/utils"
)
func TestDeliveryServicesRegexes(t *testing.T) {
- WithObjs(t, []TCObj{CDNs, Types, Tenants, Users, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, DeliveryServices, DeliveryServicesRegexes}, func() {
- QueryDSRegexTest(t)
- QueryDSRegexTestIMS(t)
- CreateTestDSRegexWithMissingPattern(t)
- })
-}
-
-func CreateTestDeliveryServicesRegexes(t *testing.T) {
- db, err := OpenConnection()
- if err != nil {
- t.Fatal("cannot open db")
- }
- defer func() {
- err := db.Close()
- if err != nil {
- t.Errorf("unable to close connection to db, error: %v", err)
+ WithObjs(t, []TCObj{CDNs, Types, Tenants, Users, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, ServiceCategories, DeliveryServices, DeliveryServicesRegexes}, func() {
+
+ methodTests := utils.V3TestCase{
+ "GET": {
+ "OK when VALID request": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ Expectations: utils.CkRequest(utils.NoError(), utils.HasStatus(http.StatusOK), utils.ResponseHasLength(3)),
+ },
+ "OK when VALID ID parameter": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ RequestParams: url.Values{"id": {strconv.Itoa(getDSRegexID(t, "ds1"))}},
+ Expectations: utils.CkRequest(utils.NoError(), utils.HasStatus(http.StatusOK), utils.ResponseHasLength(1)),
+ },
+ },
+ "POST": {
+ "BAD REQUEST when MISSING REGEX PATTERN": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ RequestBody: map[string]interface{}{
+ "type": GetTypeId(t, "HOST_REGEXP"),
+ "setNumber": 3,
+ "pattern": "",
+ },
+ Expectations: utils.CkRequest(utils.HasError(), utils.HasStatus(http.StatusBadRequest)),
+ },
+ },
}
- }()
-
- dbRegexInsertTemplate := "INSERT INTO regex (pattern, type) VALUES ('%v', '%v');"
- dbRegexQueryTemplate := "SELECT id FROM regex order by id desc limit 1;"
- dbDSRegexInsertTemplate := "INSERT INTO deliveryservice_regex (deliveryservice, regex, set_number) VALUES ('%v', '%v', '%v');"
-
- for i, regex := range testData.DeliveryServicesRegexes {
- loadDSRegexIDs(t, ®ex)
- err = execSQL(db, fmt.Sprintf(dbRegexInsertTemplate, regex.Pattern, regex.Type))
- if err != nil {
- t.Fatalf("unable to create regex: %v", err)
+ for method, testCases := range methodTests {
+ t.Run(method, func(t *testing.T) {
+ for name, testCase := range testCases {
+ dsRegex := tc.DeliveryServiceRegexPost{}
+ params := make(map[string]string)
+ if testCase.RequestParams.Has("id") {
+ val := testCase.RequestParams.Get("id")
+ params["id"] = val
+ }
+ if testCase.RequestBody != nil {
+ dat, err := json.Marshal(testCase.RequestBody)
+ assert.NoError(t, err, "Error occurred when marshalling request body: %v", err)
+ err = json.Unmarshal(dat, &dsRegex)
+ assert.NoError(t, err, "Error occurred when unmarshalling request body: %v", err)
+ }
+
+ switch method {
+ case "GET":
+ t.Run(name, func(t *testing.T) {
+ resp, reqInf, err := testCase.ClientSession.GetDeliveryServiceRegexesByDSID(testCase.EndpointId(), params)
+ for _, check := range testCase.Expectations {
+ check(t, reqInf, resp, tc.Alerts{}, err)
+ }
+ })
+ case "POST":
+ t.Run(name, func(t *testing.T) {
+ alerts, reqInf, err := testCase.ClientSession.PostDeliveryServiceRegexesByDSID(testCase.EndpointId(), dsRegex)
+ for _, check := range testCase.Expectations {
+ check(t, reqInf, nil, alerts, err)
+ }
+ })
+
+ }
+ }
+ })
}
+ })
+}
- row := db.QueryRow(dbRegexQueryTemplate)
- err = row.Scan(®ex.ID)
- if err != nil {
- t.Fatalf("unable to query regex: %v", err)
- }
+func getDSRegexID(t *testing.T, dsName string) int {
+ resp, _, err := TOSession.GetDeliveryServiceRegexesByDSID(GetDeliveryServiceId(t, dsName)(), nil)
+ assert.RequireNoError(t, err, "Get Delivery Service Regex failed with error: %v", err)
+ assert.RequireGreaterOrEqual(t, len(resp), 1, "Expected delivery service regex response object length 1, but got %d", len(resp))
+ assert.RequireNotNil(t, resp[0].ID, "Expected id to not be nil")
- err = execSQL(db, fmt.Sprintf(dbDSRegexInsertTemplate, regex.DSID, regex.ID, regex.SetNumber))
- if err != nil {
- t.Fatalf("unable to create ds regex %v", err)
- }
+ return resp[0].ID
+}
- testData.DeliveryServicesRegexes[i] = regex
+func CreateTestDeliveryServicesRegexes(t *testing.T) {
+ for _, dsRegex := range testData.DeliveryServicesRegexes {
+ dsID := GetDeliveryServiceId(t, dsRegex.DSName)()
+ typeId := GetTypeId(t, dsRegex.TypeName)
+ dsRegexPost := tc.DeliveryServiceRegexPost{
+ Type: typeId,
+ SetNumber: dsRegex.SetNumber,
+ Pattern: dsRegex.Pattern,
+ }
+ alerts, _, err := TOSession.PostDeliveryServiceRegexesByDSID(dsID, dsRegexPost)
+ assert.NoError(t, err, "Could not create Delivery Service Regex: %v - alerts: %+v", err, alerts)
}
}
func DeleteTestDeliveryServicesRegexes(t *testing.T) {
db, err := OpenConnection()
- if err != nil {
- t.Fatal("cannot open db")
- }
+ assert.RequireNoError(t, err, "Cannot open db: %v", err)
defer func() {
err := db.Close()
- if err != nil {
- t.Errorf("unable to close connection to db, error: %v", err)
- }
+ assert.NoError(t, err, "Unable to close connection to db: %v", err)
}()
for _, regex := range testData.DeliveryServicesRegexes {
err = execSQL(db, fmt.Sprintf("DELETE FROM deliveryservice_regex WHERE deliveryservice = '%v' and regex ='%v';", regex.DSID, regex.ID))
- if err != nil {
- t.Fatalf("unable to delete deliveryservice_regex by regex %v and ds %v: %v", regex.ID, regex.DSID, err)
- }
+ assert.RequireNoError(t, err, "Unable to delete deliveryservice_regex by regex %v and ds %v: %v", regex.ID, regex.DSID, err)
err := execSQL(db, fmt.Sprintf("DELETE FROM regex WHERE Id = '%v';", regex.ID))
- if err != nil {
- t.Fatalf("unable to delete regex %v: %v", regex.ID, err)
- }
- }
-}
-
-func CreateTestDSRegexWithMissingPattern(t *testing.T) {
- var regex = testData.DeliveryServicesRegexes[3]
- ds, _, err := TOSession.GetDeliveryServiceByXMLIDNullableWithHdr(regex.DSName, nil)
- if err != nil {
- t.Fatalf("unable to get ds %v: %v", regex.DSName, err)
- }
- if len(ds) == 0 {
- t.Fatalf("unable to get ds %v", regex.DSName)
- }
-
- var dsID int
- if ds[0].ID == nil {
- t.Fatal("ds has a nil id")
- } else {
- dsID = *ds[0].ID
- }
-
- regexPost := tc.DeliveryServiceRegexPost{Type: regex.Type, SetNumber: regex.SetNumber, Pattern: regex.Pattern}
-
- _, reqInfo, _ := TOSession.PostDeliveryServiceRegexesByDSID(dsID, regexPost)
- if reqInfo.StatusCode != http.StatusBadRequest {
- t.Errorf("Expected: %v, but got: %v", http.StatusBadRequest, reqInfo.StatusCode)
- }
-}
-
-func loadDSRegexIDs(t *testing.T, test *tc.DeliveryServiceRegexesTest) {
- dsTypes, _, err := TOSession.GetTypeByName(test.TypeName)
- if err != nil {
- t.Fatalf("unable to get type by name %v: %v", test.TypeName, err)
- }
- if len(dsTypes) < 1 {
- t.Fatalf("could not find any types by name %v", test.TypeName)
- }
- test.Type = dsTypes[0].ID
-
- dses, _, err := TOSession.GetDeliveryServiceByXMLIDNullable(test.DSName)
- if err != nil {
- t.Fatalf("unable to ds by xmlid %v: %v", test.DSName, err)
- }
- if len(dses) != 1 {
- t.Fatalf("unable to find ds by xmlid %v", test.DSName)
- }
- test.DSID = *dses[0].ID
-}
-
-func QueryDSRegexTestIMS(t *testing.T) {
- var header http.Header
- header = make(map[string][]string)
- futureTime := time.Now().AddDate(0, 0, 1)
- time := futureTime.Format(time.RFC1123)
- header.Set(rfc.IfModifiedSince, time)
- _, reqInf, err := TOSession.GetDeliveryServiceByXMLIDNullableWithHdr("ds1", header)
- if err != nil {
- t.Fatalf("could not GET delivery services regex: %v", err)
- }
- if reqInf.StatusCode != http.StatusNotModified {
- t.Fatalf("Expected 304 status code, got %v", reqInf.StatusCode)
- }
-}
-
-func QueryDSRegexTest(t *testing.T) {
- ds, _, err := TOSession.GetDeliveryServiceByXMLIDNullable("ds1")
- if err != nil {
- t.Fatalf("unable to get ds ds1: %v", err)
- }
- if len(ds) == 0 {
- t.Fatal("unable to get ds ds1")
- }
- var dsID int
- if ds[0].ID == nil {
- t.Fatal("ds has a nil id")
- } else {
- dsID = *ds[0].ID
- }
-
- dsRegexes, _, err := TOSession.GetDeliveryServiceRegexesByDSID(dsID, nil)
- if err != nil {
- t.Fatal("unable to get ds_regex by id " + strconv.Itoa(dsID))
- }
- if len(dsRegexes) != 4 {
- t.Fatal("expected to get 4 ds_regex, got " + strconv.Itoa(len(dsRegexes)))
- }
-
- params := make(map[string]string)
- params["id"] = strconv.Itoa(dsRegexes[0].ID)
- dsRegexes, _, err = TOSession.GetDeliveryServiceRegexesByDSID(dsID, params)
- if err != nil {
- t.Fatalf("unable to get ds_regex by id %v with query param %v", dsID, params["id"])
- }
- if len(dsRegexes) != 1 {
- t.Fatal("expected to get 1 ds_regex, got " + strconv.Itoa(len(dsRegexes)))
+ assert.RequireNoError(t, err, "Unable to delete regex %v: %v", regex.ID, err)
}
}
diff --git a/traffic_ops/testing/api/v3/tc-fixtures.json b/traffic_ops/testing/api/v3/tc-fixtures.json
index 39c20b95ae..ab8616ae4d 100644
--- a/traffic_ops/testing/api/v3/tc-fixtures.json
+++ b/traffic_ops/testing/api/v3/tc-fixtures.json
@@ -1546,12 +1546,6 @@
"typeName": "HOST_REGEXP",
"setNumber": 1,
"pattern" : ".*"
- },
- {
- "dsName": "ds1",
- "typeName": "HOST_REGEXP",
- "setNumber": 3,
- "pattern" : ""
}
],
"deliveryservicesRequiredCapabilities": [
diff --git a/traffic_ops/testing/api/v4/deliveryservicesregexes_test.go b/traffic_ops/testing/api/v4/deliveryservicesregexes_test.go
index 333fb90b46..2dc0f861e1 100644
--- a/traffic_ops/testing/api/v4/deliveryservicesregexes_test.go
+++ b/traffic_ops/testing/api/v4/deliveryservicesregexes_test.go
@@ -16,208 +16,118 @@
package v4
import (
+ "encoding/json"
"fmt"
"net/http"
+ "net/url"
"strconv"
"testing"
- "time"
- "github.com/apache/trafficcontrol/lib/go-rfc"
"github.com/apache/trafficcontrol/lib/go-tc"
+ "github.com/apache/trafficcontrol/traffic_ops/testing/api/assert"
+ "github.com/apache/trafficcontrol/traffic_ops/testing/api/utils"
client "github.com/apache/trafficcontrol/traffic_ops/v4-client"
)
func TestDeliveryServicesRegexes(t *testing.T) {
WithObjs(t, []TCObj{CDNs, Types, Tenants, Users, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, ServiceCategories, DeliveryServices, DeliveryServicesRegexes}, func() {
- QueryDSRegexTest(t)
- QueryDSRegexTestIMS(t)
- CreateTestDSRegexWithMissingPattern(t)
- })
-}
-func CreateTestDeliveryServicesRegexes(t *testing.T) {
- db, err := OpenConnection()
- if err != nil {
- t.Fatal("cannot open db")
- }
- defer func() {
- err := db.Close()
- if err != nil {
- t.Errorf("unable to close connection to db, error: %v", err)
+ methodTests := utils.V4TestCase{
+ "GET": {
+ "OK when VALID request": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ Expectations: utils.CkRequest(utils.NoError(), utils.HasStatus(http.StatusOK), utils.ResponseHasLength(3)),
+ },
+ "OK when VALID ID parameter": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ RequestOpts: client.RequestOptions{QueryParameters: url.Values{"id": {strconv.Itoa(getDSRegexID(t, "ds1"))}}},
+ Expectations: utils.CkRequest(utils.NoError(), utils.HasStatus(http.StatusOK), utils.ResponseHasLength(1)),
+ },
+ },
+ "POST": {
+ "BAD REQUEST when MISSING REGEX PATTERN": {
+ EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+ RequestBody: map[string]interface{}{
+ "type": GetTypeId(t, "HOST_REGEXP"),
+ "setNumber": 3,
+ "pattern": "",
+ },
+ Expectations: utils.CkRequest(utils.HasError(), utils.HasStatus(http.StatusBadRequest)),
+ },
+ },
}
- }()
-
- dbRegexInsertTemplate := "INSERT INTO regex (pattern, type) VALUES ('%v', '%v');"
- dbRegexQueryTemplate := "SELECT id FROM regex order by id desc limit 1;"
- dbDSRegexInsertTemplate := "INSERT INTO deliveryservice_regex (deliveryservice, regex, set_number) VALUES ('%v', '%v', '%v');"
- for i, regex := range testData.DeliveryServicesRegexes {
- loadDSRegexIDs(t, ®ex)
-
- err = execSQL(db, fmt.Sprintf(dbRegexInsertTemplate, regex.Pattern, regex.Type))
- if err != nil {
- t.Fatalf("unable to create regex: %v", err)
+ for method, testCases := range methodTests {
+ t.Run(method, func(t *testing.T) {
+ for name, testCase := range testCases {
+
+ dsRegex := tc.DeliveryServiceRegexPost{}
+ if testCase.RequestBody != nil {
+ dat, err := json.Marshal(testCase.RequestBody)
+ assert.NoError(t, err, "Error occurred when marshalling request body: %v", err)
+ err = json.Unmarshal(dat, &dsRegex)
+ assert.NoError(t, err, "Error occurred when unmarshalling request body: %v", err)
+ }
+
+ switch method {
+ case "GET":
+ t.Run(name, func(t *testing.T) {
+ resp, reqInf, err := testCase.ClientSession.GetDeliveryServiceRegexesByDSID(testCase.EndpointId(), testCase.RequestOpts)
+ for _, check := range testCase.Expectations {
+ check(t, reqInf, resp.Response, resp.Alerts, err)
+ }
+ })
+ case "POST":
+ t.Run(name, func(t *testing.T) {
+ alerts, reqInf, err := testCase.ClientSession.PostDeliveryServiceRegexesByDSID(testCase.EndpointId(), dsRegex, testCase.RequestOpts)
+ for _, check := range testCase.Expectations {
+ check(t, reqInf, nil, alerts, err)
+ }
+ })
+
+ }
+ }
+ })
}
+ })
+}
- row := db.QueryRow(dbRegexQueryTemplate)
- err = row.Scan(®ex.ID)
- if err != nil {
- t.Fatalf("unable to query regex: %v", err)
- }
+func getDSRegexID(t *testing.T, dsName string) int {
+ resp, _, err := TOSession.GetDeliveryServiceRegexesByDSID(GetDeliveryServiceId(t, dsName)(), client.RequestOptions{})
+ assert.RequireNoError(t, err, "Get Delivery Service Regex failed with error: %v", err)
+ assert.RequireGreaterOrEqual(t, len(resp.Response), 1, "Expected delivery service regex response object length 1, but got %d", len(resp.Response))
+ assert.RequireNotNil(t, resp.Response[0].ID, "Expected id to not be nil")
- err = execSQL(db, fmt.Sprintf(dbDSRegexInsertTemplate, regex.DSID, regex.ID, regex.SetNumber))
- if err != nil {
- t.Fatalf("unable to create ds regex %v", err)
- }
+ return resp.Response[0].ID
+}
- testData.DeliveryServicesRegexes[i] = regex
+func CreateTestDeliveryServicesRegexes(t *testing.T) {
+ for _, dsRegex := range testData.DeliveryServicesRegexes {
+ dsID := GetDeliveryServiceId(t, dsRegex.DSName)()
+ typeId := GetTypeId(t, dsRegex.TypeName)
+ dsRegexPost := tc.DeliveryServiceRegexPost{
+ Type: typeId,
+ SetNumber: dsRegex.SetNumber,
+ Pattern: dsRegex.Pattern,
+ }
+ alerts, _, err := TOSession.PostDeliveryServiceRegexesByDSID(dsID, dsRegexPost, client.RequestOptions{})
+ assert.NoError(t, err, "Could not create Delivery Service Regex: %v - alerts: %+v", err, alerts)
}
}
func DeleteTestDeliveryServicesRegexes(t *testing.T) {
db, err := OpenConnection()
- if err != nil {
- t.Fatal("cannot open db")
- }
+ assert.RequireNoError(t, err, "Cannot open db: %v", err)
defer func() {
err := db.Close()
- if err != nil {
- t.Errorf("unable to close connection to db, error: %v", err)
- }
+ assert.NoError(t, err, "Unable to close connection to db: %v", err)
}()
for _, regex := range testData.DeliveryServicesRegexes {
err = execSQL(db, fmt.Sprintf("DELETE FROM deliveryservice_regex WHERE deliveryservice = '%v' and regex ='%v';", regex.DSID, regex.ID))
- if err != nil {
- t.Fatalf("unable to delete deliveryservice_regex by regex %v and ds %v: %v", regex.ID, regex.DSID, err)
- }
+ assert.RequireNoError(t, err, "Unable to delete deliveryservice_regex by regex %v and ds %v: %v", regex.ID, regex.DSID, err)
err := execSQL(db, fmt.Sprintf("DELETE FROM regex WHERE Id = '%v';", regex.ID))
- if err != nil {
- t.Fatalf("unable to delete regex %v: %v", regex.ID, err)
- }
- }
-}
-
-// Note that this test is liable to break if the structure of the Delivery
-// Service Regular Expressions in the test data is changed at all.
-func CreateTestDSRegexWithMissingPattern(t *testing.T) {
- if len(testData.DeliveryServicesRegexes) < 4 {
- t.Fatal("Need at least 4 Delivery Service Regular Expressions to test creating a Delivery Service Regular Expression with a missing pattern")
- }
- var regex = testData.DeliveryServicesRegexes[3]
- opts := client.NewRequestOptions()
- opts.QueryParameters.Set("xmlId", regex.DSName)
- ds, _, err := TOSession.GetDeliveryServices(opts)
- if err != nil {
- t.Fatalf("unable to get ds '%s': %v - alerts: %+v", regex.DSName, err, ds.Alerts)
- }
- if len(ds.Response) == 0 {
- t.Fatalf("unable to get ds %v", regex.DSName)
- }
-
- var dsID int
- if ds.Response[0].ID == nil {
- t.Fatal("ds has a nil id")
- } else {
- dsID = *ds.Response[0].ID
- }
-
- regexPost := tc.DeliveryServiceRegexPost{Type: regex.Type, SetNumber: regex.SetNumber, Pattern: regex.Pattern}
-
- _, reqInfo, _ := TOSession.PostDeliveryServiceRegexesByDSID(dsID, regexPost, client.RequestOptions{})
- if reqInfo.StatusCode != http.StatusBadRequest {
- t.Errorf("Expected: %v, but got: %v", http.StatusBadRequest, reqInfo.StatusCode)
- }
-}
-
-func loadDSRegexIDs(t *testing.T, test *tc.DeliveryServiceRegexesTest) {
- if test == nil {
- t.Error("loadDSRegexIDs called with nil test")
- return
- }
- opts := client.NewRequestOptions()
- opts.QueryParameters.Set("name", test.TypeName)
- dsTypes, _, err := TOSession.GetTypes(opts)
- if err != nil {
- t.Errorf("unable to get Types filtered by name '%s': %v - alerts: %+v", test.TypeName, err, dsTypes.Alerts)
- return
- }
- if len(dsTypes.Response) < 1 {
- t.Errorf("could not find any types by name '%s'", test.TypeName)
- return
- }
- test.Type = dsTypes.Response[0].ID
-
- opts = client.NewRequestOptions()
- opts.QueryParameters.Set("xmlId", test.DSName)
- dses, _, err := TOSession.GetDeliveryServices(opts)
- if err != nil {
- t.Errorf("unable to ds by xmlid %v: %v - alerts: %+v", test.DSName, err, dses.Alerts)
- return
- }
- if len(dses.Response) != 1 {
- t.Errorf("unable to find ds by xmlid %v", test.DSName)
- return
- }
- if dses.Response[0].ID == nil {
- t.Error("Delivery Service had a null or undefined ID")
- return
- }
- test.DSID = *dses.Response[0].ID
-}
-
-func QueryDSRegexTestIMS(t *testing.T) {
- futureTime := time.Now().AddDate(0, 0, 1)
- time := futureTime.Format(time.RFC1123)
-
- opts := client.NewRequestOptions()
- opts.Header.Set(rfc.IfModifiedSince, time)
- opts.QueryParameters.Set("xmlId", "ds1")
- resp, reqInf, err := TOSession.GetDeliveryServices(opts)
- if err != nil {
- t.Errorf("Unexpected error getting Delivery Services filtered by XMLID 'ds1': %v - alerts: %+v", err, resp.Alerts)
- }
- if reqInf.StatusCode != http.StatusNotModified {
- t.Fatalf("Expected 304 status code, got %v", reqInf.StatusCode)
- }
-}
-
-// Note that this test will break if the Delivery Service in the test data with
-// the XMLID 'ds1' is removed or altered such that its regular expressions are
-// different than at the time of this writing.
-func QueryDSRegexTest(t *testing.T) {
- opts := client.NewRequestOptions()
- opts.QueryParameters.Set("xmlId", "ds1")
- ds, _, err := TOSession.GetDeliveryServices(opts)
- if err != nil {
- t.Fatalf("unable to get ds 'ds1': %v - alerts: %+v", err, ds.Alerts)
- }
- if len(ds.Response) == 0 {
- t.Fatal("unable to get ds ds1")
- }
- var dsID int
- if ds.Response[0].ID == nil {
- t.Fatal("ds has a nil id")
- } else {
- dsID = *ds.Response[0].ID
- }
-
- dsRegexes, _, err := TOSession.GetDeliveryServiceRegexesByDSID(dsID, client.RequestOptions{})
- if err != nil {
- t.Errorf("Unexpected error fetching Regular Expressions for Delivery Service 'ds1' (#%d): %v - alerts: %+v", dsID, err, dsRegexes.Alerts)
- }
- if len(dsRegexes.Response) != 4 {
- t.Fatalf("expected to get 4 Regular Expressions for Delivery Service 'ds1' (#%d), got: %d", dsID, len(dsRegexes.Response))
- }
- regExpID := dsRegexes.Response[0].ID
- opts = client.NewRequestOptions()
- opts.QueryParameters.Set("id", strconv.Itoa(regExpID))
- dsRegexes, _, err = TOSession.GetDeliveryServiceRegexesByDSID(dsID, opts)
- if err != nil {
- t.Errorf("Unexpected error getting Regular Expressions for Delivery Service 'ds1' (#%d) filtered by Regular Expression ID %d: %v - alerts: %+v", dsID, regExpID, err, dsRegexes.Alerts)
- }
- if len(dsRegexes.Response) != 1 {
- t.Fatalf("expected to get 1 Regular Expression for Delivery Service 'ds1' (#%d) that has ID %d, got: %d", dsID, regExpID, len(dsRegexes.Response))
+ assert.RequireNoError(t, err, "Unable to delete regex %v: %v", regex.ID, err)
}
}
diff --git a/traffic_ops/testing/api/v4/tc-fixtures.json b/traffic_ops/testing/api/v4/tc-fixtures.json
index 4278eaaa02..744566dac4 100644
--- a/traffic_ops/testing/api/v4/tc-fixtures.json
+++ b/traffic_ops/testing/api/v4/tc-fixtures.json
@@ -1771,12 +1771,6 @@
"typeName": "HOST_REGEXP",
"setNumber": 1,
"pattern": ".*"
- },
- {
- "dsName": "ds1",
- "typeName": "HOST_REGEXP",
- "setNumber": 3,
- "pattern": ""
}
],
"deliveryservicesRequiredCapabilities": [