You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2017/01/10 03:38:33 UTC
[21/50] incubator-trafficcontrol git commit: added stats summary test
added stats summary test
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/93df9fb6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/93df9fb6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/93df9fb6
Branch: refs/heads/master
Commit: 93df9fb65b45df61718a2743b4d0c4788c20ba23
Parents: d247815
Author: David Neuman <da...@gmail.com>
Authored: Mon Dec 5 13:24:00 2016 -0700
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Sun Jan 8 21:05:00 2017 -0700
----------------------------------------------------------------------
.../tests/integration/stats_summary_test.go | 226 +++++++++++++++++++
1 file changed, 226 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/93df9fb6/traffic_ops/client/tests/integration/stats_summary_test.go
----------------------------------------------------------------------
diff --git a/traffic_ops/client/tests/integration/stats_summary_test.go b/traffic_ops/client/tests/integration/stats_summary_test.go
new file mode 100644
index 0000000..b419e49
--- /dev/null
+++ b/traffic_ops/client/tests/integration/stats_summary_test.go
@@ -0,0 +1,226 @@
+package integration
+
+import (
+ "encoding/json"
+ "fmt"
+ "testing"
+ "time"
+
+ traffic_ops "github.com/apache/incubator-trafficcontrol/traffic_ops/client"
+)
+
+func TestStatsSummaryAll(t *testing.T) {
+
+ uri := fmt.Sprintf("/api/1.2/stats_summary.json")
+ resp, err := Request(*to, "GET", uri, nil)
+ if err != nil {
+ t.Errorf("Could not get %s reponse was: %v\n", uri, err)
+ t.FailNow()
+ }
+
+ defer resp.Body.Close()
+ var apiStatsSummaryRes traffic_ops.StatsSummaryResponse
+ if err := json.NewDecoder(resp.Body).Decode(&apiStatsSummaryRes); err != nil {
+ t.Errorf("Could not decode stats summary json. Error is: %v\n", err)
+ t.FailNow()
+ }
+ apiStatsSummary := apiStatsSummaryRes.Response
+
+ clientStatsSummary, err := to.SummaryStats("", "", "")
+ if err != nil {
+ t.Errorf("Could not get stats summary from client. Error is: %v\n", err)
+ t.FailNow()
+ }
+
+ if len(apiStatsSummary) != len(clientStatsSummary) {
+ t.Errorf("Stats Summary Response Length -- expected %v, got %v\n", len(apiStatsSummary), len(clientStatsSummary))
+ }
+
+ for _, apiSs := range apiStatsSummary {
+ match := false
+ for _, clientSs := range clientStatsSummary {
+ if apiSs == clientSs {
+ match = true
+ }
+ }
+ if !match {
+ t.Errorf("Did not get a stats summary matching %+v\n", apiSs)
+ }
+ }
+}
+
+func TestStatsSummarybyCDN(t *testing.T) {
+ cdn, err := GetCdn()
+ if err != nil {
+ t.Error("Could not get a CDN, response was %v\n", err)
+ t.FailNow()
+ }
+ uri := fmt.Sprintf("/api/1.2/stats_summary.json?cdnName=%s", cdn.Name)
+ resp, err := Request(*to, "GET", uri, nil)
+ if err != nil {
+ t.Errorf("Could not get %s reponse was: %v\n", uri, err)
+ t.FailNow()
+ }
+
+ defer resp.Body.Close()
+ var apiStatsSummaryRes traffic_ops.StatsSummaryResponse
+ if err := json.NewDecoder(resp.Body).Decode(&apiStatsSummaryRes); err != nil {
+ t.Errorf("Could not decode stats summary json. Error is: %v\n", err)
+ t.FailNow()
+ }
+ apiStatsSummary := apiStatsSummaryRes.Response
+
+ clientStatsSummary, err := to.SummaryStats(cdn.Name, "", "")
+ if err != nil {
+ t.Errorf("Could not get stats summary from client. Error is: %v\n", err)
+ t.FailNow()
+ }
+
+ if len(apiStatsSummary) != len(clientStatsSummary) {
+ t.Errorf("Stats Summary Response Length -- expected %v, got %v\n", len(apiStatsSummary), len(clientStatsSummary))
+ }
+
+ for _, apiSs := range apiStatsSummary {
+ match := false
+ for _, clientSs := range clientStatsSummary {
+ if apiSs == clientSs {
+ match = true
+ }
+ }
+ if !match {
+ t.Errorf("Did not get a stats summary matching %+v\n", apiSs)
+ }
+ }
+}
+
+func TestStatsSummaryByDs(t *testing.T) {
+ ds, err := GetDeliveryService("")
+ if err != nil {
+ t.Error("Could not get a DS, response was %v\n", err)
+ t.FailNow()
+ }
+ uri := fmt.Sprintf("/api/1.2/stats_summary.json?deliveryServiceName=%s", ds.XMLID)
+ resp, err := Request(*to, "GET", uri, nil)
+ if err != nil {
+ t.Errorf("Could not get %s reponse was: %v\n", uri, err)
+ t.FailNow()
+ }
+
+ defer resp.Body.Close()
+ var apiStatsSummaryRes traffic_ops.StatsSummaryResponse
+ if err := json.NewDecoder(resp.Body).Decode(&apiStatsSummaryRes); err != nil {
+ t.Errorf("Could not decode stats summary json. Error is: %v\n", err)
+ t.FailNow()
+ }
+ apiStatsSummary := apiStatsSummaryRes.Response
+
+ clientStatsSummary, err := to.SummaryStats("", ds.XMLID, "")
+ if err != nil {
+ t.Errorf("Could not get stats summary from client. Error is: %v\n", err)
+ t.FailNow()
+ }
+
+ if len(apiStatsSummary) != len(clientStatsSummary) {
+ t.Errorf("Stats Summary Response Length -- expected %v, got %v\n", len(apiStatsSummary), len(clientStatsSummary))
+ }
+
+ for _, apiSs := range apiStatsSummary {
+ match := false
+ for _, clientSs := range clientStatsSummary {
+ if apiSs == clientSs {
+ match = true
+ }
+ }
+ if !match {
+ t.Errorf("Did not get a stats summary matching %+v\n", apiSs)
+ }
+ }
+}
+
+func TestStatsSummaryByStatName(t *testing.T) {
+ uri := fmt.Sprintf("/api/1.2/stats_summary.json?statName=daily_bytesserved")
+ resp, err := Request(*to, "GET", uri, nil)
+ if err != nil {
+ t.Errorf("Could not get %s reponse was: %v\n", uri, err)
+ t.FailNow()
+ }
+
+ defer resp.Body.Close()
+ var apiStatsSummaryRes traffic_ops.StatsSummaryResponse
+ if err := json.NewDecoder(resp.Body).Decode(&apiStatsSummaryRes); err != nil {
+ t.Errorf("Could not decode stats summary json. Error is: %v\n", err)
+ t.FailNow()
+ }
+ apiStatsSummary := apiStatsSummaryRes.Response
+
+ clientStatsSummary, err := to.SummaryStats("", "", "daily_bytesserved")
+ if err != nil {
+ t.Errorf("Could not get stats summary from client. Error is: %v\n", err)
+ t.FailNow()
+ }
+
+ if len(apiStatsSummary) != len(clientStatsSummary) {
+ t.Errorf("Stats Summary Response Length -- expected %v, got %v\n", len(apiStatsSummary), len(clientStatsSummary))
+ }
+
+ for _, apiSs := range apiStatsSummary {
+ match := false
+ for _, clientSs := range clientStatsSummary {
+ if apiSs == clientSs {
+ match = true
+ }
+ }
+ if !match {
+ t.Errorf("Did not get a stats summary matching %+v\n", apiSs)
+ }
+ }
+}
+
+func TestAddSummaryStats(t *testing.T) {
+ cdn, err := GetCdn()
+ if err != nil {
+ t.Errorf("Could not get a CDN, response was %v\n", err)
+ t.FailNow()
+ }
+ ds, err := GetDeliveryService(cdn.Name)
+ if err != nil {
+ t.Errorf("Could not get a DS, response was %v\n", err)
+ t.FailNow()
+ }
+ now := time.Now()
+ summaryTime := now.Format(time.RFC3339)
+ statDate := now.Format("2006-01-02")
+
+ testStatsSummay := new(traffic_ops.StatsSummary)
+ testStatsSummay.CDNName = cdn.Name
+ testStatsSummay.DeliveryService = ds.XMLID
+ testStatsSummay.StatDate = statDate
+ testStatsSummay.StatName = "testStatName"
+ testStatsSummay.StatValue = "1234"
+ testStatsSummay.SummaryTime = summaryTime
+
+ err = to.AddSummaryStats(*testStatsSummay)
+ if err != nil {
+ t.Errorf("Could not add Summary Stats, response was %v\n", err)
+ t.FailNow()
+ }
+
+ ssRes, err := to.SummaryStats(testStatsSummay.CDNName, testStatsSummay.DeliveryService, testStatsSummay.StatName)
+ if err != nil {
+ t.Errorf("Could not get a SummaryStats, error was: %v\n", err)
+ t.FailNow()
+ }
+ match := false
+ for _, ss := range ssRes {
+ if ss.CDNName == testStatsSummay.CDNName &&
+ ss.DeliveryService == testStatsSummay.DeliveryService &&
+ ss.StatDate == testStatsSummay.StatDate &&
+ ss.StatName == testStatsSummay.StatName &&
+ ss.StatValue == testStatsSummay.StatValue {
+ match = true
+ }
+ }
+ if !match {
+ t.Errorf("Stats Summary not found in Traffic Ops after Adding. Summary Stats Response was: %+v, expecting: %+v\n", ssRes, *testStatsSummay)
+ }
+}