Skip to content

Commit a6f4cf7

Browse files
committed
Updates property tests
1 parent f1301e1 commit a6f4cf7

File tree

5 files changed

+51
-6
lines changed
  • activiti-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/activiti/parser
  • bpmn-intellij-plugin-core/src/test/kotlin/com/valb3r/bpmn/intellij/plugin
  • camunda-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/camunda/parser
  • flowable-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/flowable/parser
  • xml-parser-api/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/bpmn/api/info

5 files changed

+51
-6
lines changed

activiti-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/activiti/parser/ActivitiParser.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,16 @@ enum class ActivitiPropertyTypeDetails(val details: PropertyTypeDetails) {
106106
ERROR_CODE_VARIABLE(PropertyTypeDetails(PropertyType.ERROR_CODE_VARIABLE, "extensionElements.activiti:field?name=errorCodeVariable.activiti:string.text", XmlType.CDATA)),
107107
OUTPUT_VARIABLE(PropertyTypeDetails(PropertyType.OUTPUT_VARIABLE, "extensionElements.activiti:field?name=outputVariable.activiti:string.text", XmlType.CDATA)),
108108
DIRECTORY(PropertyTypeDetails(PropertyType.DIRECTORY, "extensionElements.activiti:field?name=directory.activiti:string.text", XmlType.CDATA)),
109+
110+
// TODO:
111+
MULTI_INSTANCE_LOOP_IS_SEQUENTIAL(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_IS_SEQUENTIAL, "multiInstanceLoopCharacteristics.isSequential", XmlType.ATTRIBUTE)),
112+
MULTI_INSTANCE_LOOP_COLLECTION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_COLLECTION, "multiInstanceLoopCharacteristics.camunda:collection", XmlType.ATTRIBUTE)),
113+
MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE, "multiInstanceLoopCharacteristics.camunda:elementVariable", XmlType.ATTRIBUTE)),
114+
MULTI_INSTANCE_LOOP_CARDINALITY_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_TYPE, "multiInstanceLoopCharacteristics.loopCardinality.type", XmlType.ATTRIBUTE)),
115+
MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION, "multiInstanceLoopCharacteristics.loopCardinality.expression", XmlType.ATTRIBUTE)),
116+
MULTI_INSTANCE_COMPLETION_CONDITION_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_TYPE, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
117+
MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
118+
109119
FAILED_JOB_RETRY_CYCLE(PropertyTypeDetails(PropertyType.FAILED_JOB_RETRY_CYCLE, "extensionElements.activiti:failedJobRetryTimeCycle.text", XmlType.CDATA)),
110120
FIELD_NAME(PropertyTypeDetails(PropertyType.FIELD_NAME, "extensionElements.activiti:[email protected]", XmlType.ATTRIBUTE)),
111121
FIELD_EXPRESSION(PropertyTypeDetails(PropertyType.FIELD_EXPRESSION, "extensionElements.activiti:[email protected]:expression.text", XmlType.CDATA)),

bpmn-intellij-plugin-core/src/test/kotlin/com/valb3r/bpmn/intellij/plugin/PropertyTest.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.nhaarman.mockitokotlin2.any
44
import com.nhaarman.mockitokotlin2.argumentCaptor
55
import com.nhaarman.mockitokotlin2.times
66
import com.nhaarman.mockitokotlin2.verify
7+
import com.valb3r.bpmn.intellij.plugin.bpmn.api.bpmn.elements.MultiInstanceLoopCharacteristics
78
import com.valb3r.bpmn.intellij.plugin.bpmn.api.bpmn.elements.tasks.BpmnUserTask
89
import com.valb3r.bpmn.intellij.plugin.bpmn.api.events.EventPropagatableToXml
910
import com.valb3r.bpmn.intellij.plugin.bpmn.api.info.FunctionalGroupType
@@ -21,6 +22,14 @@ import org.junit.jupiter.params.ParameterizedTest
2122
import org.junit.jupiter.params.provider.EnumSource
2223

