X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fappmgr%2Fdesc_test.go;fp=cmd%2Fappmgr%2Fdesc_test.go;h=0000000000000000000000000000000000000000;hb=34e4383c438f87023bc411d9b0baa4a828a7e306;hp=8f005a1be45e42755e4312a3a8155c12624bf711;hpb=4703b1a7457cf072640adbc0f5487a0675f5b6d3;p=ric-plt%2Fappmgr.git diff --git a/cmd/appmgr/desc_test.go b/cmd/appmgr/desc_test.go deleted file mode 100755 index 8f005a1..0000000 --- a/cmd/appmgr/desc_test.go +++ /dev/null @@ -1,322 +0,0 @@ -/* -================================================================================== - Copyright (c) 2019 AT&T Intellectual Property. - Copyright (c) 2019 Nokia - - 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 main - -import ( - "encoding/json" - "errors" - "log" - "reflect" - "testing" -) - -var helmSearchOutput = ` -helm-repo/anr 0.0.1 1.0 Helm Chart for Nokia ANR (Automatic Neighbour Relation) xAPP -helm-repo/appmgr 0.0.2 1.0 Helm Chart for xAppManager -helm-repo/dualco 0.0.1 1.0 Helm Chart for Nokia dualco xAPP -helm-repo/reporter 0.0.1 1.0 Helm Chart for Reporting xAPP -helm-repo/uemgr 0.0.1 1.0 Helm Chart for Nokia uemgr xAPP -` - -var kubectlConfigmapOutput = ` -{ - "local": { - "host": ":8080" - }, - "logger": { - "level": 3 - }, - "rmr": { - "protPort": "tcp:4560", - "maxSize": 2072, - "numWorkers": 1, - "txMessages": ["RIC_X2_LOAD_INFORMATION"], - "rxMessages": ["RIC_X2_LOAD_INFORMATION"] - }, - "db": { - "namespace": "ricxapp", - "host": "dbaas", - "port": 6379 - } -} -` - -type ConfigSample struct { - Level int - Host string -} - -type MockedConfigMapper struct { -} - -func (cm *MockedConfigMapper) ReadSchema(name string, c *XAppConfig) (err error) { - return -} - -func (cm *MockedConfigMapper) UploadConfig() (cfg []XAppConfig) { - return -} - -func (cm *MockedConfigMapper) CreateConfigMap(r XAppConfig) (errList []CMError, err error) { - return -} - -func (cm *MockedConfigMapper) GetConfigMap(m XappDeploy, c *interface{}) (err error) { - return -} - -func (cm *MockedConfigMapper) UpdateConfigMap(r XAppConfig) (errList []CMError, err error) { - return -} - -func (cm *MockedConfigMapper) DeleteConfigMap(r XAppConfig) (c interface{}, err error) { - return -} - -func (cm *MockedConfigMapper) PurgeConfigMap(m XappDeploy) (c interface{}, err error) { - return -} - -func (cm *MockedConfigMapper) RestoreConfigMap(m XappDeploy, c interface{}) (err error) { - return -} - -func (cm *MockedConfigMapper) ReadConfigMap(name string, ns string, c *interface{}) (err error) { - return -} - -func (cm *MockedConfigMapper) ApplyConfigMap(r XAppConfig, action string) (err error) { - return -} - -func (cm *MockedConfigMapper) FetchChart(name string) (err error) { - return -} - -func (cm *MockedConfigMapper) GetMessages(name string) (msgs MessageTypes) { - return -} - -func (cm *MockedConfigMapper) GetNamespace(ns string) (n string) { - return -} - -func (cm *MockedConfigMapper) GetNamesFromHelmRepo() (names []string) { - return -} - -// Test cases -func TestGetMessages(t *testing.T) { - cm := ConfigMap{} - expectedMsgs := MessageTypes{ - TxMessages: []string{"RIC_X2_LOAD_INFORMATION"}, - RxMessages: []string{"RIC_X2_LOAD_INFORMATION"}, - } - - KubectlExec = func(args string) (out []byte, err error) { - return []byte(kubectlConfigmapOutput), nil - } - - result := cm.GetMessages("dummy-xapp") - if !reflect.DeepEqual(result, expectedMsgs) { - t.Errorf("TestGetMessages failed: expected: %v, got: %v", expectedMsgs, result) - } -} - -func TestHelmNamespace(t *testing.T) { - cm := ConfigMap{} - - if cm.GetNamespace("pltxapp") != "pltxapp" { - t.Errorf("getNamespace failed!") - } - - if cm.GetNamespace("") != "default" { - t.Errorf("getNamespace failed!") - } -} - -func TestFetchChartFails(t *testing.T) { - cm := ConfigMap{} - - if cm.FetchChart("dummy-xapp") == nil { - t.Errorf("TestFetchChart failed!") - } -} - -func TestFetchChartSuccess(t *testing.T) { - cm := ConfigMap{} - - HelmExec = func(args string) (out []byte, err error) { - return - } - - if cm.FetchChart("dummy-xapp") != nil { - t.Errorf("TestFetchChart failed!") - } -} - -func TestGetNamesFromHelmRepoSuccess(t *testing.T) { - cm := ConfigMap{} - expectedResult := []string{"anr", "appmgr", "dualco", "reporter", "uemgr"} - HelmExec = func(args string) (out []byte, err error) { - return []byte(helmSearchOutput), nil - } - - names := cm.GetNamesFromHelmRepo() - if !reflect.DeepEqual(names, expectedResult) { - t.Errorf("GetNamesFromHelmRepo failed: expected %v, got %v", expectedResult, names) - } -} - -func TestGetNamesFromHelmRepoFailure(t *testing.T) { - cm := ConfigMap{} - expectedResult := []string{} - HelmExec = func(args string) (out []byte, err error) { - return []byte(helmSearchOutput), errors.New("Command failed!") - } - - names := cm.GetNamesFromHelmRepo() - if names != nil { - t.Errorf("GetNamesFromHelmRepo failed: expected %v, got %v", expectedResult, names) - } -} - -func TestApplyConfigMapSuccess(t *testing.T) { - cm := ConfigMap{} - m := ConfigMetadata{Name: "dummy-xapp", Namespace: "ricxapp"} - s := ConfigSample{5, "localhost"} - - KubectlExec = func(args string) (out []byte, err error) { - log.Println("TestApplyConfigMapSuccess: ", args) - return []byte(`{"logger": {"level": 2}}`), nil - } - - err := cm.ApplyConfigMap(XAppConfig{Metadata: m, Configuration: s}, "create") - if err != nil { - t.Errorf("ApplyConfigMap failed: %v", err) - } -} - -func TestRestoreConfigMapSuccess(t *testing.T) { - cm := ConfigMap{} - m := XappDeploy{Name: "dummy-xapp", Namespace: "ricxapp"} - s := ConfigSample{5, "localhost"} - - KubectlExec = func(args string) (out []byte, err error) { - log.Println("TestRestoreConfigMapSuccess: ", args) - return []byte(`{"logger": {"level": 2}}`), nil - } - - err := cm.RestoreConfigMap(m, s) - if err != nil { - t.Errorf("RestoreConfigMap failed: %v", err) - } -} - -func TestDeleteConfigMapSuccess(t *testing.T) { - cm := ConfigMap{} - - HelmExec = func(args string) (out []byte, err error) { - return []byte("ok"), nil - } - - KubectlExec = func(args string) (out []byte, err error) { - log.Println("TestDeleteConfigMapSuccess: ", args) - return []byte(`{"logger": {"level": 2}}`), nil - } - - c, err := cm.DeleteConfigMap(XAppConfig{}) - if err != nil { - t.Errorf("DeleteConfigMap failed: %v -> %v", err, c) - } -} - -func TestPurgeConfigMapSuccess(t *testing.T) { - cm := ConfigMap{} - - HelmExec = func(args string) (out []byte, err error) { - return []byte("ok"), nil - } - - KubectlExec = func(args string) (out []byte, err error) { - return []byte(`{"logger": {"level": 2}}`), nil - } - - c, err := cm.PurgeConfigMap(XappDeploy{}) - if err != nil { - t.Errorf("PurgeConfigMap failed: %v -> %v", err, c) - } -} - -func TestCreateConfigMapFails(t *testing.T) { - cm := ConfigMap{} - - c, err := cm.CreateConfigMap(XAppConfig{}) - if err == nil { - t.Errorf("CreateConfigMap failed: %v -> %v", err, c) - } -} - -func TestUpdateConfigMapFails(t *testing.T) { - cm := ConfigMap{} - - c, err := cm.UpdateConfigMap(XAppConfig{}) - if err == nil { - t.Errorf("CreateConfigMap failed: %v -> %v", err, c) - } -} - -func TestValidationSuccess(t *testing.T) { - cm := ConfigMap{} - var d interface{} - var cfg map[string]interface{} - - err := json.Unmarshal([]byte(`{"local": {"host": ":8080"}, "logger": {"level": 3}}`), &cfg) - - err = cm.ReadFile("./test/schema.json", &d) - if err != nil { - t.Errorf("ReadFile failed: %v -> %v", err, d) - } - - feedback, err := cm.doValidate(d, cfg) - if err != nil { - t.Errorf("doValidate failed: %v -> %v", err, feedback) - } -} - -func TestValidationFails(t *testing.T) { - cm := ConfigMap{} - var d interface{} - var cfg map[string]interface{} - - err := json.Unmarshal([]byte(`{"local": {"host": ":8080"}, "logger": {"level": "INVALID"}}`), &cfg) - - err = cm.ReadFile("./test/schema.json", &d) - if err != nil { - t.Errorf("ConfigMetadata failed: %v -> %v", err, d) - } - - feedback, err := cm.doValidate(d, cfg) - if err == nil { - t.Errorf("doValidate should faile but didn't: %v -> %v", err, feedback) - } - - log.Println("Feedbacks: ", feedback) -}