Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add jgiven support #102

Merged
merged 3 commits into from
Oct 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion engine-adapter/adapter-testing/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

<properties>
<h2.version>2.2.224</h2.version>
<camunda-platform-7-mockito.version>7.21.0</camunda-platform-7-mockito.version>
<mockk.version>1.13.13</mockk.version>
<jgiven.version>1.3.1</jgiven.version>
</properties>
Expand Down
32 changes: 25 additions & 7 deletions engine-adapter/camunda-platform-7-embedded-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,38 @@
<scope>provided</scope>
</dependency>

<!-- For JGiven Testing -->
<dependency>
<groupId>com.tngtech.jgiven</groupId>
<artifactId>jgiven-core</artifactId>
<version>1.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility-kotlin</artifactId>
<version>4.2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-bpm-assert</artifactId>
<version>${camunda.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>provided</scope>
</dependency>

<!-- Testing -->
<dependency>
<groupId>dev.bpm-crafters.process-engine-api</groupId>
<artifactId>process-engine-api-adapter-testing</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
Expand All @@ -66,12 +90,6 @@
<version>${camunda.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-bpm-assert</artifactId>
<version>${camunda.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.camunda.community.mockito</groupId>
<artifactId>camunda-platform-7-mockito</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
package dev.bpmcrafters.processengineapi.adapter.c7.embedded.testing

import com.tngtech.jgiven.Stage
import com.tngtech.jgiven.annotation.As
import com.tngtech.jgiven.annotation.ProvidedScenarioState
import com.tngtech.jgiven.annotation.Quoted
import com.tngtech.jgiven.annotation.ScenarioState
import dev.bpmcrafters.processengineapi.CommonRestrictions
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.deploy.DeploymentApiImpl
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.process.StartProcessApiImpl
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.completion.C7ServiceTaskCompletionApiImpl
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.completion.C7UserTaskCompletionApiImpl
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.completion.LinearMemoryFailureRetrySupplier
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.delivery.pull.EmbeddedPullServiceTaskDelivery
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.delivery.pull.EmbeddedPullUserTaskDelivery
import dev.bpmcrafters.processengineapi.adapter.c7.embedded.task.subscription.C7TaskSubscriptionApiImpl
import dev.bpmcrafters.processengineapi.adapter.commons.task.InMemSubscriptionRepository
import dev.bpmcrafters.processengineapi.adapter.commons.task.UserTaskSupport
import dev.bpmcrafters.processengineapi.deploy.DeployBundleCommand
import dev.bpmcrafters.processengineapi.deploy.DeploymentApi
import dev.bpmcrafters.processengineapi.deploy.NamedResource.Companion.fromClasspath
import dev.bpmcrafters.processengineapi.process.StartProcessApi
import dev.bpmcrafters.processengineapi.task.*
import org.assertj.core.api.Assertions
import org.awaitility.Awaitility
import org.camunda.bpm.engine.ProcessEngineServices
import org.camunda.bpm.engine.runtime.ProcessInstance
import org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests
import org.camunda.bpm.engine.variable.VariableMap
import java.util.*
import java.util.concurrent.Executors
import java.util.function.Supplier
import kotlin.collections.set

/**
* Abstract JGiven stage for implementing BDD tests operating on Camunda 7 Embedded.
* @param SUBTYPE type of your stage, subclassing this one.
*/
abstract class AbstractC7EmbeddedStage<SUBTYPE : AbstractC7EmbeddedStage<SUBTYPE>> : Stage<SUBTYPE>() {

Check warning on line 39 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L39

Added line #L39 was not covered by tests

@ProvidedScenarioState
private lateinit var restrictions: Map<String, String>

@ProvidedScenarioState(resolution = ScenarioState.Resolution.NAME)
protected lateinit var workerId: String

Check warning on line 45 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L45

Added line #L45 was not covered by tests

@ProvidedScenarioState
protected lateinit var userTaskSupport: UserTaskSupport

Check warning on line 48 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L48

Added line #L48 was not covered by tests

@ProvidedScenarioState
protected lateinit var startProcessApi: StartProcessApi

Check warning on line 51 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L51

Added line #L51 was not covered by tests

@ProvidedScenarioState
protected lateinit var userTaskCompletionApi: UserTaskCompletionApi

Check warning on line 54 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L54

Added line #L54 was not covered by tests

@ProvidedScenarioState
protected lateinit var serviceTaskCompletionApi: ServiceTaskCompletionApi

Check warning on line 57 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L57

Added line #L57 was not covered by tests

@ProvidedScenarioState
protected lateinit var taskSubscriptionApi: TaskSubscriptionApi

Check warning on line 60 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L60

Added line #L60 was not covered by tests

@ProvidedScenarioState
protected lateinit var deploymentApi: DeploymentApi

Check warning on line 63 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L63

Added line #L63 was not covered by tests

@ProvidedScenarioState
protected lateinit var processEngineServices: ProcessEngineServices

Check warning on line 66 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L66

Added line #L66 was not covered by tests

@ProvidedScenarioState
lateinit var embeddedPullUserTaskDelivery: EmbeddedPullUserTaskDelivery

Check warning on line 69 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L69

Added line #L69 was not covered by tests

@ProvidedScenarioState
private lateinit var embeddedPullServiceTaskDelivery: EmbeddedPullServiceTaskDelivery

@ProvidedScenarioState
protected lateinit var processInstanceSupplier: Supplier<ProcessInstance>

Check warning on line 75 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L75

Added line #L75 was not covered by tests

@ProvidedScenarioState(resolution = ScenarioState.Resolution.NAME)
private lateinit var topicToExternalTaskId: MutableMap<String, String>

@ProvidedScenarioState(resolution = ScenarioState.Resolution.NAME)
private lateinit var topicToElementId: MutableMap<String, String>

@ProvidedScenarioState
protected lateinit var taskInformation: TaskInformation

Check warning on line 84 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L84

Added line #L84 was not covered by tests


/**
* Initializes the engine. should be called from a method of your test marked with `@BeforeEach`
* to make sure, the engine is initialized early.
* @param processEngineServices either process engine or process engine extension.
* @param restrictions list of restrictions used in task subscription API. Usually, contains a restriction to the process definition key. Please use `CommonRestrictions` builder.
*/
open fun initializeEngine(
processEngineServices: ProcessEngineServices,
restrictions: Map<String, String>
): SUBTYPE {
this.topicToExternalTaskId = mutableMapOf()
this.topicToElementId = mutableMapOf()

Check warning on line 98 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L97-L98

Added lines #L97 - L98 were not covered by tests

this.restrictions = restrictions
this.processEngineServices = processEngineServices
this.workerId = self().javaClass.simpleName

Check warning on line 102 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L100-L102

Added lines #L100 - L102 were not covered by tests

val subscriptionRepository = InMemSubscriptionRepository()

Check warning on line 104 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L104

Added line #L104 was not covered by tests

startProcessApi = StartProcessApiImpl(processEngineServices.runtimeService)
deploymentApi = DeploymentApiImpl(processEngineServices.repositoryService)
userTaskCompletionApi = C7UserTaskCompletionApiImpl(processEngineServices.taskService, subscriptionRepository)
serviceTaskCompletionApi = C7ServiceTaskCompletionApiImpl(
workerId, processEngineServices.externalTaskService, subscriptionRepository, LinearMemoryFailureRetrySupplier(3, 3L)

Check warning on line 110 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L106-L110

Added lines #L106 - L110 were not covered by tests
)
embeddedPullUserTaskDelivery = EmbeddedPullUserTaskDelivery(
processEngineServices.taskService, processEngineServices.repositoryService, subscriptionRepository, Executors.newFixedThreadPool(1)

Check warning on line 113 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L112-L113

Added lines #L112 - L113 were not covered by tests
)

embeddedPullServiceTaskDelivery = EmbeddedPullServiceTaskDelivery(
processEngineServices.externalTaskService, workerId, subscriptionRepository, Int.MAX_VALUE, 1000, 1000, 1, Executors.newFixedThreadPool(1)

Check warning on line 117 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L116-L117

Added lines #L116 - L117 were not covered by tests
)

taskSubscriptionApi = C7TaskSubscriptionApiImpl(
subscriptionRepository

Check warning on line 121 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L120-L121

Added lines #L120 - L121 were not covered by tests
)

this.userTaskSupport = UserTaskSupport()
userTaskSupport.subscribe(
taskSubscriptionApi, restrictions, null, null

Check warning on line 126 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L124-L126

Added lines #L124 - L126 were not covered by tests
)

initialize()

Check warning on line 129 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L129

Added line #L129 was not covered by tests

// activate delivery
embeddedPullUserTaskDelivery.refresh()
embeddedPullServiceTaskDelivery.refresh()
return self()

Check warning on line 134 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L132-L134

Added lines #L132 - L134 were not covered by tests
}


/**
* Called after Process Engine and API are initialized.
*/
open fun initialize() {
}


@As("external task of type \$topicName exists")
open fun external_task_exists(@Quoted topicName: String, activityId: String?): SUBTYPE {
taskSubscriptionApi.subscribeForTask(
SubscribeForTaskCmd(restrictions,
TaskType.EXTERNAL,
topicName,
null,

Check warning on line 151 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L147-L151

Added lines #L147 - L151 were not covered by tests
{ ti, _ ->
run {
topicToExternalTaskId[topicName] = ti.taskId
topicToElementId[topicName] = ti.meta[CommonRestrictions.ACTIVITY_ID] as String

Check warning on line 155 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L153-L155

Added lines #L153 - L155 were not covered by tests
}
},

Check warning on line 157 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L157

Added line #L157 was not covered by tests
{ _ ->
run {
topicToExternalTaskId.remove(topicName)
topicToElementId.remove(topicName)

Check warning on line 161 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L159-L161

Added lines #L159 - L161 were not covered by tests
}
})

Check warning on line 163 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L163

Added line #L163 was not covered by tests
)
Awaitility.await().untilAsserted {
embeddedPullServiceTaskDelivery.refresh()
Assertions.assertThat(topicToExternalTaskId.containsKey(topicName)).isTrue()

Check warning on line 167 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L165-L167

Added lines #L165 - L167 were not covered by tests
if (activityId != null) {
Assertions.assertThat(topicToElementId).containsEntry(topicName, activityId)

Check warning on line 169 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L169

Added line #L169 was not covered by tests
}
}
return self()

Check warning on line 172 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L172

Added line #L172 was not covered by tests
}

@As("external task of type \$topicName is completed")
open fun external_task_is_completed(@Quoted topicName: String, variables: VariableMap): SUBTYPE {
Objects.requireNonNull(
topicToExternalTaskId[topicName], "No active external service task found, consider to assert using external_task_exists"

Check warning on line 178 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L177-L178

Added lines #L177 - L178 were not covered by tests
)
serviceTaskCompletionApi.completeTask(CompleteTaskCmd(
topicToExternalTaskId.getValue(topicName)
) { variables }).get()
return self()

Check warning on line 183 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L180-L183

Added lines #L180 - L183 were not covered by tests
}

open fun process_continues(elementId: String): SUBTYPE {
Awaitility.await().untilAsserted {
val job = BpmnAwareTests.job(elementId, processInstanceSupplier.get())
Assertions.assertThat(job).isNotNull()
BpmnAwareTests.execute(job)

Check warning on line 190 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L187-L190

Added lines #L187 - L190 were not covered by tests
}
return self()

Check warning on line 192 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L192

Added line #L192 was not covered by tests
}

open fun process_is_deployed(resource: String): SUBTYPE {
deploymentApi.deploy(
DeployBundleCommand(
listOf(fromClasspath(resource)), null

Check warning on line 198 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L196-L198

Added lines #L196 - L198 were not covered by tests
)
).get()
return self()

Check warning on line 201 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L200-L201

Added lines #L200 - L201 were not covered by tests
}

open fun process_is_finished(): SUBTYPE {
BpmnAwareTests.assertThat(processInstanceSupplier.get()).isEnded()
return self()

Check warning on line 206 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L205-L206

Added lines #L205 - L206 were not covered by tests
}

open fun process_has_passed(vararg elementIds: String): SUBTYPE {
BpmnAwareTests.assertThat(processInstanceSupplier.get()).hasPassed(*elementIds)
return self()

Check warning on line 211 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L210-L211

Added lines #L210 - L211 were not covered by tests
}

open fun process_is_stopped(): SUBTYPE {
processEngineServices.runtimeService.deleteProcessInstance(processInstanceSupplier.get().processInstanceId, "Stopped", false, true)
return self()

Check warning on line 216 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L215-L216

Added lines #L215 - L216 were not covered by tests
}

@As("process waits in $")
open fun process_waits_in(@Quoted taskDescriptionKey: String): SUBTYPE {
// try to get the task
Awaitility.await().untilAsserted {
val taskIdOption = findTaskByActivityId(taskDescriptionKey)
Assertions.assertThat(taskIdOption).describedAs("Process is not waiting in user task $taskDescriptionKey", taskDescriptionKey).isNotEmpty()
taskIdOption.ifPresent { taskId -> this.taskInformation = userTaskSupport.getTaskInformation(taskId) }

Check warning on line 225 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L222-L225

Added lines #L222 - L225 were not covered by tests
}
return self()

Check warning on line 227 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L227

Added line #L227 was not covered by tests
}


@As("user tasks is assigned to user $")
open fun task_is_assigned_to_user(@Quoted assignee: String): SUBTYPE {
Assertions.assertThat(task().meta["assignee"]).isEqualTo(assignee)
return self()

Check warning on line 234 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L233-L234

Added lines #L233 - L234 were not covered by tests
}


open fun task(): TaskInformation {
return Objects.requireNonNull(taskInformation, "No task found, consider to assert using process_waits_in")

Check warning on line 239 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L239

Added line #L239 was not covered by tests
}


private fun findTaskByActivityId(taskDescriptionKey: String): Optional<String> {
embeddedPullUserTaskDelivery.refresh()
return Optional.ofNullable(
userTaskSupport
.getAllTasks()

Check warning on line 247 in engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt

View check run for this annotation

Codecov / codecov/patch

engine-adapter/camunda-platform-7-embedded-core/src/main/kotlin/dev/bpmcrafters/processengineapi/adapter/c7/embedded/testing/AbstractC7EmbeddedStage.kt#L244-L247

Added lines #L244 - L247 were not covered by tests
.find { ti: TaskInformation -> ti.meta[CommonRestrictions.TASK_DEFINITION_KEY] == taskDescriptionKey }?.taskId
)
}
}
33 changes: 33 additions & 0 deletions engine-adapter/camunda-platform-8-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<properties>
<zeebe-client-java.version>8.6.0</zeebe-client-java.version>
<camunda-tasklist-client-java.version>8.5.3.6</camunda-tasklist-client-java.version>
<spring-zeebe.version>8.5.3</spring-zeebe.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -56,6 +57,38 @@
</exclusion>
</exclusions>
</dependency>

<!-- For JGiven Testing -->
<dependency>
<groupId>com.tngtech.jgiven</groupId>
<artifactId>jgiven-core</artifactId>
<version>1.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility-kotlin</artifactId>
<version>4.2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-process-test-assertions</artifactId>
<version>${spring-zeebe.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-process-test-extension-testcontainer</artifactId>
<version>${spring-zeebe.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>provided</scope>
</dependency>

</dependencies>

</project>
Loading