2 * ============LICENSE_START=======================================================
3 * dcaegen2-collectors-veshv
4 * ================================================================================
5 * Copyright (C) 2019 NOKIA
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.dcae.collectors.veshv.config.impl
22 import arrow.core.None
23 import arrow.core.Some
24 import com.nhaarman.mockitokotlin2.mock
25 import org.assertj.core.api.Assertions.assertThat
26 import org.assertj.core.api.Assertions.fail
27 import org.jetbrains.spek.api.Spek
28 import org.jetbrains.spek.api.dsl.describe
29 import org.jetbrains.spek.api.dsl.it
30 import org.onap.dcae.collectors.veshv.config.api.model.routing
31 import org.onap.dcae.collectors.veshv.config.impl.ConfigurationValidator.Companion.DEFAULT_LOG_LEVEL
32 import org.onap.dcae.collectors.veshv.utils.logging.LogLevel
33 import org.onap.dcaegen2.services.sdk.security.ssl.SecurityKeys
34 import java.time.Duration
36 internal object ConfigurationValidatorTest : Spek({
37 describe("ConfigurationValidator") {
38 val cut = ConfigurationValidator()
40 describe("validating partial configuration with missing fields") {
41 val config = PartialConfiguration(
42 Some(PartialServerConfig(listenPort = Some(1)))
45 it("should return ValidationError") {
46 val result = cut.validate(config)
47 assertThat(result.isLeft()).isTrue()
51 describe("validating configuration with empty log level") {
52 val config = PartialConfiguration(
53 Some(PartialServerConfig(
58 Some(PartialCbsConfig(
62 Some(PartialSecurityConfig(
65 Some(PartialCollectorConfig(
69 Some(routing { }.build())
74 it("should use default log level") {
75 val result = cut.validate(config)
78 fail("Configuration should have been created successfully")
81 assertThat(it.logLevel).isEqualTo(DEFAULT_LOG_LEVEL)
87 describe("validating complete configuration") {
88 val idleTimeoutSec = 10
89 val firstReqDelaySec = 10
90 val securityKeys = Some(mock<SecurityKeys>())
91 val routing = routing { }.build()
93 val config = PartialConfiguration(
94 Some(PartialServerConfig(
99 Some(PartialCbsConfig(
100 Some(firstReqDelaySec),
103 Some(PartialSecurityConfig(
106 Some(PartialCollectorConfig(
115 it("should create valid configuration") {
116 val result = cut.validate(config)
119 fail("Configuration should have been created successfully")
122 assertThat(it.server.idleTimeout)
123 .isEqualTo(Duration.ofSeconds(idleTimeoutSec.toLong()))
125 assertThat(it.security.keys)
126 .isEqualTo(securityKeys)
128 assertThat(it.cbs.firstRequestDelay)
129 .isEqualTo(Duration.ofSeconds(firstReqDelaySec.toLong()))
131 assertThat(it.collector.routing)