2 * ============LICENSE_START=======================================================
3 * dcaegen2-collectors-veshv
4 * ================================================================================
5 * Copyright (C) 2018 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.tests.fakes
22 import org.onap.dcae.collectors.veshv.boundary.ConfigurationProvider
23 import org.onap.dcae.collectors.veshv.model.CollectorConfiguration
24 import org.onap.dcae.collectors.veshv.model.routing
25 import org.onap.ves.VesEventV5.VesEvent.CommonEventHeader.Domain
26 import reactor.core.publisher.FluxProcessor
27 import reactor.core.publisher.UnicastProcessor
28 import reactor.retry.RetryExhaustedException
31 const val HVRANMEAS_TOPIC = "ves_hvRanMeas"
32 const val MEASUREMENTS_FOR_VF_SCALING_TOPIC = "ves_hvMeasForVfScaling"
33 const val ALTERNATE_HVRANMEAS_TOPIC = "ves_alternateHvRanMeas"
35 val basicConfiguration: CollectorConfiguration = CollectorConfiguration(
36 kafkaBootstrapServers = "localhost:9969",
39 fromDomain(Domain.HVRANMEAS)
40 toTopic(HVRANMEAS_TOPIC)
41 withFixedPartitioning()
46 val twoDomainsToOneTopicConfiguration: CollectorConfiguration = CollectorConfiguration(
47 kafkaBootstrapServers = "localhost:9969",
50 fromDomain(Domain.HVRANMEAS)
51 toTopic(HVRANMEAS_TOPIC)
52 withFixedPartitioning()
55 fromDomain(Domain.HEARTBEAT)
56 toTopic(HVRANMEAS_TOPIC)
57 withFixedPartitioning()
60 fromDomain(Domain.MEASUREMENTS_FOR_VF_SCALING)
61 toTopic(MEASUREMENTS_FOR_VF_SCALING_TOPIC)
62 withFixedPartitioning()
68 val configurationWithDifferentRouting: CollectorConfiguration = CollectorConfiguration(
69 kafkaBootstrapServers = "localhost:9969",
72 fromDomain(Domain.HVRANMEAS)
73 toTopic(ALTERNATE_HVRANMEAS_TOPIC)
74 withFixedPartitioning()
80 val configurationWithoutRouting: CollectorConfiguration = CollectorConfiguration(
81 kafkaBootstrapServers = "localhost:9969",
86 class FakeConfigurationProvider : ConfigurationProvider {
87 private var shouldThrowException = false
88 private val configStream: FluxProcessor<CollectorConfiguration, CollectorConfiguration> = UnicastProcessor.create()
90 fun updateConfiguration(collectorConfiguration: CollectorConfiguration) =
91 if (shouldThrowException) {
92 configStream.onError(RetryExhaustedException("I'm so tired"))
94 configStream.onNext(collectorConfiguration)
98 fun shouldThrowExceptionOnConfigUpdate(shouldThrowException: Boolean) {
99 this.shouldThrowException = shouldThrowException
102 override fun invoke() = configStream