summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <victor.morales@intel.com>2018-09-26 08:21:13 -0700
committerVictor Morales <victor.morales@intel.com>2018-09-26 08:21:13 -0700
commit3861b03899b5b31ee33098e336ae5c4e967936a8 (patch)
tree503bb773fad9df0d72d7bcfa52dfb76773a85c58
parent145648701486244f632cc6aaaa0f70a252db829a (diff)
Improve Services UTs
The current implementation of Unit Tests for Services wasn't validating sucessful cases properly. This change fix that gap and increase the coverage number. Change-Id: Ib5daa607f38e490ced471a129a5fa71b2d4eb133 Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: MULTICLOUD-301
-rw-r--r--src/k8splugin/plugins/service/plugin_test.go137
1 files changed, 104 insertions, 33 deletions
diff --git a/src/k8splugin/plugins/service/plugin_test.go b/src/k8splugin/plugins/service/plugin_test.go
index 001467df..25eeb730 100644
--- a/src/k8splugin/plugins/service/plugin_test.go
+++ b/src/k8splugin/plugins/service/plugin_test.go
@@ -39,14 +39,6 @@ func TestCreateService(t *testing.T) {
expectedError string
}{
{
- label: "Fail to create a service with non-existing file",
- input: &krd.ResourceData{
- YamlFilePath: "non-existing_test_file.yaml",
- },
- clientOutput: &coreV1.Service{},
- expectedError: "not found",
- },
- {
label: "Fail to create a service with invalid type",
input: &krd.ResourceData{
YamlFilePath: "../../mock_files/mock_yamls/deployment.yaml",
@@ -75,12 +67,23 @@ func TestCreateService(t *testing.T) {
t.Run(testCase.label, func(t *testing.T) {
result, err := Create(testCase.input, client)
if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Create method return an un-expected (%s)", err)
+ }
if !strings.Contains(string(err.Error()), testCase.expectedError) {
t.Fatalf("Create method returned an error (%s)", err)
}
- }
- if !reflect.DeepEqual(testCase.expectedResult, result) {
- t.Fatalf("Create method returned %v and it was expected (%v)", result, testCase.expectedResult)
+ } else {
+ if testCase.expectedError != "" && testCase.expectedResult == "" {
+ t.Fatalf("Create method was expecting \"%s\" error message", testCase.expectedError)
+ }
+ if result == "" {
+ t.Fatal("Create method returned nil result")
+ }
+ if !reflect.DeepEqual(testCase.expectedResult, result) {
+
+ t.Fatalf("Create method returned: \n%v\n and it was expected: \n%v", result, testCase.expectedResult)
+ }
}
})
}
@@ -115,6 +118,27 @@ func TestListService(t *testing.T) {
},
expectedResult: []string{"test"},
},
+ {
+ label: "Sucessfully display a list of existing services in default namespace",
+ input: "",
+ clientOutput: &coreV1.ServiceList{
+ Items: []coreV1.Service{
+ coreV1.Service{
+ ObjectMeta: metaV1.ObjectMeta{
+ Name: "test",
+ Namespace: "default",
+ },
+ },
+ coreV1.Service{
+ ObjectMeta: metaV1.ObjectMeta{
+ Name: "test2",
+ Namespace: namespace,
+ },
+ },
+ },
+ },
+ expectedResult: []string{"test"},
+ },
}
for _, testCase := range testCases {
@@ -123,29 +147,42 @@ func TestListService(t *testing.T) {
result, err := List(testCase.input, client)
if err != nil {
t.Fatalf("List method returned an error (%s)", err)
- }
- if !reflect.DeepEqual(testCase.expectedResult, result) {
- t.Fatalf("List method returned %v and it was expected (%v)", result, testCase.expectedResult)
+ } else {
+ if result == nil {
+ t.Fatal("List method returned nil result")
+ }
+ if !reflect.DeepEqual(testCase.expectedResult, result) {
+
+ t.Fatalf("List method returned: \n%v\n and it was expected: \n%v", result, testCase.expectedResult)
+ }
}
})
}
}
func TestDeleteService(t *testing.T) {
- namespace := "test1"
- name := "mock-service"
testCases := []struct {
label string
- input string
+ input map[string]string
clientOutput *coreV1.Service
}{
{
label: "Sucessfully to delete an existing service",
- input: name,
+ input: map[string]string{"name": "test-service", "namespace": "test-namespace"},
clientOutput: &coreV1.Service{
ObjectMeta: metaV1.ObjectMeta{
- Name: name,
- Namespace: namespace,
+ Name: "test-service",
+ Namespace: "test-namespace",
+ },
+ },
+ },
+ {
+ label: "Sucessfully delete an existing service in default namespace",
+ input: map[string]string{"name": "test-service", "namespace": ""},
+ clientOutput: &coreV1.Service{
+ ObjectMeta: metaV1.ObjectMeta{
+ Name: "test-service",
+ Namespace: "default",
},
},
},
@@ -154,7 +191,7 @@ func TestDeleteService(t *testing.T) {
for _, testCase := range testCases {
client := testclient.NewSimpleClientset(testCase.clientOutput)
t.Run(testCase.label, func(t *testing.T) {
- err := Delete(testCase.input, namespace, client)
+ err := Delete(testCase.input["name"], testCase.input["namespace"], client)
if err != nil {
t.Fatalf("Delete method returned an error (%s)", err)
}
@@ -163,36 +200,70 @@ func TestDeleteService(t *testing.T) {
}
func TestGetService(t *testing.T) {
- namespace := "test1"
- name := "mock-service"
testCases := []struct {
label string
- input string
+ input map[string]string
clientOutput *coreV1.Service
expectedResult string
+ expectedError string
}{
{
label: "Sucessfully to get an existing service",
- input: name,
+ input: map[string]string{"name": "test-service", "namespace": "test-namespace"},
clientOutput: &coreV1.Service{
ObjectMeta: metaV1.ObjectMeta{
- Name: name,
- Namespace: namespace,
+ Name: "test-service",
+ Namespace: "test-namespace",
},
},
- expectedResult: name,
+ expectedResult: "test-service",
+ },
+ {
+ label: "Sucessfully get an existing service from default namespaces",
+ input: map[string]string{"name": "test-service", "namespace": ""},
+ clientOutput: &coreV1.Service{
+ ObjectMeta: metaV1.ObjectMeta{
+ Name: "test-service",
+ Namespace: "default",
+ },
+ },
+ expectedResult: "test-service",
+ },
+ {
+ label: "Fail to get an non-existing namespace",
+ input: map[string]string{"name": "test-name", "namespace": "test-namespace"},
+ clientOutput: &coreV1.Service{
+ ObjectMeta: metaV1.ObjectMeta{
+ Name: "test-service",
+ Namespace: "default",
+ },
+ },
+ expectedError: "not found",
},
}
for _, testCase := range testCases {
client := testclient.NewSimpleClientset(testCase.clientOutput)
t.Run(testCase.label, func(t *testing.T) {
- result, err := Get(testCase.input, namespace, client)
+ result, err := Get(testCase.input["name"], testCase.input["namespace"], client)
if err != nil {
- t.Fatalf("Get method returned an error (%s)", err)
- }
- if !reflect.DeepEqual(testCase.expectedResult, result) {
- t.Fatalf("Get method returned %v and it was expected (%v)", result, testCase.expectedResult)
+ if testCase.expectedError == "" {
+ t.Fatalf("Get method return an un-expected (%s)", err)
+ }
+ if !strings.Contains(string(err.Error()), testCase.expectedError) {
+ t.Fatalf("Get method returned an error (%s)", err)
+ }
+ } else {
+ if testCase.expectedError != "" && testCase.expectedResult == "" {
+ t.Fatalf("Get method was expecting \"%s\" error message", testCase.expectedError)
+ }
+ if result == "" {
+ t.Fatal("Get method returned nil result")
+ }
+ if !reflect.DeepEqual(testCase.expectedResult, result) {
+
+ t.Fatalf("Get method returned: \n%v\n and it was expected: \n%v", result, testCase.expectedResult)
+ }
}
})
}