Skip to content

Commit ac93367

Browse files
chore: refactor integration test structure to conform to general conventions
1 parent b41369e commit ac93367

27 files changed

+336
-319
lines changed

.github/workflows/development.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,6 @@ jobs:
4545
- name: Build with Maven
4646
run: ./mvnw clean verify -U -B -ntp -T4
4747

48-
# itest
49-
- name: Run itest
50-
run: ./mvnw integration-test failsafe:verify -Pitest -ntp -U -B -T4
51-
52-
5348
# - name: Upload coverage to Codecov
5449
# if: github.event_name == 'push' && github.actor != 'dependabot[bot]'
5550
# uses: codecov/codecov-action@v1.0.2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package dev.bpmcrafters.processengine.worker.idempotency
2+
3+
import dev.bpmcrafters.processengine.worker.idempotency.AbstractIdempotencyIT
4+
import dev.bpmcrafters.processengine.worker.itest.WorkerWithTransactionalAnnotation
5+
import org.springframework.context.annotation.Import
6+
7+
@Import(WorkerWithTransactionalAnnotation::class)
8+
class IdempotencyWithTransactionIT : AbstractIdempotencyIT()

idempotency-registry-jpa/src/test/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/IdempotencyWithTransactionTest.kt

Lines changed: 0 additions & 6 deletions
This file was deleted.

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/AbstractIdempotencyTest.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/idempotency/AbstractIdempotencyIT.kt

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external
1+
package dev.bpmcrafters.processengine.worker.idempotency
22

3-
import dev.bpmcrafters.processengine.worker.idempotency.IdempotencyRegistry
4-
import dev.bpmcrafters.processengine.worker.idempotency.InMemoryIdempotencyRegistry
3+
import dev.bpmcrafters.processengine.worker.itest.AbstractBehaviorIT
54
import dev.bpmcrafters.processengineapi.task.ServiceTaskCompletionApi
6-
import org.assertj.core.api.Assertions.assertThat
7-
import org.awaitility.Awaitility.await
5+
import org.assertj.core.api.Assertions
6+
import org.awaitility.Awaitility
87
import org.junit.jupiter.api.Test
9-
import org.mockito.kotlin.*
8+
import org.mockito.kotlin.any
9+
import org.mockito.kotlin.doCallRealMethod
10+
import org.mockito.kotlin.doThrow
11+
import org.mockito.kotlin.inOrder
12+
import org.mockito.kotlin.never
1013
import org.springframework.beans.factory.annotation.Autowired
11-
import org.springframework.context.annotation.Import
1214
import org.springframework.test.context.TestPropertySource
1315
import org.springframework.test.context.bean.override.mockito.MockitoSpyBean
14-
import java.util.*
15-
import java.util.concurrent.TimeUnit.SECONDS
16+
import java.util.UUID
17+
import java.util.concurrent.TimeUnit
1618

