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)
+       }
+}

Reply via email to