aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator
diff options
context:
space:
mode:
authorSrivahni Chivukula <srivahni.chivukula@intel.com>2020-02-20 16:23:58 -0800
committerSrivahni Chivukula <srivahni.chivukula@intel.com>2020-03-12 18:35:54 +0000
commitaf34fbc0e67668723eb69a800165f6bfb5100dbf (patch)
treebc3fe5a6607d4c633e05c56e4b436ee9d0fe5796 /src/orchestrator
parent84cfa53b496155eaad4a2749f7799d6a523554a4 (diff)
Added tests to Composite App API
Issue-ID: MULTICLOUD-994 Signed-off-by: Srivahni Chivukula <srivahni.chivukula@intel.com> Change-Id: I39f3dc28bca3ff7cefda006cb96eb86c2c069efe
Diffstat (limited to 'src/orchestrator')
-rw-r--r--src/orchestrator/api/compositeapphandler.go (renamed from src/orchestrator/api/composite_app_handler.go)0
-rw-r--r--src/orchestrator/pkg/module/app_intent_test.go2
-rw-r--r--src/orchestrator/pkg/module/compositeapp.go6
-rw-r--r--src/orchestrator/pkg/module/compositeapp_test.go236
-rw-r--r--src/orchestrator/pkg/module/deployment_intent_groups_test.go2
-rw-r--r--src/orchestrator/pkg/module/generic_placement_intent_test.go2
6 files changed, 242 insertions, 6 deletions
diff --git a/src/orchestrator/api/composite_app_handler.go b/src/orchestrator/api/compositeapphandler.go
index 42c72cdb..42c72cdb 100644
--- a/src/orchestrator/api/composite_app_handler.go
+++ b/src/orchestrator/api/compositeapphandler.go
diff --git a/src/orchestrator/pkg/module/app_intent_test.go b/src/orchestrator/pkg/module/app_intent_test.go
index 5a4f7693..fa2e4403 100644
--- a/src/orchestrator/pkg/module/app_intent_test.go
+++ b/src/orchestrator/pkg/module/app_intent_test.go
@@ -118,7 +118,7 @@ func TestCreateAppIntent(t *testing.T) {
},
CompositeAppKey{CompositeAppName: "testCompositeApp",
Version: "testCompositeAppVersion", Project: "testProject"}.String(): {
- "compositeAppmetadata": []byte(
+ "compositeapp": []byte(
"{\"metadata\":{" +
"\"name\":\"testCompositeApp\"," +
"\"description\":\"description\"," +
diff --git a/src/orchestrator/pkg/module/compositeapp.go b/src/orchestrator/pkg/module/compositeapp.go
index 0a4e158c..74fbe0d5 100644
--- a/src/orchestrator/pkg/module/compositeapp.go
+++ b/src/orchestrator/pkg/module/compositeapp.go
@@ -70,8 +70,8 @@ type CompositeAppManager interface {
// CompositeAppClient implements the CompositeAppManager
// It will also be used to maintain some localized state
type CompositeAppClient struct {
- storeName string
- tagMeta, tagContent string
+ storeName string
+ tagMeta string
}
// NewCompositeAppClient returns an instance of the CompositeAppClient
@@ -79,7 +79,7 @@ type CompositeAppClient struct {
func NewCompositeAppClient() *CompositeAppClient {
return &CompositeAppClient{
storeName: "orchestrator",
- tagMeta: "compositeAppmetadata",
+ tagMeta: "compositeapp",
}
}
diff --git a/src/orchestrator/pkg/module/compositeapp_test.go b/src/orchestrator/pkg/module/compositeapp_test.go
new file mode 100644
index 00000000..a1a2ec1d
--- /dev/null
+++ b/src/orchestrator/pkg/module/compositeapp_test.go
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2020 Intel Corporation, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package module
+
+import (
+ "reflect"
+ "strings"
+ "testing"
+
+ "github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/db"
+
+ pkgerrors "github.com/pkg/errors"
+)
+
+func TestCreateCompositeApp(t *testing.T) {
+ testCases := []struct {
+ label string
+ inpCompApp CompositeApp
+ inpProject string
+ expectedError string
+ mockdb *db.MockDB
+ expected CompositeApp
+ }{
+ {
+ label: "Create Composite App",
+ inpCompApp: CompositeApp{
+ Metadata: CompositeAppMetaData{
+ Name: "testCompositeApp",
+ Description: "A sample composite app used for unit testing",
+ UserData1: "userData1",
+ UserData2: "userData2",
+ },
+ Spec: CompositeAppSpec{
+ Version: "v1",
+ },
+ },
+
+ inpProject: "testProject",
+ expected: CompositeApp{
+ Metadata: CompositeAppMetaData{
+ Name: "testCompositeApp",
+ Description: "A sample composite app used for unit testing",
+ UserData1: "userData1",
+ UserData2: "userData2",
+ },
+ Spec: CompositeAppSpec{
+ Version: "v1",
+ },
+ },
+ expectedError: "",
+ mockdb: &db.MockDB{
+ Items: map[string]map[string][]byte{
+ ProjectKey{ProjectName: "testProject"}.String(): {
+ "projectmetadata": []byte(
+ "{" +
+ "\"metadata\": {" +
+ "\"Name\": \"testProject\"," +
+ "\"Description\": \"Test project for unit testing\"," +
+ "\"UserData1\": \"userData1\"," +
+ "\"UserData2\": \"userData2\"}" +
+ "}"),
+ },
+ },
+ },
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.label, func(t *testing.T) {
+ db.DBconn = testCase.mockdb
+ impl := NewCompositeAppClient()
+ got, err := impl.CreateCompositeApp(testCase.inpCompApp, testCase.inpProject)
+ if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Create returned an unexpected error %s", err)
+ }
+ if strings.Contains(err.Error(), testCase.expectedError) == false {
+ t.Fatalf("Create returned an unexpected error %s", err)
+ }
+ } else {
+ if reflect.DeepEqual(testCase.expected, got) == false {
+ t.Errorf("Create returned unexpected body: got %v;"+
+ " expected %v", got, testCase.expected)
+ }
+ }
+ })
+ }
+}
+
+func TestGetCompositeApp(t *testing.T) {
+
+ testCases := []struct {
+ label string
+ inpName string
+ inpVersion string
+ inpProject string
+ expectedError string
+ mockdb *db.MockDB
+ expected CompositeApp
+ }{
+ {
+ label: "Get Composite App",
+ inpName: "testCompositeApp",
+ inpVersion: "v1",
+ inpProject: "testProject",
+ expected: CompositeApp{
+ Metadata: CompositeAppMetaData{
+ Name: "testCompositeApp",
+ Description: "Test CompositeApp for unit testing",
+ UserData1: "userData1",
+ UserData2: "userData2",
+ },
+ Spec: CompositeAppSpec{
+ Version: "v1",
+ },
+ },
+ expectedError: "",
+ mockdb: &db.MockDB{
+ Items: map[string]map[string][]byte{
+ CompositeAppKey{CompositeAppName: "testCompositeApp", Version: "v1", Project: "testProject"}.String(): {
+ "compositeapp": []byte(
+ "{" +
+ "\"metadata\":{" +
+ "\"Name\":\"testCompositeApp\"," +
+ "\"Description\":\"Test CompositeApp for unit testing\"," +
+ "\"UserData1\":\"userData1\"," +
+ "\"UserData2\":\"userData2\"}," +
+ "\"spec\":{" +
+ "\"Version\":\"v1\"}" +
+ "}"),
+ },
+ },
+ },
+ },
+ {
+ label: "Get Error",
+ expectedError: "DB Error",
+ mockdb: &db.MockDB{
+ Err: pkgerrors.New("DB Error"),
+ },
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.label, func(t *testing.T) {
+ db.DBconn = testCase.mockdb
+ impl := NewCompositeAppClient()
+ got, err := impl.GetCompositeApp(testCase.inpName, testCase.inpVersion, testCase.inpProject)
+ if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Get returned an unexpected error: %s", err)
+ }
+ if strings.Contains(err.Error(), testCase.expectedError) == false {
+ t.Fatalf("Get returned an unexpected error: %s", err)
+ }
+ } else {
+ if reflect.DeepEqual(testCase.expected, got) == false {
+ t.Errorf("Get returned unexpected body: got %v;"+
+ " expected %v", got, testCase.expected)
+ }
+ }
+ })
+ }
+}
+
+func TestDeleteCompositeApp(t *testing.T) {
+
+ testCases := []struct {
+ label string
+ inpName string
+ inpVersion string
+ inpProject string
+ expectedError string
+ mockdb *db.MockDB
+ }{
+ {
+ label: "Delete Composite app",
+ inpName: "testCompositeApp",
+ inpVersion: "v1",
+ inpProject: "testProject",
+ mockdb: &db.MockDB{
+ Items: map[string]map[string][]byte{
+ CompositeAppKey{CompositeAppName: "testCompositeApp", Version: "v1", Project: "testProject"}.String(): {
+ "compositeapp": []byte(
+ "{" +
+ "\"metadata\":{" +
+ "\"Name\":\"testCompositeApp\"," +
+ "\"Description\":\"Test CompositeApp for unit testing\"," +
+ "\"UserData1\":\"userData1\"," +
+ "\"UserData2\":\"userData2\"}," +
+ "\"spec\":{" +
+ "\"Version\":\"v1\"}" +
+ "}"),
+ },
+ },
+ },
+ },
+ {
+ label: "Delete Error",
+ expectedError: "DB Error",
+ mockdb: &db.MockDB{
+ Err: pkgerrors.New("DB Error"),
+ },
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.label, func(t *testing.T) {
+ db.DBconn = testCase.mockdb
+ impl := NewCompositeAppClient()
+ err := impl.DeleteCompositeApp(testCase.inpName, testCase.inpVersion, testCase.inpProject)
+ if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Delete returned an unexpected error %s", err)
+ }
+ if strings.Contains(err.Error(), testCase.expectedError) == false {
+ t.Fatalf("Delete returned an unexpected error %s", err)
+ }
+ }
+ })
+ }
+}
diff --git a/src/orchestrator/pkg/module/deployment_intent_groups_test.go b/src/orchestrator/pkg/module/deployment_intent_groups_test.go
index c0876ceb..13dafd12 100644
--- a/src/orchestrator/pkg/module/deployment_intent_groups_test.go
+++ b/src/orchestrator/pkg/module/deployment_intent_groups_test.go
@@ -94,7 +94,7 @@ func TestCreateDeploymentIntentGroup(t *testing.T) {
},
CompositeAppKey{CompositeAppName: "testCompositeApp",
Version: "testCompositeAppVersion", Project: "testProject"}.String(): {
- "compositeAppmetadata": []byte(
+ "compositeapp": []byte(
"{\"metadata\":{" +
"\"name\":\"testCompositeApp\"," +
"\"description\":\"description\"," +
diff --git a/src/orchestrator/pkg/module/generic_placement_intent_test.go b/src/orchestrator/pkg/module/generic_placement_intent_test.go
index c87f9ddc..7121e055 100644
--- a/src/orchestrator/pkg/module/generic_placement_intent_test.go
+++ b/src/orchestrator/pkg/module/generic_placement_intent_test.go
@@ -72,7 +72,7 @@ func TestCreateGenericPlacementIntent(t *testing.T) {
},
CompositeAppKey{CompositeAppName: "testCompositeApp",
Version: "testCompositeAppVersion", Project: "testProject"}.String(): {
- "compositeAppmetadata": []byte(
+ "compositeapp": []byte(
"{\"metadata\":{" +
"\"name\":\"testCompositeApp\"," +
"\"description\":\"description\"," +