diff options
Diffstat (limited to 'prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers')
3 files changed, 116 insertions, 9 deletions
diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/AppInfoControllerTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/AppInfoControllerTest.java index 1dba66a1..40b42480 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/AppInfoControllerTest.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/AppInfoControllerTest.java @@ -3,6 +3,7 @@ * PNF-REGISTRATION-HANDLER * ================================================================================ * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved. + * Copyright (C) 2023 Deutsche Telekom Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,19 +22,28 @@ package org.onap.dcaegen2.services.prh.controllers; import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.configuration.CbsConfigurationForAutoCommitDisabledMode; +import org.onap.dcaegen2.services.prh.configuration.KafkaConfig; import org.onap.dcaegen2.services.prh.configuration.PrhAppConfig; +import org.onap.dcaegen2.services.prh.tasks.DmaapConsumerTaskImpl; +import org.onap.dcaegen2.services.prh.tasks.ScheduledTasks; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Profile; import org.springframework.core.io.ByteArrayResource; import org.springframework.http.MediaType; +import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory; +import org.springframework.kafka.core.ConsumerFactory; import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.IfProfileValue; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.reactive.server.WebTestClient; - import static org.mockito.Mockito.when; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @DirtiesContext +@ActiveProfiles(value = "prod") class AppInfoControllerTest { private static final String SAMPLE_GIT_INFO_CONTENT = "{ \"git.commit.id\" : \"37444e\" }"; @@ -44,17 +54,15 @@ class AppInfoControllerTest { @Autowired private WebTestClient webTestClient; + @MockBean + private ScheduledTasks scheduledTasks; + @Test void shouldProvideHeartbeatResponse() { - webTestClient - .get().uri("/heartbeat") - .accept(MediaType.TEXT_PLAIN) - .exchange() - .expectStatus().isOk() + webTestClient.get().uri("/heartbeat").accept(MediaType.TEXT_PLAIN).exchange().expectStatus().isOk() .expectBody(String.class).isEqualTo("alive"); } - @Test void shouldProvideVersionInfo() { when(prhAppConfig.getGitInfo()).thenReturn(new ByteArrayResource(SAMPLE_GIT_INFO_CONTENT.getBytes())); @@ -66,4 +74,4 @@ class AppInfoControllerTest { .expectStatus().isOk() .expectBody(String.class).isEqualTo(SAMPLE_GIT_INFO_CONTENT); } -}
\ No newline at end of file +} diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerForAutoCommitDisabledTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerForAutoCommitDisabledTest.java new file mode 100644 index 00000000..43dcadf9 --- /dev/null +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerForAutoCommitDisabledTest.java @@ -0,0 +1,96 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2023 Deutsche Telekom Intellectual Property. All rights reserved. + * ================================================================================ + * 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 org.onap.dcaegen2.services.prh.controllers; + +import org.junit.Ignore; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.configuration.KafkaConfig; +import org.onap.dcaegen2.services.prh.tasks.commit.KafkaConsumerTaskImpl; +import org.onap.dcaegen2.services.prh.tasks.commit.ScheduledTasksRunnerWithCommit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.HttpStatus; +import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory; +import org.springframework.kafka.core.ConsumerFactory; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.reactive.server.WebTestClient; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@DirtiesContext(classMode = ClassMode.AFTER_CLASS) +@ActiveProfiles(value = "autoCommitDisabled") +class ScheduleControllerForAutoCommitDisabledTest { + + @MockBean + private ScheduledTasksRunnerWithCommit scheduledTasksRunnerWithCommit; + + @MockBean + private KafkaConfig kafkaConfig; + + @MockBean + private ConsumerFactory<String, String> consumerFactory; + + @MockBean + private ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory; + + @MockBean + private KafkaConsumerTaskImpl kafkaConsumerTaskImpl; + + @Autowired + private WebTestClient webTestClient; + + + @Test + void startEndpointShouldAllowStartingPrhTasks() { + when(scheduledTasksRunnerWithCommit.tryToStartTaskWithCommit()).thenReturn(true); + webTestClient + .get().uri("/start") + .exchange() + .expectStatus().isCreated() + .expectBody(String.class).isEqualTo("PRH Service has been started!"); + } + + @Test + void whenPrhTasksAreAlreadyStarted_shouldRespondThatRequestWasNotAccepted() { + when(scheduledTasksRunnerWithCommit.tryToStartTaskWithCommit()).thenReturn(false); + webTestClient + .get().uri("/start") + .exchange() + .expectStatus().isEqualTo(HttpStatus.NOT_ACCEPTABLE) + .expectBody(String.class).isEqualTo("PRH Service is already running!"); + } + + @Test + void stopEndpointShouldAllowStoppingPrhTasks() { + webTestClient + .get().uri("/stopPrh") + .exchange() + .expectStatus().isOk() + .expectBody(String.class).isEqualTo("PRH Service has been stopped!"); + + verify(scheduledTasksRunnerWithCommit).cancelTasks(); + } +} diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerTest.java index bbc6b968..92a527b7 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerTest.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/controllers/ScheduleControllerTest.java @@ -23,18 +23,21 @@ package org.onap.dcaegen2.services.prh.controllers; import org.junit.jupiter.api.Test; import org.onap.dcaegen2.services.prh.tasks.ScheduledTasksRunner; +import org.onap.dcaegen2.services.prh.tasks.commit.ScheduledTasksRunnerWithCommit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpStatus; import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.IfProfileValue; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.reactive.server.WebTestClient; - import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @DirtiesContext +@ActiveProfiles("prod") class ScheduleControllerTest { @MockBean |