G release step 1 of 2
[ric-plt/e2mgr.git] / tools / RoutingManagerSimulator / configuration / configuration_test.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16
17 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20
21 package configuration
22
23 import (
24         "github.com/stretchr/testify/assert"
25         "gopkg.in/yaml.v2"
26         "io/ioutil"
27         "os"
28         "testing"
29 )
30
31 func TestParseConfigurationSuccess(t *testing.T) {
32         config := ParseConfiguration()
33         assert.Equal(t, 12020, config.Http.Port)
34 }
35
36 func TestParseConfigurationFileNotFoundFailure(t *testing.T) {
37         configPath := "../resources/configuration.yaml"
38         configPathTmp := "../resources/configuration.yaml_tmp"
39         err := os.Rename(configPath, configPathTmp)
40         if err != nil {
41                 t.Errorf("#TestParseConfigurationFileNotFoundFailure - failed to rename configuration file: %s\n", configPath)
42         }
43         defer func() {
44                 err = os.Rename(configPathTmp, configPath)
45                 if err != nil {
46                         t.Errorf("#TestParseConfigurationFileNotFoundFailure - failed to rename configuration file: %s\n", configPath)
47                 }
48         }()
49         assert.Panics(t, func() { ParseConfiguration() })
50 }
51
52 func TestHttpConfigNotFoundFailure(t *testing.T) {
53         configPath := "../resources/configuration.yaml"
54         configPathTmp := "../resources/configuration.yaml_tmp"
55         err := os.Rename(configPath, configPathTmp)
56         if err != nil {
57                 t.Errorf("#TestHttpConfigNotFoundFailure - failed to rename configuration file: %s\n", configPath)
58         }
59         defer func() {
60                 err = os.Rename(configPathTmp, configPath)
61                 if err != nil {
62                         t.Errorf("#TestHttpConfigNotFoundFailure - failed to rename configuration file: %s\n", configPath)
63                 }
64         }()
65         yamlMap := map[string]interface{}{}
66         buf, err := yaml.Marshal(yamlMap)
67         if err != nil {
68                 t.Errorf("#TestHttpConfigNotFoundFailure - failed to marshal configuration map\n")
69         }
70         err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
71         if err != nil {
72                 t.Errorf("#TestHttpConfigNotFoundFailure - failed to write configuration file: %s\n", configPath)
73         }
74         assert.PanicsWithValue(t, "#configuration.fillHttpConfig - failed to fill HTTP configuration: The entry 'http' not found\n",
75                 func() { ParseConfiguration() })
76 }