blob: 0dd1d3590af6aa9836e82b4c92e3ee0501da0a81 [file] [log] [blame]
// -
// ========================LICENSE_START=================================
// O-RAN-SC
// %%
// Copyright (C) 2022: Nordix Foundation
// %%
// 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.
// ========================LICENSE_END===================================
//
package main
import (
"os"
"testing"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
)
func TestNew_envVarsSetConfigContainSetValues(t *testing.T) {
assertions := require.New(t)
os.Setenv("LOG_LEVEL", "Debug")
os.Setenv("CERT_PATH", "CERT_PATH")
os.Setenv("CERT_KEY_PATH", "CERT_KEY_PATH")
os.Setenv("CREDS_GRANT_TYPE", "CREDS_GRANT_TYPE")
os.Setenv("CREDS_CLIENT_SECRET", "CREDS_CLIENT_SECRET")
os.Setenv("CREDS_CLIENT_ID", "CREDS_CLIENT_ID")
os.Setenv("OUTPUT_FILE", "OUTPUT_FILE")
os.Setenv("AUTH_SERVICE_URL", "AUTH_SERVICE_URL")
os.Setenv("REFRESH_MARGIN_SECONDS", "33")
os.Setenv("ROOT_CA_CERTS_PATH", "ROOT_CA_CERTS_PATH")
t.Cleanup(func() {
os.Clearenv()
})
wantConfig := Config{
LogLevel: log.DebugLevel,
CertPath: "CERT_PATH",
KeyPath: "CERT_KEY_PATH",
AuthServiceUrl: "AUTH_SERVICE_URL",
GrantType: "CREDS_GRANT_TYPE",
ClientSecret: "CREDS_CLIENT_SECRET",
ClientId: "CREDS_CLIENT_ID",
AuthTokenOutputFileName: "OUTPUT_FILE",
CACertsPath: "ROOT_CA_CERTS_PATH",
RefreshMarginSeconds: 33,
}
got := NewConfig()
assertions.Equal(nil, validateConfiguration(got))
assertions.Equal(&wantConfig, got)
}
func TestNew_defaultValues(t *testing.T) {
assertions := require.New(t)
wantConfig := Config{
LogLevel: log.InfoLevel,
CertPath: "security/tls.crt",
KeyPath: "security/tls.key",
AuthServiceUrl: "https://localhost:39687/example-singlelogin-sever/login",
GrantType: "",
ClientSecret: "",
ClientId: "",
AuthTokenOutputFileName: "/tmp/authToken.txt",
CACertsPath: "",
RefreshMarginSeconds: 5,
}
got := NewConfig()
assertions.Equal(nil, validateConfiguration(got))
assertions.Equal(&wantConfig, got)
}
func TestNew_invalidValues(t *testing.T) {
assertions := require.New(t)
os.Setenv("LOG_LEVEL", "Junk")
os.Setenv("REFRESH_MARGIN_SECONDS", "Junk")
t.Cleanup(func() {
os.Clearenv()
})
got := NewConfig()
assertions.Equal(log.InfoLevel, got.LogLevel)
assertions.Equal(5, got.RefreshMarginSeconds)
}