1719
@TestPropertySource(properties = [
1820
"dev.bpm-crafters.process-api.worker.complete-tasks-before-commit=false"
1921
])
2022
@MockitoSpyBean(types = [IdempotencyRegistry::class])
2123
@MockitoSpyBean(name = "c7remote-service-task-completion-api", types = [ServiceTaskCompletionApi::class])
22-
abstract class AbstractIdempotencyTest : AbstractBehaviorTest() {
24+
abstract class AbstractIdempotencyIT : AbstractBehaviorIT() {
2325

2426
@Autowired
2527
private lateinit var idempotencyRegistry: IdempotencyRegistry
@@ -34,16 +36,16 @@ abstract class AbstractIdempotencyTest : AbstractBehaviorTest() {
3436
.`when`(serviceTaskCompletionApi)
3537
.completeTask(any())
3638
val processInstanceId = startProcess(name, verified = true)
37-
assertThat(processInstanceIsRunning(processInstanceId)).isTrue()
38-
await().atMost(30, SECONDS).untilAsserted {
39+
Assertions.assertThat(processInstanceIsRunning(processInstanceId)).isTrue()
40+
Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted {
3941
val entity = findEntityByName(name)
40-
assertThat(entity).isNotNull
42+
Assertions.assertThat(entity).isNotNull
4143
}
4244
doCallRealMethod().`when`(serviceTaskCompletionApi).completeTask(any())
4345
unlockExternalTask(getExternalTasks(processInstanceId).first().id!!)
4446
print(idempotencyRegistry)
45-
await().atMost(30, SECONDS).untilAsserted {
46-
assertThat(processInstanceIsRunning(processInstanceId)).isFalse
47+
Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted {
48+
Assertions.assertThat(processInstanceIsRunning(processInstanceId)).isFalse
4749
}
4850
val inOrder = inOrder(idempotencyRegistry)
4951
inOrder.verify(idempotencyRegistry).getTaskResult(any())

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/AbstractBehaviorTest.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/AbstractBehaviorIT.kt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external
1+
package dev.bpmcrafters.processengine.worker.itest
22

3-
import dev.bpmcrafters.processengine.worker.TestHelper
4-
import dev.bpmcrafters.processengine.worker.TestHelper.Camunda7RunTestContainer
5-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.MyEntity
6-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.MyEntityService
7-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.TestApplication
83
import dev.bpmcrafters.processengineapi.deploy.DeployBundleCommand
94
import dev.bpmcrafters.processengineapi.deploy.DeploymentApi
105
import dev.bpmcrafters.processengineapi.deploy.NamedResource
116
import dev.bpmcrafters.processengineapi.process.StartProcessApi
127
import dev.bpmcrafters.processengineapi.process.StartProcessByDefinitionCmd
13-
import org.assertj.core.api.Assertions.assertThat
8+
import org.assertj.core.api.Assertions
9+
import org.camunda.bpm.client.ExternalTaskClient
1410
import org.camunda.community.rest.client.api.ExternalTaskApiClient
1511
import org.camunda.community.rest.client.api.HistoryApiClient
1612
import org.camunda.community.rest.client.api.IncidentApiClient
@@ -33,12 +29,12 @@ import org.testcontainers.junit.jupiter.Testcontainers
3329
@SpringBootTest(classes = [TestApplication::class])
3430
@Testcontainers
3531
@ActiveProfiles("itest")
36-
abstract class AbstractBehaviorTest {
32+
abstract class AbstractBehaviorIT {
3733
companion object {
3834

3935
@Container
4036
@JvmStatic
41-
val camundaContainer = Camunda7RunTestContainer("run-7.24.0")
37+
val camundaContainer = TestHelper.Camunda7RunTestContainer("run-7.24.0")
4238

4339
@Container
4440
@JvmStatic
@@ -70,17 +66,17 @@ abstract class AbstractBehaviorTest {
7066
@Autowired
7167
private lateinit var myEntityService: MyEntityService
7268
@Autowired
73-
private lateinit var camundaTaskClient: org.camunda.bpm.client.ExternalTaskClient
69+
private lateinit var camundaTaskClient: ExternalTaskClient
7470

7571
@BeforeEach
7672
fun setUp() {
7773
camundaTaskClient.start()
7874
deploymentApi.deploy(
7975
DeployBundleCommand(
80-
listOf(NamedResource.fromClasspath("bpmn/example-process.bpmn"))
76+
listOf(NamedResource.Companion.fromClasspath("bpmn/example-process.bpmn"))
8177
)
8278
).get().let { deployment ->
83-
assertThat(deployment).isNotNull
79+
Assertions.assertThat(deployment).isNotNull
8480
}
8581
}
8682

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/application/AbstractExampleProcessWorker.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/AbstractExampleProcessWorker.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external.application
1+
package dev.bpmcrafters.processengine.worker.itest
22

33
import dev.bpmcrafters.processengineapi.CommonRestrictions
44
import dev.bpmcrafters.processengineapi.task.TaskInformation

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/application/TestApplication.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/TestApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external.application
1+
package dev.bpmcrafters.processengine.worker.itest
22

33
import com.fasterxml.jackson.databind.ObjectMapper
44
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/TestHelper.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/TestHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.bpmcrafters.processengine.worker
1+
package dev.bpmcrafters.processengine.worker.itest
22

33
import org.testcontainers.containers.GenericContainer
44
import org.testcontainers.containers.PostgreSQLContainer

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/WorkerWithTransactionalAnnotation.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/WorkerWithTransactionalAnnotation.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external
1+
package dev.bpmcrafters.processengine.worker.itest
22

33
import dev.bpmcrafters.processengine.worker.ProcessEngineWorker
44
import dev.bpmcrafters.processengine.worker.Variable
5-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.AbstractExampleProcessWorker
6-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.MyEntityService
75
import dev.bpmcrafters.processengineapi.task.TaskInformation
86
import org.camunda.community.rest.client.api.ProcessInstanceApiClient
97
import org.springframework.transaction.annotation.Transactional
108

119
open class WorkerWithTransactionalAnnotation(
12-
myEntityService: MyEntityService,
13-
processInstanceApiClient: ProcessInstanceApiClient,
10+
myEntityService: MyEntityService,
11+
processInstanceApiClient: ProcessInstanceApiClient,
1412
) : AbstractExampleProcessWorker(myEntityService = myEntityService, processInstanceApiClient = processInstanceApiClient) {
1513

1614
@Transactional
1715
@ProcessEngineWorker(
1816
topic = "example.create-entity"
1917
)
2018
override fun createEntity(
21-
task: TaskInformation,
22-
@Variable(name = "name") name: String,
23-
@Variable(name = "verified") verified: Boolean,
24-
@Variable(name = "simulateRandomTechnicalError") simulateRandomTechnicalError: Boolean,
25-
@Variable(name = "apiCallShouldFail") apiCallShouldFail: Boolean
19+
task: TaskInformation,
20+
@Variable(name = "name") name: String,
21+
@Variable(name = "verified") verified: Boolean,
22+
@Variable(name = "simulateRandomTechnicalError") simulateRandomTechnicalError: Boolean,
23+
@Variable(name = "apiCallShouldFail") apiCallShouldFail: Boolean
2624
): Map<String, Any> {
2725
return super.createEntity(task, name, verified, simulateRandomTechnicalError, apiCallShouldFail)
2826
}

integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/camunda7/external/WorkerWithoutTransactionalAnnotation.kt renamed to integration-test-boilerplate/src/main/kotlin/dev/bpmcrafters/processengine/worker/itest/WorkerWithoutTransactionalAnnotation.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
package dev.bpmcrafters.processengine.worker.itest.camunda7.external
1+
package dev.bpmcrafters.processengine.worker.itest
22

33
import dev.bpmcrafters.processengine.worker.ProcessEngineWorker
44
import dev.bpmcrafters.processengine.worker.Variable
5-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.AbstractExampleProcessWorker
6-
import dev.bpmcrafters.processengine.worker.itest.camunda7.external.application.MyEntityService
75
import dev.bpmcrafters.processengineapi.task.TaskInformation
86
import org.camunda.community.rest.client.api.ProcessInstanceApiClient
97

108
class WorkerWithoutTransactionalAnnotation(
11-
myEntityService: MyEntityService,
12-
processInstanceApiClient: ProcessInstanceApiClient,
9+
myEntityService: MyEntityService,
10+
processInstanceApiClient: ProcessInstanceApiClient,
1311
) : AbstractExampleProcessWorker(
1412
myEntityService = myEntityService,
1513
processInstanceApiClient = processInstanceApiClient
@@ -19,11 +17,11 @@ class WorkerWithoutTransactionalAnnotation(
1917
topic = "example.create-entity"
2018
)
2119
override fun createEntity(
22-
task: TaskInformation,
23-
@Variable(name = "name") name: String,
24-
@Variable(name = "verified") verified: Boolean,
25-
@Variable(name = "simulateRandomTechnicalError") simulateRandomTechnicalError: Boolean,
26-
@Variable(name = "apiCallShouldFail") apiCallShouldFail: Boolean
20+
task: TaskInformation,
21+
@Variable(name = "name") name: String,
22+
@Variable(name = "verified") verified: Boolean,
23+
@Variable(name = "simulateRandomTechnicalError") simulateRandomTechnicalError: Boolean,
24+
@Variable(name = "apiCallShouldFail") apiCallShouldFail: Boolean
2725
): Map<String, Any> {
2826
return super.createEntity(task, name, verified, simulateRandomTechnicalError, apiCallShouldFail)
2927
}

0 commit comments

Comments
 (0)