add HardwareTest
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/9ca43617 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/9ca43617 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/9ca43617 Branch: refs/heads/master Commit: 9ca43617820661b3d05973db98bef1818da3f944 Parents: 940d621 Author: David Neuman <david.neuma...@gmail.com> Authored: Fri Dec 2 15:01:05 2016 -0700 Committer: Dan Kirkwood <dang...@gmail.com> Committed: Sun Jan 8 21:04:59 2017 -0700 ---------------------------------------------------------------------- .../client/delivery_service_resources.go | 4 +- .../tests/integration/deliveryservice_test.go | 11 +- .../client/tests/integration/hardware_test.go | 105 +++++++++++++++++++ 3 files changed, 109 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9ca43617/traffic_ops/client/delivery_service_resources.go ---------------------------------------------------------------------- diff --git a/traffic_ops/client/delivery_service_resources.go b/traffic_ops/client/delivery_service_resources.go index 32f2ff3..26d64d8 100644 --- a/traffic_ops/client/delivery_service_resources.go +++ b/traffic_ops/client/delivery_service_resources.go @@ -188,9 +188,9 @@ type DeliveryServiceRouting struct { // DeliveryServiceServerResponse ... type DeliveryServiceServerResponse struct { Response []DeliveryServiceServer `json:"response"` - Size string `json:"size"` + Size int `json:"size"` OrderBy string `json:"orderby"` - Limit string `json:"limit"` + Limit int `json:"limit"` } // DeliveryServiceServer ... http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9ca43617/traffic_ops/client/tests/integration/deliveryservice_test.go ---------------------------------------------------------------------- diff --git a/traffic_ops/client/tests/integration/deliveryservice_test.go b/traffic_ops/client/tests/integration/deliveryservice_test.go index bffa769..4b56058 100644 --- a/traffic_ops/client/tests/integration/deliveryservice_test.go +++ b/traffic_ops/client/tests/integration/deliveryservice_test.go @@ -40,13 +40,6 @@ func init() { os.Exit(1) } - // existingTestDS, err := GetDeliveryService() - // if err != nil { - // fmt.Printf("Deliverservice_test init -- Could not get Deliveryservices from TO...%v\n", err) - // os.Exit(1) - // } - // existingTestDSID = strconv.Itoa(existingTestDS.ID) - //create DeliveryService object for testing testDs.Active = false testDs.CCRDNSTTL = 30 @@ -329,7 +322,7 @@ func TestDeliveryServiceCapacity(t *testing.T) { t.Errorf("Could not ge Deliveryserivce Capacity for %s reponse was: %v\n", existingTestDSID, err) } - if apiDsCapacity.AvailablePercent != clientDsCapacity.AvailablePercent { + if fmt.Sprintf("%6.5f", apiDsCapacity.AvailablePercent) != fmt.Sprintf("%6.5f", clientDsCapacity.AvailablePercent) { t.Errorf("AvailablePercent -- Expected %v got %v", apiDsCapacity.AvailablePercent, clientDsCapacity.AvailablePercent) } @@ -337,7 +330,7 @@ func TestDeliveryServiceCapacity(t *testing.T) { t.Errorf("MaintenenancePercent -- Expected %v got %v", apiDsCapacity.MaintenancePercent, clientDsCapacity.MaintenancePercent) } - if apiDsCapacity.UnavailablePercent != clientDsCapacity.UnavailablePercent { + if fmt.Sprintf("%6.5f", apiDsCapacity.UnavailablePercent) != fmt.Sprintf("%6.5f", clientDsCapacity.UnavailablePercent) { t.Errorf("UnavailablePercent -- Expected %v got %v", apiDsCapacity.UnavailablePercent, clientDsCapacity.UnavailablePercent) } http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/9ca43617/traffic_ops/client/tests/integration/hardware_test.go ---------------------------------------------------------------------- diff --git a/traffic_ops/client/tests/integration/hardware_test.go b/traffic_ops/client/tests/integration/hardware_test.go new file mode 100644 index 0000000..6c7fb47 --- /dev/null +++ b/traffic_ops/client/tests/integration/hardware_test.go @@ -0,0 +1,105 @@ +package integration + +import ( + // "encoding/json" + "encoding/json" + "testing" + + traffic_ops "github.com/apache/incubator-trafficcontrol/traffic_ops/client" +) + +func TestHardware(t *testing.T) { + resp, err := Request(*to, "GET", "/api/1.2/hwinfo.json", nil) + if err != nil { + t.Errorf("Could not get hardware.json reponse was: %v\n", err) + t.FailNow() + } + + defer resp.Body.Close() + var apiHwRes traffic_ops.HardwareResponse + if err := json.NewDecoder(resp.Body).Decode(&apiHwRes); err != nil { + t.Errorf("Could not decode hwinfo json. Error is: %v\n", err) + t.FailNow() + } + apiHardware := apiHwRes.Response + + clientHardware, err := to.Hardware(0) + if err != nil { + t.Errorf("Could not get Hardware from client. Error is: %v\n", err) + t.FailNow() + } + + if len(apiHardware) != len(clientHardware) { + t.Errorf("Hardware Response Length -- expected %v, got %v\n", len(apiHardware), len(clientHardware)) + } + + for _, apiHw := range apiHardware { + match := false + for _, clientHw := range clientHardware { + if apiHw.HostName == clientHw.HostName && apiHw.Description == clientHw.Description { + match = true + compareHw(apiHw, clientHw, t) + } + } + if !match { + t.Errorf("No hardware information returned from client for %s\n", apiHw.HostName) + } + } +} + +func TestHardwareWithLimit(t *testing.T) { + resp, err := Request(*to, "GET", "/api/1.2/hwinfo.json?limit=10", nil) + if err != nil { + t.Errorf("Could not get hwinfo.json reponse was: %v\n", err) + t.FailNow() + } + + defer resp.Body.Close() + var apiHwRes traffic_ops.HardwareResponse + if err := json.NewDecoder(resp.Body).Decode(&apiHwRes); err != nil { + t.Errorf("Could not decode hwinfo json. Error is: %v\n", err) + t.FailNow() + } + apiHardware := apiHwRes.Response + + clientHardware, err := to.Hardware(10) + if err != nil { + t.Errorf("Could not get Hardware from client. Error is: %v\n", err) + t.FailNow() + } + + if len(apiHardware) != len(clientHardware) { + t.Errorf("Hardware Response Length -- expected %v, got %v\n", len(apiHardware), len(clientHardware)) + } + + for _, apiHw := range apiHardware { + match := false + for _, clientHw := range clientHardware { + if apiHw.HostName == clientHw.HostName && apiHw.Description == clientHw.Description { + match = true + compareHw(apiHw, clientHw, t) + } + } + if !match { + t.Errorf("No hardware information returned from client for %s\n", apiHw.HostName) + } + } +} + +func compareHw(hw1 traffic_ops.Hardware, hw2 traffic_ops.Hardware, t *testing.T) { + if hw1.Description != hw2.Description { + t.Errorf("Description -- Expected %v, got %v", hw1.Description, hw2.Description) + } + if hw1.HostName != hw2.HostName { + t.Errorf("HostName -- Expected %v, got %v", hw1.HostName, hw2.HostName) + } + if hw1.ID != hw2.ID { + t.Errorf("ID -- Expected %v, got %v", hw1.ID, hw2.ID) + } + if hw1.LastUpdated != hw2.LastUpdated { + t.Errorf("LastUpdated -- Expected %v, got %v", hw1.LastUpdated, hw2.LastUpdated) + } + if hw1.Value != hw2.Value { + t.Errorf("Value -- Expected %v, got %v", hw1.Value, hw2.Value) + } +}