Minor refactoring of definition unit tests 55/75955/3
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Thu, 17 Jan 2019 19:49:39 +0000 (11:49 -0800)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Thu, 17 Jan 2019 20:31:24 +0000 (12:31 -0800)
The definition unit tests needed some small changes to
ensure consistency between the source and the tests.
P3: Sort both the slices before running DeepEqual

Issue-ID: MULTICLOUD-440
Change-Id: If797322e44321a580cb1441bd5c60b812799f844
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
src/k8splugin/api/defhandler_test.go
src/k8splugin/rb/definition_test.go

index 9739ab1..3dbd1aa 100644 (file)
@@ -24,6 +24,7 @@ import (
        "net/http"
        "net/http/httptest"
        "reflect"
+       "sort"
        "testing"
 
        pkgerrors "github.com/pkg/errors"
@@ -116,7 +117,7 @@ func TestRBDefCreateHandler(t *testing.T) {
        for _, testCase := range testCases {
                t.Run(testCase.label, func(t *testing.T) {
                        vh := rbDefinitionHandler{client: testCase.rbDefClient}
-                       req, err := http.NewRequest("POST", "/v1/resource/definition", testCase.reader)
+                       req, err := http.NewRequest("POST", "/v1/rb/definition", testCase.reader)
 
                        if err != nil {
                                t.Fatal(err)
@@ -193,7 +194,7 @@ func TestRBDefListHandler(t *testing.T) {
        for _, testCase := range testCases {
                t.Run(testCase.label, func(t *testing.T) {
                        vh := rbDefinitionHandler{client: testCase.rbDefClient}
-                       req, err := http.NewRequest("GET", "/v1/resource/definition", nil)
+                       req, err := http.NewRequest("GET", "/v1/rb/definition", nil)
                        if err != nil {
                                t.Fatal(err)
                        }
@@ -212,6 +213,17 @@ func TestRBDefListHandler(t *testing.T) {
                                got := []rb.Definition{}
                                json.NewDecoder(rr.Body).Decode(&got)
 
+                               // Since the order of returned slice is not guaranteed
+                               // Check both and return error if both don't match
+                               sort.Slice(got, func(i, j int) bool {
+                                       return got[i].UUID < got[i].UUID
+                               })
+                               // Sort both as it is not expected that testCase.expected
+                               // is sorted
+                               sort.Slice(testCase.expected, func(i, j int) bool {
+                                       return testCase.expected[i].UUID < testCase.expected[i].UUID
+                               })
+
                                if reflect.DeepEqual(testCase.expected, got) == false {
                                        t.Errorf("listHandler returned unexpected body: got %v;"+
                                                " expected %v", got, testCase.expected)
@@ -267,7 +279,7 @@ func TestRBDefGetHandler(t *testing.T) {
        for _, testCase := range testCases {
                t.Run(testCase.label, func(t *testing.T) {
                        vh := rbDefinitionHandler{client: testCase.rbDefClient}
-                       req, err := http.NewRequest("GET", "/v1/resource/definition/"+testCase.inpUUID, nil)
+                       req, err := http.NewRequest("GET", "/v1/rb/definition/"+testCase.inpUUID, nil)
                        if err != nil {
                                t.Fatal(err)
                        }
@@ -322,7 +334,7 @@ func TestRBDefDeleteHandler(t *testing.T) {
        for _, testCase := range testCases {
                t.Run(testCase.label, func(t *testing.T) {
                        vh := rbDefinitionHandler{client: testCase.rbDefClient}
-                       req, err := http.NewRequest("GET", "/v1/resource/definition/"+testCase.inpUUID, nil)
+                       req, err := http.NewRequest("GET", "/v1/rb/definition/"+testCase.inpUUID, nil)
                        if err != nil {
                                t.Fatal(err)
                        }
@@ -382,7 +394,7 @@ func TestRBDefUploadHandler(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        vh := rbDefinitionHandler{client: testCase.rbDefClient}
                        req, err := http.NewRequest("POST",
-                               "/v1/resource/definition/"+testCase.inpUUID+"/content", testCase.body)
+                               "/v1/rb/definition/"+testCase.inpUUID+"/content", testCase.body)
 
                        if err != nil {
                                t.Fatal(err)
index 1e48867..0e4ffd9 100644 (file)
@@ -21,13 +21,14 @@ package rb
 import (
        "k8splugin/db"
        "reflect"
+       "sort"
        "strings"
        "testing"
 
        pkgerrors "github.com/pkg/errors"
 )
 
-func TestCreate(t *testing.T) {
+func TestCreateDefinition(t *testing.T) {
        testCases := []struct {
                label         string
                inp           Definition
@@ -83,7 +84,7 @@ func TestCreate(t *testing.T) {
        }
 }
 
-func TestList(t *testing.T) {
+func TestListDefinition(t *testing.T) {
 
        testCases := []struct {
                label         string
@@ -145,6 +146,17 @@ func TestList(t *testing.T) {
                                        t.Fatalf("List returned an unexpected error %s", err)
                                }
                        } else {
+                               // Since the order of returned slice is not guaranteed
+                               // Check both and return error if both don't match
+                               sort.Slice(got, func(i, j int) bool {
+                                       return got[i].UUID < got[i].UUID
+                               })
+                               // Sort both as it is not expected that testCase.expected
+                               // is sorted
+                               sort.Slice(testCase.expected, func(i, j int) bool {
+                                       return testCase.expected[i].UUID < testCase.expected[i].UUID
+                               })
+
                                if reflect.DeepEqual(testCase.expected, got) == false {
                                        t.Errorf("List Resource Bundle returned unexpected body: got %v;"+
                                                " expected %v", got, testCase.expected)
@@ -154,7 +166,7 @@ func TestList(t *testing.T) {
        }
 }
 
-func TestGet(t *testing.T) {
+func TestGetDefinition(t *testing.T) {
 
        testCases := []struct {
                label         string
@@ -214,7 +226,7 @@ func TestGet(t *testing.T) {
        }
 }
 
-func TestDelete(t *testing.T) {
+func TestDeleteDefinition(t *testing.T) {
 
        testCases := []struct {
                label         string
@@ -253,7 +265,7 @@ func TestDelete(t *testing.T) {
        }
 }
 
-func TestUpload(t *testing.T) {
+func TestUploadDefinition(t *testing.T) {
        testCases := []struct {
                label         string
                inp           string
@@ -325,7 +337,7 @@ func TestUpload(t *testing.T) {
                                        "123e4567-e89b-12d3-a456-426655441111": []byte(
                                                "{\"name\":\"testresourcebundle\"," +
                                                        "\"description\":\"testresourcebundle\"," +
-                                                       "\"uuid\":\"123e4567-e89b-12d3-a456-426655440000\"," +
+                                                       "\"uuid\":\"123e4567-e89b-12d3-a456-426655441111\"," +
                                                        "\"service-type\":\"firewall\"}"),
                                },
                        },