Skip to content

Commit

Permalink
refactor(test): replace deprecated mockito api verifyZeroInteractions…
Browse files Browse the repository at this point in the history
…() with verifyNoMoreInteractions() during upgrade to spring boot 2.6.x

While upgrading spring boot 2.6.15, encounter similar errors as given below in multiple module of orca (keiko-core, keiko-tck, orca-clouddriver, orca-queue) during test compilation:
```
com.netflix.spinnaker.q.sql.SqlQueueTest > describe polling the queue > given there are no messages > com.netflix.spinnaker.q.sql.SqlQueueTest.it does not invoke the callback FAILED
    java.lang.NoSuchMethodError: 'void org.mockito.Mockito.verifyZeroInteractions(java.lang.Object[])'
        at com.nhaarman.mockito_kotlin.MockitoKt.verifyZeroInteractions(Mockito.kt:259)
        at com.netflix.spinnaker.q.QueueTest$1$1$1$5.invoke(QueueTest.kt:75)
        at com.netflix.spinnaker.q.QueueTest$1$1$1$5.invoke(QueueTest.kt:74)
```
Spring boot [2.6.15](https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.6.15/spring-boot-dependencies-2.6.15.pom) brings mockito 4.0.0 as transitive dependency. The `verifyZeroInteractions()` was deprecated in 3.x as mentioned here:
mockito/mockito-kotlin#383
And now it is removed from mockito [4.0.0](https://github.com/mockito/mockito/releases/tag/v4.0.0).
To fix these issues, replacing `verifyZeroInteractions()` with `verifyNoMoreInteractions()`.
  • Loading branch information
j-sandy committed Dec 22, 2023
1 parent 5009613 commit 4d967ca
Show file tree
Hide file tree
Showing 20 changed files with 66 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import com.netflix.spinnaker.assertj.isA
import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import org.assertj.core.api.Assertions.assertThatThrownBy
import org.jetbrains.spek.api.dsl.describe
import org.jetbrains.spek.api.dsl.it
Expand Down Expand Up @@ -58,7 +58,7 @@ object MessageHandlerTest : SubjectSpek<MessageHandler<*>>({
}

it("does not invoke the handler") {
verifyZeroInteractions(handleCallback)
verifyNoMoreInteractions(handleCallback)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import java.util.concurrent.CountDownLatch
import java.util.concurrent.Executor
Expand Down Expand Up @@ -77,7 +77,7 @@ object QueueProcessorTest : Spek({
}

it("does not poll the queue") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}

Expand Down Expand Up @@ -112,7 +112,7 @@ object QueueProcessorTest : Spek({
}

it("does not poll the queue") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}

it("fires an event") {
Expand Down
15 changes: 7 additions & 8 deletions keiko-tck/src/main/kotlin/com/netflix/spinnaker/q/QueueTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import java.io.Closeable
import java.time.Clock
import java.time.Duration
Expand Down Expand Up @@ -72,7 +71,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("does not invoke the callback") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}
}

Expand Down Expand Up @@ -143,7 +142,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("does not invoke the callback") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}
}

Expand Down Expand Up @@ -196,7 +195,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("does not retry the message") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}
}

Expand Down Expand Up @@ -252,7 +251,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("does not retry the message") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}

on("polling the queue after the message acknowledgment override has timed out") {
Expand Down Expand Up @@ -325,7 +324,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("stops retrying the message") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}

it("passes the failed message to the dead letter handler") {
Expand All @@ -341,7 +340,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("it does not get redelivered again") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}

