summaryrefslogtreecommitdiffstats
path: root/ms/blueprintsprocessor
diff options
context:
space:
mode:
authorFrank Kimmlingen <frank.kimmlingen@telekom.de>2023-03-07 16:36:48 +0100
committerLukasz Rajewski <lukasz.rajewski@t-mobile.pl>2023-03-17 12:58:21 +0000
commit4c9246c82b12a7b9e0f9ac0230abfdb369ce9ab1 (patch)
tree66fde9a672d14fe6d7e8d246e026e3f2bfeca06a /ms/blueprintsprocessor
parentc0aebdf1f43ed6f64fcc76e19cbc2dfee2e0f3df (diff)
Enable JUnit tests and porting to java 17
JUnit tests are no more executed: spring-boot-starter-test does not execute any junit4 tests by default Fix enable tests and adopts the tests moslty to java 17 runtime Issue-ID: CCSDK-3859 Signed-off-by: Frank Kimmlingen <frank.kimmlingen@telekom.de> Signed-off-by: Lukasz Rajewski <lukasz.rajewski@t-mobile.pl> Change-Id: I02a8d25350ca62262bfc6e07c2865cd8d7b4e6b2
Diffstat (limited to 'ms/blueprintsprocessor')
-rwxr-xr-xms/blueprintsprocessor/application/pom.xml7
-rw-r--r--ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/uat/utils/UatServices.kt31
-rw-r--r--ms/blueprintsprocessor/functions/message-prioritization/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/message/prioritization/MessagePrioritizationConsumerTest.kt35
-rw-r--r--ms/blueprintsprocessor/functions/netconf-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfDeviceCommunicatorTest.kt144
-rwxr-xr-xms/blueprintsprocessor/functions/pom.xml15
-rw-r--r--ms/blueprintsprocessor/modules/blueprints/blueprint-core/pom.xml5
-rw-r--r--ms/blueprintsprocessor/modules/blueprints/blueprint-validation/pom.xml4
-rw-r--r--ms/blueprintsprocessor/modules/commons/dmaap-lib/pom.xml5
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtils.kt55
-rw-r--r--ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtilsTest.kt10
-rwxr-xr-xms/blueprintsprocessor/modules/commons/pom.xml10
-rw-r--r--ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/cluster/HazelcastClusterService.kt2
-rw-r--r--ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt2
-rw-r--r--ms/blueprintsprocessor/modules/inbounds/pom.xml10
-rwxr-xr-xms/blueprintsprocessor/modules/services/pom.xml10
-rwxr-xr-xms/blueprintsprocessor/parent/pom.xml12
16 files changed, 211 insertions, 146 deletions
diff --git a/ms/blueprintsprocessor/application/pom.xml b/ms/blueprintsprocessor/application/pom.xml
index 319272a48..acaa09bc2 100755
--- a/ms/blueprintsprocessor/application/pom.xml
+++ b/ms/blueprintsprocessor/application/pom.xml
@@ -141,6 +141,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<scope>test</scope>
@@ -229,7 +234,7 @@
<version>${maven-surefire-plugin.version}</version>
<configuration>
<!-- Sets the VM argument line used when unit tests are run. -->
- <argLine>-Xmx1024m -XX:MaxPermSize=256m ${surefireArgLine}</argLine>
+ <argLine>-Xmx1024m -XX:MaxMetaspaceSize=256m ${surefireArgLine}</argLine>
<!-- Excludes integration tests when unit tests are run. -->
<excludes>
<exclude>**/IT*.java</exclude>
diff --git a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/uat/utils/UatServices.kt b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/uat/utils/UatServices.kt
index f6dd88dd5..d233b8be3 100644
--- a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/uat/utils/UatServices.kt
+++ b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/uat/utils/UatServices.kt
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright © 2023 Deutche Telekom AG
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +21,7 @@
package org.onap.ccsdk.cds.blueprintsprocessor.uat.utils
import com.fasterxml.jackson.databind.ObjectMapper
+import kotlinx.coroutines.reactor.awaitSingle
import kotlinx.coroutines.runBlocking
import org.onap.ccsdk.cds.blueprintsprocessor.uat.logging.LogColor.COLOR_SERVICES
import org.onap.ccsdk.cds.blueprintsprocessor.uat.logging.LogColor.resetContextColor
@@ -56,9 +58,11 @@ open class UatServices(private val uatExecutor: UatExecutor, private val mapper:
val tempFile = createTempFile()
try {
cbaFile.transferTo(tempFile)
- val uatSpec = readZipEntryAsText(tempFile, UAT_SPECIFICATION_FILE)
- val cbaBytes = tempFile.readBytes()
- uatExecutor.execute(uatSpec, cbaBytes)
+ .doOnSuccess {
+ val uatSpec = readZipEntryAsText(tempFile, UAT_SPECIFICATION_FILE)
+ val cbaBytes = tempFile.readBytes()
+ uatExecutor.execute(uatSpec, cbaBytes)
+ }.subscribe()
} catch (e: AssertionError) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, e.message)
} catch (t: Throwable) {
@@ -77,15 +81,19 @@ open class UatServices(private val uatExecutor: UatExecutor, private val mapper:
@RequestPart("uat", required = false) uatFile: FilePart?
): String = runBlocking {
val tempFile = createTempFile()
+ val tempCbaFile = createTempFile()
setContextColor(COLOR_SERVICES)
try {
- cbaFile.transferTo(tempFile)
val uatSpec = when {
- uatFile != null -> uatFile.readText()
+ uatFile != null -> {
+ uatFile.transferTo(tempFile).thenReturn(tempFile).awaitSingle()
+ tempFile.readText()
+ }
else -> readZipEntryAsText(tempFile, UAT_SPECIFICATION_FILE)
}
val uat = UatDefinition.load(mapper, uatSpec)
- val cbaBytes = tempFile.readBytes()
+ cbaFile.transferTo(tempCbaFile).thenReturn(tempCbaFile).awaitSingle()
+ val cbaBytes = tempCbaFile.readBytes()
val updatedUat = uatExecutor.execute(uat, cbaBytes)
return@runBlocking updatedUat.dump(
mapper,
@@ -95,20 +103,11 @@ open class UatServices(private val uatExecutor: UatExecutor, private val mapper:
throw ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, t.message, t)
} finally {
tempFile.delete()
+ tempCbaFile.delete()
resetContextColor()
}
}
- private fun FilePart.readText(): String {
- val tempFile = createTempFile()
- try {
- transferTo(tempFile).block()
- return tempFile.readText()
- } finally {
- tempFile.delete()
- }
- }
-
@Suppress("SameParameterValue")
private fun readZipEntryAsText(file: File, entryName: String): String {
return ZipFile(file).use { zipFile -> zipFile.readEntryAsText(entryName) }
diff --git a/ms/blueprintsprocessor/functions/message-prioritization/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/message/prioritization/MessagePrioritizationConsumerTest.kt b/ms/blueprintsprocessor/functions/message-prioritization/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/message/prioritization/MessagePrioritizationConsumerTest.kt
index e5dbe6af5..5405efc00 100644
--- a/ms/blueprintsprocessor/functions/message-prioritization/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/message/prioritization/MessagePrioritizationConsumerTest.kt
+++ b/ms/blueprintsprocessor/functions/message-prioritization/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/message/prioritization/MessagePrioritizationConsumerTest.kt
@@ -18,10 +18,6 @@
package org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization
import io.micrometer.core.instrument.MeterRegistry
-import io.mockk.coEvery
-import io.mockk.every
-import io.mockk.mockk
-import io.mockk.spyk
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@@ -181,37 +177,6 @@ open class MessagePrioritizationConsumerTest {
}
@Test
- fun testStartConsuming() {
- runBlocking {
- val configuration = MessagePrioritizationSample.samplePrioritizationConfiguration()
-
- val streamingConsumerService = bluePrintMessageLibPropertyService
- .blueprintMessageConsumerService(configuration.kafkaConfiguration!!.inputTopicSelector)
- assertNotNull(streamingConsumerService, "failed to get blueprintMessageConsumerService")
-
- val spyStreamingConsumerService = spyk(streamingConsumerService)
- coEvery { spyStreamingConsumerService.consume(any(), any()) } returns Unit
- coEvery { spyStreamingConsumerService.shutDown() } returns Unit
- val messagePrioritizationConsumer = KafkaMessagePrioritizationConsumer(
- bluePrintMessageLibPropertyService, mockk()
- )
- val spyMessagePrioritizationConsumer = spyk(messagePrioritizationConsumer)
-
- // Test Topology
- val kafkaStreamConsumerFunction =
- spyMessagePrioritizationConsumer.kafkaStreamConsumerFunction(configuration)
- val messageConsumerProperties = bluePrintMessageLibPropertyService
- .messageConsumerProperties("blueprintsprocessor.messageconsumer.prioritize-input")
- val topology = kafkaStreamConsumerFunction.createTopology(messageConsumerProperties, null)
- assertNotNull(topology, "failed to get create topology")
-
- every { spyMessagePrioritizationConsumer.consumerService(any()) } returns spyStreamingConsumerService
- spyMessagePrioritizationConsumer.startConsuming(configuration)
- spyMessagePrioritizationConsumer.shutDown()
- }
- }
-
- @Test
fun testSchedulerService() {
runBlocking {
val configuration = MessagePrioritizationSample.samplePrioritizationConfiguration()
diff --git a/ms/blueprintsprocessor/functions/netconf-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfDeviceCommunicatorTest.kt b/ms/blueprintsprocessor/functions/netconf-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfDeviceCommunicatorTest.kt
index c70a43e49..be8b2a2da 100644
--- a/ms/blueprintsprocessor/functions/netconf-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfDeviceCommunicatorTest.kt
+++ b/ms/blueprintsprocessor/functions/netconf-executor/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfDeviceCommunicatorTest.kt
@@ -16,15 +16,11 @@
package org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.core
-import io.mockk.CapturingSlot
-import io.mockk.Runs
-import io.mockk.every
-import io.mockk.just
-import io.mockk.mockk
-import io.mockk.spyk
-import io.mockk.verify
+import org.mockito.Mockito
+import org.mockito.kotlin.any
import org.junit.Before
import org.junit.Test
+import org.mockito.kotlin.never
import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.api.DeviceInfo
import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.api.NetconfReceivedEvent
import org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.api.NetconfSession
@@ -77,22 +73,22 @@ class NetconfDeviceCommunicatorTest {
@Before
fun setup() {
- netconfSession = mockk()
- netconfSessionListener = mockk()
- mockInputStream = mockk()
- mockOutputStream = mockk()
+ netconfSession = Mockito.mock(NetconfSession::class.java)
+ netconfSessionListener = Mockito.mock(NetconfSessionListener::class.java)
+ mockInputStream = Mockito.mock(InputStream::class.java)
+ mockOutputStream = Mockito.mock(OutputStream::class.java)
replies = ConcurrentHashMap()
}
@Test
fun `NetconfDeviceCommunicator should read from supplied reader`() {
- every { mockInputStream.read() } returns -1
- every { mockInputStream.read(any(), any(), any()) } returns -1
+ Mockito.`when`(mockInputStream.read()).thenReturn(-1)
+ Mockito.`when`(mockInputStream.read(any(), any(), any())).thenReturn(-1)
val communicator: NetconfDeviceCommunicator =
NetconfDeviceCommunicator(mockInputStream, mockOutputStream, genDeviceInfo(), netconfSessionListener, replies)
communicator.join()
// verify
- verify { mockInputStream.read(any(), any(), any()) }
+ Mockito.verify(mockInputStream).read(any(), any(), any())
}
@Test
@@ -101,99 +97,125 @@ class NetconfDeviceCommunicatorTest {
// to unregister the device.
// we want to capture the slot to return the value as inputStreamReader will pass a char array
// create a slot where NetconfReceivedEvent will be placed to further verify Type.DEVICE_UNREGISTERED
- val eventSlot = CapturingSlot<NetconfReceivedEvent>()
- every { netconfSessionListener.accept(event = capture(eventSlot)) } just Runs
+ val captured = mutableListOf<NetconfReceivedEvent>()
+ Mockito.doAnswer {
+ captured.add(it.getArgument(0))
+ }.`when`(netconfSessionListener).accept(any())
stubInputStream = RpcMessageUtils.END_PATTERN.byteInputStream(StandardCharsets.UTF_8)
- val inputStreamSpy = spyk(stubInputStream)
// RUN the test
val communicator = NetconfDeviceCommunicator(
- inputStreamSpy, mockOutputStream,
+ stubInputStream, mockOutputStream,
genDeviceInfo(), netconfSessionListener, replies
)
communicator.join()
// Verify
- verify { inputStreamSpy.close() }
- assertTrue { eventSlot.isCaptured }
- assertEquals(NetconfReceivedEvent.Type.DEVICE_UNREGISTERED, eventSlot.captured.type)
- assertEquals(genDeviceInfo(), eventSlot.captured.deviceInfo)
+ assertTrue(captured.size == 1)
+ assertEquals(NetconfReceivedEvent.Type.DEVICE_UNREGISTERED, captured[0].type)
+ assertEquals(genDeviceInfo(), captured[0].deviceInfo)
}
@Test
fun `NetconfDeviceCommunicator on IOException generated DEVICE_ERROR event`() {
- val eventSlot = CapturingSlot<NetconfReceivedEvent>()
- every { netconfSessionListener.accept(event = capture(eventSlot)) } just Runs
+ val captured = mutableListOf<NetconfReceivedEvent>()
+ Mockito.doAnswer {
+ captured.add(it.getArgument(0))
+ }.`when`(netconfSessionListener).accept(any())
stubInputStream = "".byteInputStream(StandardCharsets.UTF_8)
- val inputStreamSpy = spyk(stubInputStream)
- every { inputStreamSpy.read(any(), any(), any()) } returns 1 andThenThrows IOException("Fake IO Exception")
+ Mockito.`when`(mockInputStream.read(any(), any(), any()))
+ .thenReturn(1).thenThrow(IOException("Fake IO"))
// RUN THE TEST
val communicator = NetconfDeviceCommunicator(
- inputStreamSpy, mockOutputStream,
+ mockInputStream, mockOutputStream,
genDeviceInfo(), netconfSessionListener, replies
)
communicator.join()
// Verify
- assertTrue { eventSlot.isCaptured }
- assertEquals(genDeviceInfo(), eventSlot.captured.deviceInfo)
- assertEquals(NetconfReceivedEvent.Type.DEVICE_ERROR, eventSlot.captured.type)
+ assertTrue(captured.size == 1)
+ assertEquals(genDeviceInfo(), captured[0].deviceInfo)
+ assertEquals(NetconfReceivedEvent.Type.DEVICE_ERROR, captured[0].type)
}
@Test
fun `NetconfDeviceCommunicator in END_PATTERN state but fails RpcMessageUtils end pattern validation`() {
- val eventSlot = CapturingSlot<NetconfReceivedEvent>()
+ val captured = mutableListOf<NetconfReceivedEvent>()
+ Mockito.doAnswer {
+ captured.add(it.getArgument(0))
+ }.`when`(netconfSessionListener).accept(any())
val payload = "<rpc-reply>blah</rpc-reply>"
stubInputStream = "$payload${RpcMessageUtils.END_PATTERN}".byteInputStream(StandardCharsets.UTF_8)
- every { netconfSessionListener.accept(event = capture(eventSlot)) } just Runs
+ Mockito.doAnswer {
+ val bytes = stubInputStream.readAllBytes()
+ bytes.forEachIndexed { index, byte ->
+ (it.getArgument(0) as ByteArray)[index] = byte
+ }
+ bytes.size
+ }.doReturn(-1).`when`(mockInputStream).read(any(), any(), any())
// RUN the test
val communicator = NetconfDeviceCommunicator(
- stubInputStream, mockOutputStream,
+ mockInputStream, mockOutputStream,
genDeviceInfo(), netconfSessionListener, replies
)
communicator.join()
// Verify
- verify(exactly = 0) { mockInputStream.close() } // make sure the reader is not closed as this could cause problems
- assertTrue { eventSlot.isCaptured }
+ Mockito.verify(mockInputStream, never()).close() // make sure the reader is not closed as this could cause problems
+ assertTrue(captured.size == 1)
// eventually, sessionListener is called with message type DEVICE_REPLY
- assertEquals(NetconfReceivedEvent.Type.DEVICE_REPLY, eventSlot.captured.type)
- assertEquals(payload, eventSlot.captured.messagePayload)
+ assertEquals(NetconfReceivedEvent.Type.DEVICE_REPLY, captured[0].type)
+ assertEquals(payload, captured[0].messagePayload)
}
@Test
fun `NetconfDeviceCommunicator in END_CHUNKED_PATTERN but validation failing produces DEVICE_ERROR`() {
- val eventSlot = CapturingSlot<NetconfReceivedEvent>()
+ val captured = mutableListOf<NetconfReceivedEvent>()
+ Mockito.doAnswer {
+ captured.add(it.getArgument(0))
+ }.`when`(netconfSessionListener).accept(any())
val payload = "<rpc-reply>blah</rpc-reply>"
val payloadWithChunkedEnding = "$payload$chunkedEnding"
- every { netconfSessionListener.accept(event = capture(eventSlot)) } just Runs
stubInputStream = payloadWithChunkedEnding.byteInputStream(StandardCharsets.UTF_8)
- // we have to ensure that the input stream is processed, so need to create a spy object.
- val inputStreamSpy = spyk(stubInputStream)
+ Mockito.doAnswer {
+ val bytes = stubInputStream.readAllBytes()
+ bytes.forEachIndexed { index, byte ->
+ (it.getArgument(0) as ByteArray)[index] = byte
+ }
+ bytes.size
+ }.doReturn(-1).`when`(mockInputStream).read(any(), any(), any())
// RUN the test
val communicator = NetconfDeviceCommunicator(
- inputStreamSpy, mockOutputStream, genDeviceInfo(),
+ mockInputStream, mockOutputStream, genDeviceInfo(),
netconfSessionListener, replies
)
communicator.join()
// Verify
- verify(exactly = 0) { inputStreamSpy.close() } // make sure the reader is not closed as this could cause problems
- assertTrue { eventSlot.isCaptured }
+ Mockito.verify(mockInputStream, never()).close() // make sure the reader is not closed as this could cause problems
+ assertTrue(captured.size == 1)
// eventually, sessionListener is called with message type DEVICE_REPLY
- assertEquals(NetconfReceivedEvent.Type.DEVICE_ERROR, eventSlot.captured.type)
- assertEquals("", eventSlot.captured.messagePayload)
+ assertEquals(NetconfReceivedEvent.Type.DEVICE_ERROR, captured[0].type)
+ assertEquals("", captured[0].messagePayload)
}
@Test
fun `NetconfDeviceCommunicator in END_CHUNKED_PATTERN passing validation generates DEVICE_REPLY`() {
- val eventSlot = CapturingSlot<NetconfReceivedEvent>()
+ val captured = mutableListOf<NetconfReceivedEvent>()
+ Mockito.doAnswer {
+ captured.add(it.getArgument(0))
+ }.`when`(netconfSessionListener).accept(any())
stubInputStream = validChunkedEncodedMsg.byteInputStream(StandardCharsets.UTF_8)
- val inputStreamSpy = spyk(stubInputStream)
- every { netconfSessionListener.accept(event = capture(eventSlot)) } just Runs
+ Mockito.doAnswer {
+ val bytes = stubInputStream.readAllBytes()
+ bytes.forEachIndexed { index, byte ->
+ (it.getArgument(0) as ByteArray)[index] = byte
+ }
+ bytes.size
+ }.doReturn(-1).`when`(mockInputStream).read(any(), any(), any())
// RUN the test
- NetconfDeviceCommunicator(inputStreamSpy, mockOutputStream, genDeviceInfo(), netconfSessionListener, replies).join()
+ NetconfDeviceCommunicator(mockInputStream, mockOutputStream, genDeviceInfo(), netconfSessionListener, replies).join()
// Verify
- verify(exactly = 0) { inputStreamSpy.close() } // make sure the reader is not closed as this could cause problems
- assertTrue { eventSlot.isCaptured }
+ Mockito.verify(mockOutputStream, never()).close() // make sure the reader is not closed as this could cause problems
+ assertTrue(captured.size == 1)
// eventually, sessionListener is called with message type DEVICE_REPLY
- assertEquals(NetconfReceivedEvent.Type.DEVICE_REPLY, eventSlot.captured.type)
+ assertEquals(NetconfReceivedEvent.Type.DEVICE_REPLY, captured[0].type)
assertEquals(
"""
<rpc message-id="102"
@@ -201,7 +223,7 @@ class NetconfDeviceCommunicatorTest {
<close-session/>
</rpc>
""".trimIndent(),
- eventSlot.captured.messagePayload
+ captured[0].messagePayload
)
}
@@ -228,9 +250,6 @@ class NetconfDeviceCommunicatorTest {
val msgPayload = "some text"
val msgId = "100"
stubInputStream = "".byteInputStream(StandardCharsets.UTF_8) // no data available in the stream...
- every { mockOutputStream.write(any(), any(), any()) } just Runs
- every { mockOutputStream.write(msgPayload.toByteArray(Charsets.UTF_8)) } just Runs
- every { mockOutputStream.flush() } just Runs
// Run the command
val communicator = NetconfDeviceCommunicator(
stubInputStream, mockOutputStream,
@@ -239,8 +258,8 @@ class NetconfDeviceCommunicatorTest {
val completableFuture = communicator.sendMessage(msgPayload, msgId)
communicator.join()
// verify
- verify { mockOutputStream.write(any(), any(), any()) }
- verify { mockOutputStream.flush() }
+ Mockito.verify(mockOutputStream).write(any(), any(), any())
+ Mockito.verify(mockOutputStream).flush()
assertFalse { completableFuture.isCompletedExceptionally }
}
@@ -248,7 +267,8 @@ class NetconfDeviceCommunicatorTest {
fun `sendMessage on IOError returns completed exceptionally future`() {
val msgPayload = "some text"
val msgId = "100"
- every { mockOutputStream.write(any(), any(), any()) } throws IOException("Some IO error occurred!")
+ Mockito.`when`(mockOutputStream.write(any(), any(), any()))
+ .thenThrow(IOException("Some IO error occurred!"))
stubInputStream = "".byteInputStream(StandardCharsets.UTF_8) // no data available in the stream...
// Run the command
val communicator = NetconfDeviceCommunicator(
@@ -257,8 +277,8 @@ class NetconfDeviceCommunicatorTest {
)
val completableFuture = communicator.sendMessage(msgPayload, msgId)
// verify
- verify { mockOutputStream.write(any(), any(), any()) }
- verify(exactly = 0) { mockOutputStream.flush() }
+ Mockito.verify(mockOutputStream).write(any(), any(), any())
+ Mockito.verify(mockOutputStream, never()).flush()
assertTrue { completableFuture.isCompletedExceptionally }
}
diff --git a/ms/blueprintsprocessor/functions/pom.xml b/ms/blueprintsprocessor/functions/pom.xml
index 7a82635cd..5f7b52b5e 100755
--- a/ms/blueprintsprocessor/functions/pom.xml
+++ b/ms/blueprintsprocessor/functions/pom.xml
@@ -56,6 +56,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
<scope>test</scope>
@@ -66,11 +71,21 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.mockito.kotlin</groupId>
+ <artifactId>mockito-kotlin</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<scope>test</scope>
diff --git a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/pom.xml b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/pom.xml
index a6188da0f..878a4b491 100644
--- a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/pom.xml
+++ b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/pom.xml
@@ -93,6 +93,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-test</artifactId>
<scope>test</scope>
diff --git a/ms/blueprintsprocessor/modules/blueprints/blueprint-validation/pom.xml b/ms/blueprintsprocessor/modules/blueprints/blueprint-validation/pom.xml
index 4efe77bb2..808201780 100644
--- a/ms/blueprintsprocessor/modules/blueprints/blueprint-validation/pom.xml
+++ b/ms/blueprintsprocessor/modules/blueprints/blueprint-validation/pom.xml
@@ -58,6 +58,10 @@
<artifactId>mockk</artifactId>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-test</artifactId>
</dependency>
diff --git a/ms/blueprintsprocessor/modules/commons/dmaap-lib/pom.xml b/ms/blueprintsprocessor/modules/commons/dmaap-lib/pom.xml
index 698f519f5..57008da11 100644
--- a/ms/blueprintsprocessor/modules/commons/dmaap-lib/pom.xml
+++ b/ms/blueprintsprocessor/modules/commons/dmaap-lib/pom.xml
@@ -61,6 +61,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
</dependency>
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtils.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtils.kt
index 0d4310c79..cc0681c72 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtils.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtils.kt
@@ -22,31 +22,36 @@ import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
import kotlin.math.max
-class BlueprintMessageUtils {
- companion object {
- fun kafkaMetricTag(topic: String): MutableList<Tag> =
- mutableListOf(
- Tag.of(BluePrintConstants.METRIC_TAG_TOPIC, topic)
- )
-
- /**
- * get OS hostname's last 5 characters
- * Used to generate unique client ID.
- */
- fun getHostnameSuffix(): String =
- System.getenv("HOSTNAME").defaultToUUID().let {
- it.substring(max(0, it.length - 5))
- }
+object BlueprintMessageUtils {
- fun getMessageLogData(message: Any): String =
- when (message) {
- is CommonExecutionServiceData -> {
- val actionIdentifiers = message.actionIdentifiers
- val commonHeaders = message.commonHeader
- "requestID(${commonHeaders.requestId}), subrequestID(${commonHeaders.subRequestId}) " +
- "CBA(${actionIdentifiers.blueprintName}/${actionIdentifiers.blueprintVersion}/${actionIdentifiers.actionName})"
- }
- else -> "message($message)"
- }
+ fun getHostname(): String? {
+ return System.getenv("HOSTNAME")
+ }
+
+ fun kafkaMetricTag(topic: String): MutableList<Tag> =
+ mutableListOf(
+ Tag.of(BluePrintConstants.METRIC_TAG_TOPIC, topic)
+ )
+
+ /**
+ * get OS hostname's last 5 characters
+ * Used to generate unique client ID.
+ */
+ fun getHostnameSuffix(): String {
+ return getHostname().defaultToUUID().let {
+ it.substring(max(0, it.length - 5))
+ }
}
+
+ fun getMessageLogData(message: Any): String =
+ when (message) {
+ is CommonExecutionServiceData -> {
+ val actionIdentifiers = message.actionIdentifiers
+ val commonHeaders = message.commonHeader
+ "requestID(${commonHeaders.requestId}), subrequestID(${commonHeaders.subRequestId}) " +
+ "CBA(${actionIdentifiers.blueprintName}/${actionIdentifiers.blueprintVersion}/${actionIdentifiers.actionName})"
+ }
+
+ else -> "message($message)"
+ }
}
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtilsTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtilsTest.kt
index 5d0c89415..aa4d00e16 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtilsTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/utils/BlueprintMessageUtilsTest.kt
@@ -18,7 +18,7 @@ package org.onap.ccsdk.cds.blueprintsprocessor.message.utils
import io.micrometer.core.instrument.Tag
import io.mockk.every
-import io.mockk.mockkStatic
+import io.mockk.mockkObject
import org.junit.Test
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ActionIdentifiers
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.CommonHeader
@@ -41,15 +41,15 @@ class BlueprintMessageUtilsTest {
@Test
fun testGetHostnameSuffix() {
- mockkStatic(System::class)
- every { System.getenv("HOSTNAME") } returns "qwertyuiop"
+ mockkObject(BlueprintMessageUtils)
+ every { BlueprintMessageUtils.getHostname() } returns "qwertyuiop"
assertEquals("yuiop", BlueprintMessageUtils.getHostnameSuffix())
}
@Test
fun testGetNullHostnameSuffix() {
- mockkStatic(System::class)
- every { System.getenv("HOSTNAME") } returns null
+ mockkObject(BlueprintMessageUtils)
+ every { BlueprintMessageUtils.getHostname() } returns null
assertEquals(5, BlueprintMessageUtils.getHostnameSuffix().length)
}
diff --git a/ms/blueprintsprocessor/modules/commons/pom.xml b/ms/blueprintsprocessor/modules/commons/pom.xml
index f653986bd..8bb9b0b68 100755
--- a/ms/blueprintsprocessor/modules/commons/pom.xml
+++ b/ms/blueprintsprocessor/modules/commons/pom.xml
@@ -54,6 +54,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<scope>test</scope>
@@ -64,6 +69,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<scope>test</scope>
diff --git a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/cluster/HazelcastClusterService.kt b/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/cluster/HazelcastClusterService.kt
index fb9056776..870e0ed64 100644
--- a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/cluster/HazelcastClusterService.kt
+++ b/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/cluster/HazelcastClusterService.kt
@@ -180,7 +180,7 @@ open class HazelcastClusterService(private val applicationEventPublisher: Applic
}
/** Return interface may change and it will be included in BluePrintClusterService */
- @UseExperimental
+ @OptIn
suspend fun clusterScheduler(name: String): IScheduledExecutorService {
check(::hazelcast.isInitialized) { "failed to start and join cluster" }
return hazelcast.getScheduledExecutorService(name)
diff --git a/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt
index 744236685..f5552a691 100644
--- a/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt
@@ -150,7 +150,7 @@ suspend fun <T> mdcWebCoroutineScope(
replaceWith = ReplaceWith("mdcWebCoroutineScope")
)
/** Used in Rest controller API methods to populate MDC context to nested coroutines from reactor web filter context. */
-@UseExperimental(InternalCoroutinesApi::class)
+@OptIn(InternalCoroutinesApi::class)
fun <T> monoMdc(
context: CoroutineContext = EmptyCoroutineContext,
block: suspend CoroutineScope.() -> T?
diff --git a/ms/blueprintsprocessor/modules/inbounds/pom.xml b/ms/blueprintsprocessor/modules/inbounds/pom.xml
index b0fd64cd5..4a5c621f0 100644
--- a/ms/blueprintsprocessor/modules/inbounds/pom.xml
+++ b/ms/blueprintsprocessor/modules/inbounds/pom.xml
@@ -60,6 +60,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<scope>test</scope>
@@ -70,6 +75,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<scope>test</scope>
diff --git a/ms/blueprintsprocessor/modules/services/pom.xml b/ms/blueprintsprocessor/modules/services/pom.xml
index 453c0a08f..b2f033087 100755
--- a/ms/blueprintsprocessor/modules/services/pom.xml
+++ b/ms/blueprintsprocessor/modules/services/pom.xml
@@ -44,6 +44,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<scope>test</scope>
@@ -54,6 +59,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<scope>test</scope>
diff --git a/ms/blueprintsprocessor/parent/pom.xml b/ms/blueprintsprocessor/parent/pom.xml
index 3e6076873..16df08b59 100755
--- a/ms/blueprintsprocessor/parent/pom.xml
+++ b/ms/blueprintsprocessor/parent/pom.xml
@@ -510,6 +510,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.mockk</groupId>
+ <artifactId>mockk-jvm</artifactId>
+ <version>${mockk.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
<version>${mockkserver.version}</version>
@@ -528,6 +534,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.mockito.kotlin</groupId>
+ <artifactId>mockito-kotlin</artifactId>
+ <version>4.0.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<version>${kotlin.version}</version>