You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by zr...@apache.org on 2022/04/22 16:45:23 UTC

[trafficcontrol] branch master updated: Refactor Delivery Services ID Eligible tests (#6747)

This is an automated email from the ASF dual-hosted git repository.

zrhoffman 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 d536e58970  Refactor Delivery Services ID Eligible tests (#6747)
d536e58970 is described below

commit d536e58970d2fe3d102577116eb945a9ff6506d2
Author: Eric Holguin <14...@users.noreply.github.com>
AuthorDate: Fri Apr 22 10:45:18 2022 -0600

     Refactor Delivery Services ID Eligible tests (#6747)
---
 .../api/v3/deliveryservicesideligible_test.go      | 65 +++++++++------------
 .../api/v4/deliveryservicesideligible_test.go      | 66 ++++++++--------------
 2 files changed, 52 insertions(+), 79 deletions(-)

diff --git a/traffic_ops/testing/api/v3/deliveryservicesideligible_test.go b/traffic_ops/testing/api/v3/deliveryservicesideligible_test.go
index 0f6f34833e..58b66aca45 100644
--- a/traffic_ops/testing/api/v3/deliveryservicesideligible_test.go
+++ b/traffic_ops/testing/api/v3/deliveryservicesideligible_test.go
@@ -18,47 +18,36 @@ package v3
 import (
 	"net/http"
 	"testing"
-	"time"
 
-	"github.com/apache/trafficcontrol/lib/go-rfc"
+	"github.com/apache/trafficcontrol/lib/go-tc"
+	"github.com/apache/trafficcontrol/traffic_ops/testing/api/utils"
 )
 
 func TestDeliveryServicesEligible(t *testing.T) {
-	WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, DeliveryServices}, func() {
-		GetTestDeliveryServicesEligibleIMS(t)
-		GetTestDeliveryServicesEligible(t)
+	WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, ServiceCategories, DeliveryServices}, 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.ResponseLengthGreaterOrEqual(1)),
+				},
+			},
+		}
+		for method, testCases := range methodTests {
+			t.Run(method, func(t *testing.T) {
+				for name, testCase := range testCases {
+					switch method {
+					case "GET":
+						t.Run(name, func(t *testing.T) {
+							resp, reqInf, err := testCase.ClientSession.GetDeliveryServicesEligibleWithHdr(testCase.EndpointId(), testCase.RequestHeaders)
+							for _, check := range testCase.Expectations {
+								check(t, reqInf, resp, tc.Alerts{}, err)
+							}
+						})
+					}
+				}
+			})
+		}
 	})
 }
-
-func GetTestDeliveryServicesEligibleIMS(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.GetDeliveryServicesNullableWithHdr(header)
-	if err != nil {
-		t.Fatalf("could not GET eligible delivery services: %v", err)
-	}
-	if reqInf.StatusCode != http.StatusNotModified {
-		t.Fatalf("Expected 304 status code, got %v", reqInf.StatusCode)
-	}
-}
-
-func GetTestDeliveryServicesEligible(t *testing.T) {
-	dses, _, err := TOSession.GetDeliveryServicesNullable()
-	if err != nil {
-		t.Errorf("cannot GET DeliveryServices: %v", err)
-	}
-	if len(dses) == 0 {
-		t.Error("GET DeliveryServices returned no delivery services, need at least 1 to test")
-	}
-	dsID := dses[0].ID
-	servers, _, err := TOSession.GetDeliveryServicesEligible(*dsID)
-	if err != nil {
-		t.Errorf("getting delivery services eligible: %v", err)
-	}
-	if len(servers) == 0 {
-		t.Error("getting delivery services eligible returned no servers")
-	}
-}
diff --git a/traffic_ops/testing/api/v4/deliveryservicesideligible_test.go b/traffic_ops/testing/api/v4/deliveryservicesideligible_test.go
index 2ce8294c7f..6c6f2d5a41 100644
--- a/traffic_ops/testing/api/v4/deliveryservicesideligible_test.go
+++ b/traffic_ops/testing/api/v4/deliveryservicesideligible_test.go
@@ -18,51 +18,35 @@ package v4
 import (
 	"net/http"
 	"testing"
-	"time"
 
-	"github.com/apache/trafficcontrol/lib/go-rfc"
-	client "github.com/apache/trafficcontrol/traffic_ops/v4-client"
+	"github.com/apache/trafficcontrol/traffic_ops/testing/api/utils"
 )
 
 func TestDeliveryServicesEligible(t *testing.T) {
 	WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, Topologies, ServiceCategories, DeliveryServices}, func() {
-		GetTestDeliveryServicesEligibleIMS(t)
-		GetTestDeliveryServicesEligible(t)
-	})
-}
-
-func GetTestDeliveryServicesEligibleIMS(t *testing.T) {
-	futureTime := time.Now().AddDate(0, 0, 1)
-	time := futureTime.Format(time.RFC1123)
 
-	opts := client.NewRequestOptions()
-	opts.Header.Set(rfc.IfModifiedSince, time)
-	resp, reqInf, err := TOSession.GetDeliveryServices(opts)
-	if err != nil {
-		t.Fatalf("could not get eligible delivery services: %v - alerts: %+v", err, resp.Alerts)
-	}
-	if reqInf.StatusCode != http.StatusNotModified {
-		t.Fatalf("Expected 304 status code, got %v", reqInf.StatusCode)
-	}
-}
-
-func GetTestDeliveryServicesEligible(t *testing.T) {
-	dses, _, err := TOSession.GetDeliveryServices(client.RequestOptions{})
-	if err != nil {
-		t.Errorf("cannot get Delivery Services: %v - alerts: %+v", err, dses.Alerts)
-	}
-	if len(dses.Response) == 0 {
-		t.Fatal("GET DeliveryServices returned no delivery services, need at least 1 to test")
-	}
-	dsID := dses.Response[0].ID
-	if dsID == nil {
-		t.Fatal("Traffic Ops returned a representation of a Delivery Service that had null or undefined ID")
-	}
-	servers, _, err := TOSession.GetDeliveryServicesEligible(*dsID, client.RequestOptions{})
-	if err != nil {
-		t.Errorf("getting Delivery Services eligible: %v - alerts: %+v", err, servers.Alerts)
-	}
-	if len(servers.Response) == 0 {
-		t.Error("getting delivery services eligible returned no servers")
-	}
+		methodTests := utils.V4TestCase{
+			"GET": {
+				"OK when VALID request": {
+					EndpointId: GetDeliveryServiceId(t, "ds1"), ClientSession: TOSession,
+					Expectations: utils.CkRequest(utils.NoError(), utils.HasStatus(http.StatusOK), utils.ResponseLengthGreaterOrEqual(1)),
+				},
+			},
+		}
+		for method, testCases := range methodTests {
+			t.Run(method, func(t *testing.T) {
+				for name, testCase := range testCases {
+					switch method {
+					case "GET":
+						t.Run(name, func(t *testing.T) {
+							resp, reqInf, err := testCase.ClientSession.GetDeliveryServicesEligible(testCase.EndpointId(), testCase.RequestOpts)
+							for _, check := range testCase.Expectations {
+								check(t, reqInf, resp.Response, resp.Alerts, err)
+							}
+						})
+					}
+				}
+			})
+		}
+	})
 }