-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactorings for test base + add task api tests for c7 remote & embedded
- Loading branch information
1 parent
e0bcfdf
commit 6aecc60
Showing
28 changed files
with
690 additions
and
299 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 0 additions & 55 deletions
55
.../adapter-test/src/main/kotlin/dev/bpmcrafters/processengineapi/test/BaseGivenWhenStage.kt
This file was deleted.
Oops, something went wrong.
22 changes: 0 additions & 22 deletions
22
...apter/adapter-test/src/main/kotlin/dev/bpmcrafters/processengineapi/test/BaseThenStage.kt
This file was deleted.
Oops, something went wrong.
5 changes: 0 additions & 5 deletions
5
...r-test/src/main/kotlin/dev/bpmcrafters/processengineapi/test/JGivenBaseIntegrationTest.kt
This file was deleted.
Oops, something went wrong.
9 changes: 0 additions & 9 deletions
9
...r/adapter-test/src/main/kotlin/dev/bpmcrafters/processengineapi/test/ProcessTestHelper.kt
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
118 changes: 118 additions & 0 deletions
118
...apter-testing/src/main/kotlin/dev/bpmcrafters/processengineapi/test/BaseGivenWhenStage.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
package dev.bpmcrafters.processengineapi.test | ||
|
||
import com.tngtech.jgiven.Stage | ||
import com.tngtech.jgiven.annotation.ExpectedScenarioState | ||
import com.tngtech.jgiven.annotation.ProvidedScenarioState | ||
import dev.bpmcrafters.processengineapi.process.StartProcessByDefinitionCmd | ||
import dev.bpmcrafters.processengineapi.process.StartProcessByMessageCmd | ||
import dev.bpmcrafters.processengineapi.task.* | ||
import io.mockk.mockk | ||
import io.toolisticon.testing.jgiven.JGivenKotlinStage | ||
import io.toolisticon.testing.jgiven.step | ||
import org.assertj.core.api.Assertions.assertThat | ||
|
||
@JGivenKotlinStage | ||
class BaseGivenWhenStage : Stage<BaseGivenWhenStage>() { | ||
|
||
@ExpectedScenarioState | ||
lateinit var processTestHelper: ProcessTestHelper | ||
|
||
@ProvidedScenarioState | ||
lateinit var instanceId: String | ||
|
||
@ProvidedScenarioState | ||
var userTaskId: String? = null | ||
|
||
@ProvidedScenarioState | ||
var externalTaskId: String? = null | ||
|
||
@ProvidedScenarioState | ||
lateinit var taskSubscription: TaskSubscription | ||
|
||
fun `start process by definition`(definitionKey: String) = step { | ||
instanceId = processTestHelper.getStartProcessApi().startProcess( | ||
StartProcessByDefinitionCmd( | ||
definitionKey = definitionKey, | ||
payloadSupplier = { emptyMap() } | ||
) | ||
).get().instanceId | ||
} | ||
|
||
fun `start process by definition with payload`(definitionKey: String, singlePayload: Pair<String, Any>) = step { | ||
instanceId = processTestHelper.getStartProcessApi().startProcess( | ||
StartProcessByDefinitionCmd( | ||
definitionKey = definitionKey, | ||
payloadSupplier = { mapOf(singlePayload) } | ||
) | ||
).get().instanceId | ||
} | ||
|
||
fun `start process by message`(messageName: String) = step { | ||
instanceId = processTestHelper.getStartProcessApi().startProcess( | ||
StartProcessByMessageCmd( | ||
messageName = messageName, | ||
payloadSupplier = { emptyMap() } | ||
) | ||
).get().instanceId | ||
} | ||
|
||
fun `start process by message with payload`(messageName: String, singlePayload: Pair<String, Any>) = step { | ||
instanceId = processTestHelper.getStartProcessApi().startProcess( | ||
StartProcessByMessageCmd( | ||
messageName = messageName, | ||
payloadSupplier = { mapOf(singlePayload) } | ||
) | ||
).get().instanceId | ||
} | ||
|
||
fun `a active user task subscription`(taskDescriptionKey: String) = step { | ||
taskSubscription = subscribeTask(TaskType.USER, taskDescriptionKey) { taskInformation, _ -> userTaskId = taskInformation.taskId } | ||
} | ||
|
||
fun `a active external task subscription`(taskDescriptionKey: String) = step { | ||
taskSubscription = subscribeTask(TaskType.EXTERNAL, taskDescriptionKey) { taskInformation, _ -> externalTaskId = taskInformation.taskId } | ||
} | ||
|
||
fun `complete the user task`() = step { | ||
assertThat(userTaskId).isNotEmpty() | ||
|
||
processTestHelper.getUserTaskCompletionApi().completeTask( | ||
CompleteTaskCmd( | ||
taskId = userTaskId!!, | ||
payloadSupplier = { emptyMap() } | ||
) | ||
) | ||
} | ||
|
||
fun `complete the external task`() = step { | ||
assertThat(externalTaskId).isNotEmpty() | ||
|
||
processTestHelper.getExternalTaskCompletionApi().completeTask( | ||
CompleteTaskCmd( | ||
taskId = externalTaskId!!, | ||
payloadSupplier = { emptyMap() } | ||
) | ||
) | ||
} | ||
|
||
fun `unsubscribe user task subscription`() = step { unsubscribeTask() } | ||
|
||
fun `unsubscribe external task subscription`() = step { unsubscribeTask() } | ||
|
||
private fun subscribeTask(taskType: TaskType, taskDescriptionKey: String, taskHandler: TaskHandler) = processTestHelper.getTaskSubscriptionApi().subscribeForTask( | ||
SubscribeForTaskCmd( | ||
restrictions = emptyMap(), | ||
taskType = taskType, | ||
taskDescriptionKey = taskDescriptionKey, | ||
action = taskHandler, | ||
termination = {} // nothing to do | ||
) | ||
).get() | ||
|
||
private fun unsubscribeTask() = processTestHelper.getTaskSubscriptionApi().unsubscribe( | ||
UnsubscribeFromTaskCmd( | ||
taskSubscription | ||
) | ||
) | ||
|
||
} |
54 changes: 54 additions & 0 deletions
54
...er/adapter-testing/src/main/kotlin/dev/bpmcrafters/processengineapi/test/BaseThenStage.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package dev.bpmcrafters.processengineapi.test | ||
|
||
import com.tngtech.jgiven.Stage | ||
import com.tngtech.jgiven.annotation.ExpectedScenarioState | ||
import io.toolisticon.testing.jgiven.JGivenKotlinStage | ||
import io.toolisticon.testing.jgiven.step | ||
import org.assertj.core.api.Assertions.assertThat | ||
import org.awaitility.Awaitility.await | ||
|
||
@JGivenKotlinStage | ||
class BaseThenStage : Stage<BaseThenStage>() { | ||
|
||
@ExpectedScenarioState | ||
lateinit var instanceId: String | ||
|
||
@ExpectedScenarioState | ||
var userTaskId: String? = null | ||
|
||
@ExpectedScenarioState | ||
var externalTaskId: String? = null | ||
|
||
@ExpectedScenarioState | ||
lateinit var processTestHelper: ProcessTestHelper | ||
|
||
fun `we should have a running process`() = step { | ||
val process = processTestHelper.getProcessInformation(instanceId) | ||
assertThat(process).isNotNull() | ||
} | ||
|
||
fun `we should get notified about a new user task`() = step { | ||
processTestHelper.triggerUserTaskDeliveryManually() | ||
|
||
await().untilAsserted { assertThat(userTaskId).isNotEmpty() } | ||
} | ||
|
||
fun `we should get notified about a new external task`() = step { | ||
processTestHelper.triggerExternalTaskDeliveryManually() | ||
|
||
await().untilAsserted { assertThat(externalTaskId).isNotEmpty() } | ||
} | ||
|
||
fun `we should not get notified about a new user task`() = step { | ||
processTestHelper.triggerUserTaskDeliveryManually() | ||
|
||
await().untilAsserted { assertThat(userTaskId).isNull() } | ||
} | ||
|
||
fun `we should not get notified about a new external task`() = step { | ||
processTestHelper.triggerExternalTaskDeliveryManually() | ||
|
||
await().untilAsserted { assertThat(externalTaskId).isNull() } | ||
} | ||
|
||
} |
8 changes: 8 additions & 0 deletions
8
...esting/src/main/kotlin/dev/bpmcrafters/processengineapi/test/JGivenBaseIntegrationTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package dev.bpmcrafters.processengineapi.test | ||
|
||
import com.tngtech.jgiven.annotation.ProvidedScenarioState | ||
import com.tngtech.jgiven.junit5.ScenarioTest | ||
|
||
abstract class JGivenBaseIntegrationTest( | ||
@ProvidedScenarioState open val processTestHelper: ProcessTestHelper | ||
) : ScenarioTest<BaseGivenWhenStage, BaseGivenWhenStage, BaseThenStage>() |
9 changes: 9 additions & 0 deletions
9
.../src/main/kotlin/dev/bpmcrafters/processengineapi/test/JGivenSpringBaseIntegrationTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package dev.bpmcrafters.processengineapi.test | ||
|
||
import com.tngtech.jgiven.annotation.ProvidedScenarioState | ||
import com.tngtech.jgiven.integration.spring.junit5.SpringScenarioTest | ||
import com.tngtech.jgiven.junit5.ScenarioTest | ||
|
||
abstract class JGivenSpringBaseIntegrationTest( | ||
@ProvidedScenarioState open val processTestHelper: ProcessTestHelper | ||
) : SpringScenarioTest<BaseGivenWhenStage, BaseGivenWhenStage, BaseThenStage>() |
27 changes: 27 additions & 0 deletions
27
...dapter-testing/src/main/kotlin/dev/bpmcrafters/processengineapi/test/ProcessTestHelper.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package dev.bpmcrafters.processengineapi.test | ||
|
||
import dev.bpmcrafters.processengineapi.process.ProcessInformation | ||
import dev.bpmcrafters.processengineapi.process.StartProcessApi | ||
import dev.bpmcrafters.processengineapi.task.ExternalTaskCompletionApi | ||
import dev.bpmcrafters.processengineapi.task.TaskSubscriptionApi | ||
import dev.bpmcrafters.processengineapi.task.UserTaskCompletionApi | ||
|
||
interface ProcessTestHelper { | ||
|
||
fun getStartProcessApi(): StartProcessApi | ||
|
||
fun getTaskSubscriptionApi(): TaskSubscriptionApi | ||
|
||
fun getUserTaskCompletionApi(): UserTaskCompletionApi | ||
|
||
fun getExternalTaskCompletionApi(): ExternalTaskCompletionApi | ||
|
||
fun triggerUserTaskDeliveryManually() | ||
|
||
fun triggerExternalTaskDeliveryManually() | ||
|
||
fun getProcessInformation(instanceId: String): ProcessInformation | ||
|
||
fun clearAllSubscriptions() | ||
|
||
} |
Oops, something went wrong.