bf65c8591c003f5a2536be96b0bac486d768e188
[dcaegen2/collectors/hv-ves.git] /
1 package org.onap.dcae.collectors.veshv.impl.adapters
2
3 import com.nhaarman.mockito_kotlin.mock
4 import com.nhaarman.mockito_kotlin.whenever
5 import org.jetbrains.spek.api.Spek
6 import org.jetbrains.spek.api.dsl.given
7 import org.jetbrains.spek.api.dsl.it
8 import org.onap.ves.VesEventV5.VesEvent.CommonEventHeader.Domain
9 import reactor.core.publisher.Mono
10 import java.util.*
11 import kotlin.test.assertEquals
12
13 /**
14  * @author Jakub Dudycz <jakub.dudycz@nokia.com>
15  * @since May 2018
16  */
17 internal object ConsulConfigurationProviderTest : Spek({
18
19     given("valid resource url") {
20         val testUrl = "http://valid-url/"
21         val httpAdapterMock: HttpAdapter = mock()
22         val consulConfigProvider = ConsulConfigurationProvider(testUrl, httpAdapterMock)
23
24         whenever(httpAdapterMock.getResponse(testUrl)).thenReturn(Mono.just(constructConsulResponse()))
25
26
27         it("should create valid collector configuration") {
28             val response = consulConfigProvider().blockFirst()
29             assertEquals("val1", response.kafkaBootstrapServers)
30             val route = response.routing.routes[0]
31             assertEquals(Domain.MEASUREMENTS_FOR_VF_SCALING, route.domain)
32             assertEquals("val3", route.targetTopic)
33         }
34     }
35 })
36
37 fun constructConsulResponse(): String {
38
39     val config = """{
40         "kafkaBootstrapServers": "val1",
41         "routing": {
42             "fromDomain": 2,
43             "toTopic": "val3"
44         }
45     }"""
46
47     val encodedValue = String(Base64.getEncoder().encode(config.toByteArray()))
48
49     return """[
50         {
51             "CreateIndex": 100,
52             "ModifyIndex": 200,
53             "LockIndex": 200,
54             "Key": "zip",
55             "Flags": 0,
56             "Value": "$encodedValue",
57             "Session": "adf4238a-882b-9ddc-4a9d-5b6758e4159e"
58         }
59     ]"""
60 }