Initial job creation
[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_SUPERVISION_CALLBACK_HOST", "supervisionCallbackHost")
36         os.Setenv("INFO_PRODUCER_SUPERVISION_CALLBACK_PORT", "8095")
37         os.Setenv("INFO_JOB_CALLBACK_HOST", "jobCallbackHost")
38         os.Setenv("INFO_JOB_CALLBACK_PORT", "8096")
39         os.Setenv("INFO_COORD_ADDR", "infoCoordAddr")
40         defer os.Clearenv()
41         wantConfig := Config{
42                 LogLevel:                            "Debug",
43                 InfoProducerSupervisionCallbackHost: "supervisionCallbackHost",
44                 InfoProducerSupervisionCallbackPort: 8095,
45                 InfoJobCallbackHost:                 "jobCallbackHost",
46                 InfoJobCallbackPort:                 8096,
47                 InfoCoordinatorAddress:              "infoCoordAddr",
48         }
49         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
50                 t.Errorf("New() = %v, want %v", got, &wantConfig)
51         }
52 }
53
54 func TestNew_faultyIntValueSetConfigContainDefaultValueAndWarnInLog(t *testing.T) {
55         os.Clearenv()
56         assertions := require.New(t)
57         var buf bytes.Buffer
58         log.SetOutput(&buf)
59         defer func() {
60                 log.SetOutput(os.Stderr)
61         }()
62
63         os.Setenv("INFO_PRODUCER_SUPERVISION_CALLBACK_PORT", "wrong")
64         defer os.Clearenv()
65         wantConfig := Config{
66                 LogLevel:                            "Info",
67                 InfoProducerSupervisionCallbackHost: "",
68                 InfoProducerSupervisionCallbackPort: 8085,
69                 InfoJobCallbackHost:                 "",
70                 InfoJobCallbackPort:                 8086,
71                 InfoCoordinatorAddress:              "http://enrichmentservice:8083",
72         }
73         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
74                 t.Errorf("New() = %v, want %v", got, &wantConfig)
75         }
76         logString := buf.String()
77         assertions.Contains(logString, "Invalid int value: wrong for variable: INFO_PRODUCER_SUPERVISION_CALLBACK_PORT. Default value: 8085 will be used")
78 }
79
80 func TestNew_envVarsNotSetConfigContainDefaultValues(t *testing.T) {
81         os.Clearenv()
82         wantConfig := Config{
83                 LogLevel:                            "Info",
84                 InfoProducerSupervisionCallbackHost: "",
85                 InfoProducerSupervisionCallbackPort: 8085,
86                 InfoJobCallbackHost:                 "",
87                 InfoJobCallbackPort:                 8086,
88                 InfoCoordinatorAddress:              "http://enrichmentservice:8083",
89         }
90         if got := New(); !reflect.DeepEqual(got, &wantConfig) {
91                 t.Errorf("New() = %v, want %v", got, &wantConfig)
92         }
93 }