NONRTRIC - Enrichment Coordinator Service, Changed error codes
[nonrtric.git] / dmaap-mediator-producer / internal / config / config_test.go
1 // -
2 //   ========================LICENSE_START=================================
3 //   O-RAN-SC
4 //   %%
5 //   Copyright (C) 2021: Nordix Foundation
6 //   %%
7 //   Licensed under the Apache License, Version 2.0 (the "License");
8 //   you may not use this file except in compliance with the License.
9 //   You may obtain a copy of the License at
10 //
11 //        http://www.apache.org/licenses/LICENSE-2.0
12 //
13 //   Unless required by applicable law or agreed to in writing, software
14 //   distributed under the License is distributed on an "AS IS" BASIS,
15 //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 //   See the License for the specific language governing permissions and
17 //   limitations under the License.
18 //   ========================LICENSE_END===================================
19 //
20
21 package config
22
23 import (
24         "bytes"
25         "os"
26         "reflect"
27         "testing"
28
29         log "github.com/sirupsen/logrus"
30         "github.com/stretchr/testify/require"
31 )
32
33 func TestNew_envVarsSetConfigContainSetValues(t *testing.T) {
34         os.Setenv("LOG_LEVEL", "Debug")
35         os.Setenv("INFO_PRODUCER_HOST", "producerHost")
36         os.Setenv("INFO_PRODUCER_PORT", "8095")
37         os.Setenv("INFO_COORD_ADDR", "infoCoordAddr")
38         os.Setenv("MR_HOST", "mrHost")
39         os.Setenv("MR_PORT", "3908")
40         t.Cleanup(func() {
41                 os.Clearenv()
42         })
43         wantConfig := Config{
44                 LogLevel:               "Debug",
45                 InfoProducerHost:       "producerHost",
46                 InfoProducerPort:       8095,
47                 InfoCoordinatorAddress: "infoCoordAddr",
48                 MRHost:                 "mrHost",
49                 MRPort:                 3908,
50         }
51         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
52                 t.Errorf("New() = %v, want %v", got, &wantConfig)
53         }
54 }
55
56 func TestNew_faultyIntValueSetConfigContainDefaultValueAndWarnInLog(t *testing.T) {
57         assertions := require.New(t)
58         var buf bytes.Buffer
59         log.SetOutput(&buf)
60
61         os.Setenv("INFO_PRODUCER_PORT", "wrong")
62         t.Cleanup(func() {
63                 log.SetOutput(os.Stderr)
64                 os.Clearenv()
65         })
66         wantConfig := Config{
67                 LogLevel:               "Info",
68                 InfoProducerHost:       "",
69                 InfoProducerPort:       8085,
70                 InfoCoordinatorAddress: "http://enrichmentservice:8083",
71                 MRHost:                 "http://message-router.onap",
72                 MRPort:                 3904,
73         }
74         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
75                 t.Errorf("New() = %v, want %v", got, &wantConfig)
76         }
77         logString := buf.String()
78         assertions.Contains(logString, "Invalid int value: wrong for variable: INFO_PRODUCER_PORT. Default value: 8085 will be used")
79 }
80
81 func TestNew_envVarsNotSetConfigContainDefaultValues(t *testing.T) {
82         wantConfig := Config{
83                 LogLevel:               "Info",
84                 InfoProducerHost:       "",
85                 InfoProducerPort:       8085,
86                 InfoCoordinatorAddress: "http://enrichmentservice:8083",
87                 MRHost:                 "http://message-router.onap",
88                 MRPort:                 3904,
89         }
90         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
91                 t.Errorf("New() = %v, want %v", got, &wantConfig)
92         }
93 }