2324
private val FORM_PROPERTY_ID = PropertyType.FORM_PROPERTY_ID.caption
25+
private val MULTI_INSTANCE_IS_SEQUENTIAL = PropertyType.MULTI_INSTANCE_LOOP_IS_SEQUENTIAL.caption
26+
private val MULTI_INSTANCE_LOOP_COLLECTION = PropertyType.MULTI_INSTANCE_LOOP_COLLECTION.caption
27+
private val MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE = PropertyType.MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE.caption
28+
private val MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION = PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION.caption
29+
private val MULTI_INSTANCE_LOOP_CARDINALITY_TYPE = PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_TYPE.caption
30+
private val MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION = PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION.caption
31+
private val MULTI_INSTANCE_COMPLETION_CONDITION_TYPE = PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_TYPE.caption
32+
2433

2534
internal class PropertyTest : BaseUiTest() {
2635

@@ -29,6 +38,20 @@ internal class PropertyTest : BaseUiTest() {
2938
registerNewElementsFactory(project, FlowableObjectFactory())
3039
}
3140

41+
@Test
42+
fun `UserTasks tasks' multi-instance characteristics renders OK`() {
43+
val task = BpmnUserTask(userTaskBpmnId, "Name user task")
44+
prepareUserTask(task)
45+
clickOnId(userTaskDiagramId)
46+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_IS_SEQUENTIAL) }.shouldNotBeEmpty()
47+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_LOOP_COLLECTION) }.shouldBeEmpty()
48+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE) }.shouldBeEmpty()
49+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION) }.shouldBeEmpty()
50+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_LOOP_CARDINALITY_TYPE) }.shouldBeEmpty()
51+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION) }.shouldBeEmpty()
52+
currentVisibleProperties().filterNotNull().filter { it.contains(MULTI_INSTANCE_COMPLETION_CONDITION_TYPE) }.shouldBeEmpty()
53+
}
54+
3255
@Test
3356
fun `UserTasks' Form Property can be added and property list is OK`() {
3457
val task = BpmnUserTask(userTaskBpmnId, "Name user task", formPropertiesExtension = listOf())

camunda-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/camunda/parser/CamundaParser.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,15 @@ enum class CamundaPropertyTypeDetails(val details: PropertyTypeDetails) {
128128
// Unsupported? ERROR_CODE_VARIABLE(PropertyTypeDetails(PropertyType.ERROR_CODE_VARIABLE, "extensionElements.camunda:field?name=errorCodeVariable.camunda:string.text", XmlType.CDATA)),
129129
// Unsupported? OUTPUT_VARIABLE(PropertyTypeDetails(PropertyType.OUTPUT_VARIABLE, "extensionElements.camunda:field?name=outputVariable.camunda:string.text", XmlType.CDATA)),
130130
// Unsupported? DIRECTORY(PropertyTypeDetails(PropertyType.DIRECTORY, "extensionElements.camunda:field?name=directory.camunda:string.text", XmlType.CDATA)),
131+
// TODO:
131132
MULTI_INSTANCE_LOOP_IS_SEQUENTIAL(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_IS_SEQUENTIAL, "multiInstanceLoopCharacteristics.isSequential", XmlType.ATTRIBUTE)),
132133
MULTI_INSTANCE_LOOP_COLLECTION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_COLLECTION, "multiInstanceLoopCharacteristics.camunda:collection", XmlType.ATTRIBUTE)),
133134
MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE, "multiInstanceLoopCharacteristics.camunda:elementVariable", XmlType.ATTRIBUTE)),
134135
MULTI_INSTANCE_LOOP_CARDINALITY_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_TYPE, "multiInstanceLoopCharacteristics.loopCardinality.type", XmlType.ATTRIBUTE)),
135136
MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION, "multiInstanceLoopCharacteristics.loopCardinality.expression", XmlType.ATTRIBUTE)),
136137
MULTI_INSTANCE_COMPLETION_CONDITION_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_TYPE, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
137138
MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
139+
138140
FAILED_JOB_RETRY_CYCLE(PropertyTypeDetails(PropertyType.FAILED_JOB_RETRY_CYCLE, "extensionElements.camunda:failedJobRetryTimeCycle.text", XmlType.CDATA)),
139141
FIELD_NAME(PropertyTypeDetails(PropertyType.FIELD_NAME, "extensionElements.camunda:[email protected]", XmlType.ATTRIBUTE)),
140142
FIELD_EXPRESSION(PropertyTypeDetails(PropertyType.FIELD_EXPRESSION, "extensionElements.camunda:[email protected]:expression.text", XmlType.CDATA)),