it("no longer gets sent to the dead letter handler") {
Expand Down Expand Up @@ -473,7 +472,7 @@ abstract class QueueTest<out Q : Queue>(
}

it("did not enqueue the duplicate message") {
verifyZeroInteractions(callback)
verifyNoMoreInteractions(callback)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,8 @@ void composeFlowWithNoSourceAndManifestDirect() {
assertThat(deployServerGroupStage.getContext().get("useSourceCapacity")).isNull();
assertThat(deployServerGroupStage.getContext().get("capacity")).isEqualTo(zeroCapacity);
assertThat(deployServerGroupStage.getContext().get("manifest")).isEqualTo(expectedManifest);
verifyZeroInteractions(artifactUtils);
verifyZeroInteractions(oortService);
verifyNoMoreInteractions(artifactUtils);
verifyNoMoreInteractions(oortService);
}

@Test
Expand Down Expand Up @@ -281,8 +281,8 @@ void composeFlowWithSourceAndManifestDirect() {
assertThat(deployServerGroupStage.getContext().get("useSourceCapacity")).isNull();
assertThat(deployServerGroupStage.getContext().get("capacity")).isEqualTo(zeroCapacity);
assertThat(deployServerGroupStage.getContext().get("manifest")).isEqualTo(expectedManifest);
verifyZeroInteractions(artifactUtils);
verifyZeroInteractions(oortService);
verifyNoMoreInteractions(artifactUtils);
verifyNoMoreInteractions(oortService);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import org.jetbrains.spek.api.dsl.describe
import org.jetbrains.spek.api.dsl.it
Expand Down Expand Up @@ -113,10 +113,10 @@ class QueueShovelTest : SubjectSpek<QueueShovel>({

it("leaves the message on the old queue") {
// not pushed
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)

// not acked
verifyZeroInteractions(ackCallback)
verifyNoMoreInteractions(ackCallback)

// execution not updated
verify(executionRepository, never()).handlesPartition(anyString())
Expand All @@ -142,10 +142,10 @@ class QueueShovelTest : SubjectSpek<QueueShovel>({
verify(executionRepository).store(execution)

// not pushed
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)

// not acked
verifyZeroInteractions(ackCallback)
verifyNoMoreInteractions(ackCallback)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.times
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.whenever
import java.time.Instant
import org.assertj.core.api.Assertions.assertThat
Expand Down Expand Up @@ -85,7 +84,7 @@ object HydrateQueueCommandTest : SubjectSpek<HydrateQueueCommand>({
subject.invoke(HydrateQueueInput(dryRun = false))

it("does nothing") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}
}
Expand Down Expand Up @@ -128,7 +127,7 @@ object HydrateQueueCommandTest : SubjectSpek<HydrateQueueCommand>({
)

it("does nothing") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}
}
Expand All @@ -155,7 +154,7 @@ object HydrateQueueCommandTest : SubjectSpek<HydrateQueueCommand>({
subject.invoke(HydrateQueueInput(executionId = "2", dryRun = false))

it("does nothing") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}
}
Expand Down Expand Up @@ -465,7 +464,7 @@ object HydrateQueueCommandTest : SubjectSpek<HydrateQueueCommand>({
val output = subject.invoke(HydrateQueueInput(dryRun = true))

it("does not interact with queue") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}

it("emits dry run output") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import org.assertj.core.api.Assertions.assertThat
import org.jetbrains.spek.api.dsl.describe
Expand Down Expand Up @@ -88,8 +88,8 @@ object AbortStageHandlerTest : SubjectSpek<AbortStageHandler>({
}

it("does nothing at all") {
verifyZeroInteractions(queue)
verifyZeroInteractions(publisher)
verifyNoMoreInteractions(queue)
verifyNoMoreInteractions(publisher)
verify(repository, never()).storeStage(any())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import com.nhaarman.mockito_kotlin.doReturn
import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import org.assertj.core.api.Assertions.assertThat
import org.jetbrains.spek.api.dsl.describe
Expand Down Expand Up @@ -97,7 +97,7 @@ object CancelExecutionHandlerTest : SubjectSpek<CancelExecutionHandler>({
}

it("does not send any further messages") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import org.jetbrains.spek.api.dsl.context
import org.jetbrains.spek.api.dsl.describe
Expand Down Expand Up @@ -131,7 +131,7 @@ object CancelStageHandlerTest : SubjectSpek<CancelStageHandler>({
}

it("should not push any messages to the queue") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}
}
Expand Down Expand Up @@ -160,7 +160,7 @@ object CancelStageHandlerTest : SubjectSpek<CancelStageHandler>({
}

it("should not push any messages to the queue") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.whenever
import java.time.Duration
import java.util.UUID
Expand Down Expand Up @@ -110,7 +109,7 @@ object CompleteExecutionHandlerTest : SubjectSpek<CompleteExecutionHandler>({
}

it("does not queue any other commands") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}

Expand Down Expand Up @@ -175,7 +174,7 @@ object CompleteExecutionHandlerTest : SubjectSpek<CompleteExecutionHandler>({
}

it("does not publish any events") {
verifyZeroInteractions(publisher)
verifyNoMoreInteractions(publisher)
}

it("re-queues the message for later evaluation") {
Expand Down Expand Up @@ -281,7 +280,7 @@ object CompleteExecutionHandlerTest : SubjectSpek<CompleteExecutionHandler>({
}

it("does not queue any other commands") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}

Expand Down Expand Up @@ -330,7 +329,7 @@ object CompleteExecutionHandlerTest : SubjectSpek<CompleteExecutionHandler>({
}

it("does not queue any other commands") {
verifyZeroInteractions(queue)
verifyNoMoreInteractions(queue)
}
}

Expand Down Expand Up @@ -375,7 +374,7 @@ object CompleteExecutionHandlerTest : SubjectSpek<CompleteExecutionHandler>({
}

it("publishes no events") {
verifyZeroInteractions(publisher)
verifyNoMoreInteractions(publisher)
}

it("re-queues the message") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.spy
import com.nhaarman.mockito_kotlin.times
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import java.time.Duration.ZERO
import org.assertj.core.api.Assertions.assertThat
Expand Down Expand Up @@ -214,8 +214,8 @@ object CompleteStageHandlerTest : SubjectSpek<CompleteStageHandler>({

it("ignores the message") {
verify(repository, never()).storeStage(any())
verifyZeroInteractions(queue)
verifyZeroInteractions(publisher)
verifyNoMoreInteractions(queue)
verifyNoMoreInteractions(publisher)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.reset
import com.nhaarman.mockito_kotlin.verify
import com.nhaarman.mockito_kotlin.verifyZeroInteractions
import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions
import com.nhaarman.mockito_kotlin.whenever
import org.assertj.core.api.Assertions.assertThat
import org.jetbrains.spek.api.dsl.describe
Expand Down Expand Up @@ -251,7 +251,7 @@ object CompleteTaskHandlerTest : SubjectSpek<CompleteTaskHandler>({
}

it("does not publish an event") {
verifyZeroInteractions(publisher)
verifyNoMoreInteractions(publisher)
}
}
}
Expand Down

0 comments on commit 4d967ca

Please sign in to comment.