flowable-xml-parser/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/flowable/parser/FlowableParser.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,16 @@ enum class FlowablePropertyTypeDetails(val details: PropertyTypeDetails) {
118118
ERROR_CODE_VARIABLE(PropertyTypeDetails(PropertyType.ERROR_CODE_VARIABLE, "extensionElements.flowable:field?name=errorCodeVariable.flowable:string.text", XmlType.CDATA)),
119119
OUTPUT_VARIABLE(PropertyTypeDetails(PropertyType.OUTPUT_VARIABLE, "extensionElements.flowable:field?name=outputVariable.flowable:string.text", XmlType.CDATA)),
120120
DIRECTORY(PropertyTypeDetails(PropertyType.DIRECTORY, "extensionElements.flowable:field?name=directory.flowable:string.text", XmlType.CDATA)),
121+
122+
// TODO:
123+
MULTI_INSTANCE_LOOP_IS_SEQUENTIAL(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_IS_SEQUENTIAL, "multiInstanceLoopCharacteristics.isSequential", XmlType.ATTRIBUTE)),
124+
MULTI_INSTANCE_LOOP_COLLECTION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_COLLECTION, "multiInstanceLoopCharacteristics.camunda:collection", XmlType.ATTRIBUTE)),
125+
MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE, "multiInstanceLoopCharacteristics.camunda:elementVariable", XmlType.ATTRIBUTE)),
126+
MULTI_INSTANCE_LOOP_CARDINALITY_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_TYPE, "multiInstanceLoopCharacteristics.loopCardinality.type", XmlType.ATTRIBUTE)),
127+
MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION, "multiInstanceLoopCharacteristics.loopCardinality.expression", XmlType.ATTRIBUTE)),
128+
MULTI_INSTANCE_COMPLETION_CONDITION_TYPE(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_TYPE, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
129+
MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION(PropertyTypeDetails(PropertyType.MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION, "multiInstanceLoopCharacteristics.completionCondition.type", XmlType.CDATA)),
130+
121131
FAILED_JOB_RETRY_CYCLE(PropertyTypeDetails(PropertyType.FAILED_JOB_RETRY_CYCLE, "extensionElements.flowable:failedJobRetryTimeCycle.text", XmlType.CDATA)),
122132
EVENT_NAME(PropertyTypeDetails(PropertyType.EVENT_NAME, "extensionElements.flowable:eventName.text", XmlType.CDATA)),
123133
EVENT_TYPE(PropertyTypeDetails(PropertyType.EVENT_TYPE, "extensionElements.flowable:eventType.text", XmlType.CDATA)),

xml-parser-api/src/main/kotlin/com/valb3r/bpmn/intellij/plugin/bpmn/api/info/PropertyType.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,12 @@ enum class PropertyType(
182182
MAPPING_PAYLOAD_FROM_EVENT_PROPERTY_NAME("extensionElementsMappingPayloadFromEvent.@target", "Event property name", STRING, group = listOf(FunctionalGroupType.MAPPING_PAYLOAD_FROM), isUsedOnlyBy = setOf(BpmnSendEventTask::class), indexInGroupArrayName = "source"),
183183
MAPPING_PAYLOAD_FROM_EVENT_TYPE("extensionElementsMappingPayloadFromEvent.@type", "Type", LIST_SELECT, setForSelect = setOf("","string", "integer", "double", "boolean"), isUsedOnlyBy = setOf(BpmnSendEventTask::class), group = listOf(FunctionalGroupType.MAPPING_PAYLOAD_FROM), indexInGroupArrayName = "source"),
184184
MULTI_INSTANCE_LOOP_IS_SEQUENTIAL("multiInstanceLoopCharacteristics.sequential", "Multi-instance loop type", LIST_SELECT, setForSelect = setOf("","sequential", "parallel"), group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), listenerOrder = 100, removeEnclosingNodeIfNullOrEmpty = true, hideIfNullOrEmpty = false, indexInGroupArrayName = "sequential", indexCascades = CascadeGroup.FLAT, positionInGroup = 1, mapValuesTo = mapOf("true" to "sequential", "false" to "parallel")),
185-
MULTI_INSTANCE_LOOP_COLLECTION("multiInstanceLoopCharacteristics.collection", "Collection", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP)),
186-
MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE("multiInstanceLoopCharacteristics.elementVariable", "Element variable", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP)),
187-
MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION("multiInstanceLoopCharacteristics.loopCardinality.expression", "Cardinality expression", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), removeEnclosingNodeIfNullOrEmpty = true),
188-
MULTI_INSTANCE_LOOP_CARDINALITY_TYPE("multiInstanceLoopCharacteristics.loopCardinality.type", "Cardinality type", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), updatedByWithinSameElement = MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION, onUpdatedByUseHardcodedValue = "bpmn:tFormalExpression", inCascadeOrder = 0),
189-
MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION("multiInstanceLoopCharacteristics.completionCondition.expression", "Completion condition expression", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), removeEnclosingNodeIfNullOrEmpty = true),
190-
MULTI_INSTANCE_COMPLETION_CONDITION_TYPE("multiInstanceLoopCharacteristics.completionCondition.type", "Completion condition type", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), updatedByWithinSameElement = MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION, onUpdatedByUseHardcodedValue = "bpmn:tFormalExpression", inCascadeOrder = 0),
185+
MULTI_INSTANCE_LOOP_COLLECTION("multiInstanceLoopCharacteristics.collection", "Collection", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), hideIfNullOrEmpty = true),
186+
MULTI_INSTANCE_LOOP_ELEMENT_VARIABLE("multiInstanceLoopCharacteristics.elementVariable", "Element variable", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), hideIfNullOrEmpty = true),
187+
MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION("multiInstanceLoopCharacteristics.loopCardinality.expression", "Cardinality expression", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), removeEnclosingNodeIfNullOrEmpty = true, hideIfNullOrEmpty = true),
188+
MULTI_INSTANCE_LOOP_CARDINALITY_TYPE("multiInstanceLoopCharacteristics.loopCardinality.type", "Cardinality type", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), updatedByWithinSameElement = MULTI_INSTANCE_LOOP_CARDINALITY_EXPRESSION, onUpdatedByUseHardcodedValue = "bpmn:tFormalExpression", inCascadeOrder = 0, hideIfNullOrEmpty = true),
189+
MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION("multiInstanceLoopCharacteristics.completionCondition.expression", "Completion condition expression", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), removeEnclosingNodeIfNullOrEmpty = true, hideIfNullOrEmpty = true),
190+
MULTI_INSTANCE_COMPLETION_CONDITION_TYPE("multiInstanceLoopCharacteristics.completionCondition.type", "Completion condition type", STRING, group = listOf(FunctionalGroupType.MULTI_INSTANCE_LOOP), updatedByWithinSameElement = MULTI_INSTANCE_COMPLETION_CONDITION_EXPRESSION, onUpdatedByUseHardcodedValue = "bpmn:tFormalExpression", inCascadeOrder = 0, hideIfNullOrEmpty = true),
191191
EXECUTION_LISTENER_CLASS("executionListener.@clazz", "Class", PropertyValueType.CLASS, group = listOf(FunctionalGroupType.EXECUTION_LISTENER), indexInGroupArrayName = "clazz", listenerOrder = 100, indexCascades = CascadeGroup.PARENTS_CASCADE, removeEnclosingNodeIfNullOrEmpty = true, hideIfNullOrEmpty = true),
192192
EXECUTION_LISTENER_EVENT("executionListener.@event", "Event", LIST_SELECT, setForSelect = setOf("","start", "end", "take"), group = listOf(FunctionalGroupType.EXECUTION_LISTENER), indexInGroupArrayName = "clazz"),
193193
EXECUTION_LISTENER_FIELD_NAME("executionListener.@fields.@name", "Name", STRING, group = listOf(FunctionalGroupType.EXECUTION_LISTENER, FunctionalGroupType.EXECUTION_LISTENER_FILED), indexInGroupArrayName = "clazz.name", indexCascades = CascadeGroup.PARENTS_CASCADE, removeEnclosingNodeIfNullOrEmpty = true, listenerOrder = 95),

0 commit comments

Comments
 (0)