Package de.xima.fc.ms.test.workflow
Class AWorkflowEngineTest
- java.lang.Object
-
- de.xima.fc.ms.test.workflow.AWorkflowEngineTest
-
- All Implemented Interfaces:
DaoCrudMixin
- Direct Known Subclasses:
AEventRunnerTest
@ExtendWith(FcSystemIntegrationExtension.class) public abstract class AWorkflowEngineTest extends Object implements DaoCrudMixin
Base test for all workflow tests that created the workflow process.- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
-
-
Field Summary
Fields Modifier and Type Field Description protected Mandantclientprotected DatenbankZugriffdbConnprotected DatenbankZugriffdbConnInvalidprotected IEntityContextHolderecprotected FormEingangformDataprotected VorgangformRecordprotected FormVersionformVersionprotected BenutzerGruppegroupprotected BenutzerGruppegroupOtherprotected Textbausteini18nprotected Postfachinboxprotected static org.slf4j.LoggerLOGprotected WorkflowProcessprocessprotected Projektprojectprotected Rolleroleprotected WorkflowStatestateprotected WorkflowStatestateArchivedprotected PathtempDirprotected TestSystemInfotestSystemInfoprotected IUseruserprotected WorkflowVersionversion
-
Constructor Summary
Constructors Constructor Description AWorkflowEngineTest()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidassertAttachmentContentString(EAttachmentSource source, String value)protected voidassertAttachmentContentString(EAttachmentSource source, Predicate<String> nameFilter, String value)protected voidassertAttachmentContentZippedString(Map<String,String> expectedFiles, Attachment attachment)protected voidassertAttachmentsContentString(EAttachmentSource source, String... values)protected voidassertAttachmentsContentString(EAttachmentSource source, Predicate<String> nameFilter, String... values)protected voidassertAttachmentsContentString(List<Attachment> attachments, String... values)protected voidassertEntriesAreEqual(Map<?,?> expectedSubset, Map<?,?> actual)protected List<ProtocolEntryProcessing>assertHasLogEntriesOfType(EProtocolEntryProcessType expectedType, int expectedAmount)protected voidassertHasNoAttachments(EAttachmentSource source)protected ProtocolEntryProcessingassertHasSingleLogEntryOfType(EProtocolEntryProcessType type)protected byte[]binaryResource(String resourcePath)protected static voidcleanupAfterAll(AutoCloseable cleanupAction)protected voidcleanupAfterEach(AutoCloseable cleanupAction)protected MandantRessourcecreateClientResource(@NotNull String name, @javax.validation.constraints.NotNull byte[] resourceData, @NotNull String resourceDescription)Creates a client resource where the resource- and the file-name are the same.protected MandantRessourcecreateClientResource(@NotNull String resourceName, @NotNull String fileName, @javax.validation.constraints.NotNull byte[] resourceData, @NotNull String resourceDescription)protected MandantRessourcecreateClientResource(@NotNull String name, @NotNull String resourceData, @NotNull String resourceDescription)Creates a client resource where the resource- and the file-name are the same.protected voidcreateFormData(String fileName, String... formElements)Creates form data for the current form record.protected AttachmentcreateFormRecordResource(@NotNull String attachmentFilename, EAttachmentSource attachmentSource, @javax.validation.constraints.NotNull byte[] resourceData, Date editDate, String uploadElementName)protected AttachmentcreateFormRecordResource(@NotNull String attachmentFilename, EAttachmentSource attachmentSource, @NotNull String resourceData, Date editDate, String uploadElementName)protected ProjektRessourcecreateProjectResource(@NotNull String name, @javax.validation.constraints.NotNull byte[] resourceData, @NotNull String resourceDescription)Creates a project resource where the resource- and the file-name are the same.protected ProjektRessourcecreateProjectResource(@NotNull String resourceName, @NotNull String fileName, @javax.validation.constraints.NotNull byte[] resourceData, @NotNull String resourceDescription)protected ProjektRessourcecreateProjectResource(String name, @NotNull String resourceData, @NotNull String resourceDescription)Creates a project resource where the resource- and the file-name are the same.protected WorkflowNodecreateSleepNode(int sleepTimeMillis)protected voidcreateTempDir()protected PathcreateTextFile(String fileName, String content)protected voiddeleteTempDir()IEntityContextec()protected FormElementformElement(String name)protected byte[]getAttachmentContentData(Attachment attachment)protected StringgetAttachmentContentString(Attachment attachment)protected AttachmentgetFormRecordAttachment(EAttachmentSource source)protected AttachmentgetFormRecordAttachment(EAttachmentSource source, Predicate<String> nameFilter)protected StringgetFormRecordAttachmentContentString(EAttachmentSource source)protected List<Attachment>getFormRecordAttachments(EAttachmentSource source)protected List<Attachment>getFormRecordAttachments(EAttachmentSource source, Predicate<String> nameFilter)protected List<ProtocolEntryProcessing>getProcessingProtcolEntriesByType(Vorgang formRecord, EProtocolEntryProcessType... types)protected <T> TgetSuccessValueAs(IEventExecutionResult result, AWorkflowElement<?,?> element, Class<T> expectedType)protected static NodeKeynodeKey(WorkflowTrigger trigger, WorkflowNode node)protected StringplainTextResource(String resourcePath)protected StringplainTextResource(String resourcePath, Charset charset)protected byte[]readBinaryFile(File file)protected byte[]readBinaryFile(Path file)protected StringreadFile(File file)protected VorgangreadFormRecord(Long id)protected <T extends de.xima.cmn.dao.interfaces.IEntity<?>,E extends de.xima.cmn.dao.interfaces.IBaseEntityContext>
voidregisterQueryListener(de.xima.cmn.dao.interfaces.IAbstractDao<T,?,E> dao, de.xima.cmn.dao.enums.EDaoAction action, de.xima.cmn.dao.enums.EDaoActionState state, de.xima.cmn.dao.interfaces.IDaoActionListener<T,E> listener)protected voidreloadFormRecord()protected voidreloadProcess()protected voidreloadProject()protected static voidrunGenericAfterAllCleanupActions()protected voidrunGenericAfterEachCleanupActions()protected voidsaveAndReloadFormRecord()protected voidsaveAndReloadProcess()protected voidsaveAndReloadProject()protected voidsetupEntities()protected abstract voidsetupProcess()protected com.alibaba.fastjson.JSONObjecttoJsonObject(Object data)protected voidupdateClientLicense(String licenseKey, String pathToLicenseFile)protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>,TData>
voidupdateParams(AWorkflowElement<TElement,TSearchTerm> element, IElementHandler<TData,TElement> handler, Consumer<TData> updater)protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>,TData>
voidupdateParams(AWorkflowElement<TElement,TSearchTerm> element, Class<TData> type, Consumer<TData> updater)protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>>
voidupdateParams(AWorkflowElement<TElement,TSearchTerm> element, Consumer<Object> updater)protected FormElementuploadElement(String name)protected AutoCloseablewaitUntilFormRecordLocked()protected AutoCloseablewaitUntilFormRecordLocked(int timeoutSeconds)protected AutoCloseablewaitUntilFormRecordLocked(long formRecordId)protected AutoCloseablewaitUntilFormRecordLocked(long formRecordId, int timeoutSeconds)protected voidwaitUntilFormRecordUnlocked()protected voidwaitUntilFormRecordUnlocked(int timeoutSeconds)protected voidwaitUntilFormRecordUnlocked(long formRecordId)protected voidwaitUntilFormRecordUnlocked(long formRecordId, int timeoutSeconds)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.xima.fc.ms.test.dao.DaoCrudMixin
create, createOrUpdate, dao, dao, delete, read, read, readAll, update
-
-
-
-
Field Detail
-
LOG
protected static final org.slf4j.Logger LOG
-
client
protected Mandant client
-
tempDir
protected Path tempDir
-
dbConn
protected DatenbankZugriff dbConn
-
dbConnInvalid
protected DatenbankZugriff dbConnInvalid
-
ec
protected IEntityContextHolder ec
-
formData
protected FormEingang formData
-
formRecord
protected Vorgang formRecord
-
formVersion
protected FormVersion formVersion
-
group
protected BenutzerGruppe group
-
groupOther
protected BenutzerGruppe groupOther
-
i18n
protected Textbaustein i18n
-
inbox
protected Postfach inbox
-
process
protected WorkflowProcess process
-
project
protected Projekt project
-
role
protected Rolle role
-
state
protected WorkflowState state
-
stateArchived
protected WorkflowState stateArchived
-
testSystemInfo
protected TestSystemInfo testSystemInfo
-
user
protected IUser user
-
version
protected WorkflowVersion version
-
-
Method Detail
-
ec
public IEntityContext ec()
- Specified by:
ecin interfaceDaoCrudMixin- Returns:
- The entity context to use for database operations.
-
assertAttachmentContentString
protected void assertAttachmentContentString(EAttachmentSource source, Predicate<String> nameFilter, String value)
-
assertAttachmentContentString
protected void assertAttachmentContentString(EAttachmentSource source, String value)
-
assertAttachmentContentZippedString
protected void assertAttachmentContentZippedString(Map<String,String> expectedFiles, Attachment attachment) throws IOException
- Throws:
IOException
-
assertAttachmentsContentString
protected void assertAttachmentsContentString(EAttachmentSource source, Predicate<String> nameFilter, String... values)
-
assertAttachmentsContentString
protected void assertAttachmentsContentString(EAttachmentSource source, String... values)
-
assertAttachmentsContentString
protected void assertAttachmentsContentString(List<Attachment> attachments, String... values)
-
assertEntriesAreEqual
protected void assertEntriesAreEqual(Map<?,?> expectedSubset, Map<?,?> actual)
-
assertHasLogEntriesOfType
protected List<ProtocolEntryProcessing> assertHasLogEntriesOfType(EProtocolEntryProcessType expectedType, int expectedAmount)
-
assertHasNoAttachments
protected void assertHasNoAttachments(EAttachmentSource source)
-
assertHasSingleLogEntryOfType
protected ProtocolEntryProcessing assertHasSingleLogEntryOfType(EProtocolEntryProcessType type)
-
createClientResource
protected MandantRessource createClientResource(@NotNull @NotNull String name, @NotNull @javax.validation.constraints.NotNull byte[] resourceData, @NotNull @NotNull String resourceDescription) throws Exception
Creates a client resource where the resource- and the file-name are the same.- Parameters:
name- Name of the file.resourceData- Contents of the file.resourceDescription- Description of the file.- Returns:
- The newly created client resource.
- Throws:
Exception- When the resource could not be created, such as due to a database error.
-
createClientResource
protected MandantRessource createClientResource(@NotNull @NotNull String resourceName, @NotNull @NotNull String fileName, @NotNull @javax.validation.constraints.NotNull byte[] resourceData, @NotNull @NotNull String resourceDescription) throws Exception
- Throws:
Exception
-
createClientResource
protected MandantRessource createClientResource(@NotNull @NotNull String name, @NotNull @NotNull String resourceData, @NotNull @NotNull String resourceDescription) throws Exception
Creates a client resource where the resource- and the file-name are the same.- Parameters:
name- Name of the file.resourceData- Contents of the file.resourceDescription- Description of the file.- Returns:
- The newly created client resource.
- Throws:
Exception- When the resource could not be created, such as due to a database error.
-
createFormData
protected void createFormData(String fileName, String... formElements)
Creates form data for the current form record.- Parameters:
fileName- XML and JSON file with the form data. If it starts with a slash: a full path to a classpath resource, without the extension. Otherwise it should be a file name without an extension, which is looked up as a classpath resource in the/forms/folder.formElements- Names of the form elements to make available.
-
createFormRecordResource
protected Attachment createFormRecordResource(@NotNull @NotNull String attachmentFilename, EAttachmentSource attachmentSource, @NotNull @javax.validation.constraints.NotNull byte[] resourceData, @Nullable Date editDate, @Nullable String uploadElementName) throws Exception
- Throws:
Exception
-
createFormRecordResource
protected Attachment createFormRecordResource(@NotNull @NotNull String attachmentFilename, EAttachmentSource attachmentSource, @NotNull @NotNull String resourceData, @Nullable Date editDate, @Nullable String uploadElementName) throws Exception
- Throws:
Exception
-
createProjectResource
protected ProjektRessource createProjectResource(@NotNull @NotNull String name, @NotNull @javax.validation.constraints.NotNull byte[] resourceData, @NotNull @NotNull String resourceDescription) throws Exception
Creates a project resource where the resource- and the file-name are the same.- Parameters:
name- Name of the file.resourceData- Content of the file.resourceDescription- Description of the file.- Returns:
- The newly create form file.
- Throws:
Exception- When the file could not be created, such as due to a database error.
-
createProjectResource
protected ProjektRessource createProjectResource(@NotNull @NotNull String resourceName, @NotNull @NotNull String fileName, @NotNull @javax.validation.constraints.NotNull byte[] resourceData, @NotNull @NotNull String resourceDescription) throws Exception
- Throws:
Exception
-
createProjectResource
protected ProjektRessource createProjectResource(String name, @NotNull @NotNull String resourceData, @NotNull @NotNull String resourceDescription) throws Exception
Creates a project resource where the resource- and the file-name are the same.- Parameters:
name- Name of the file.resourceData- Content of the file.resourceDescription- Description of the file.- Returns:
- The newly create form file.
- Throws:
Exception- When the file could not be created, such as due to a database error.
-
createSleepNode
protected WorkflowNode createSleepNode(int sleepTimeMillis) throws FastJsonException
- Throws:
FastJsonException
-
createTextFile
protected Path createTextFile(String fileName, String content) throws IOException
- Throws:
IOException
-
formElement
protected FormElement formElement(String name)
-
getAttachmentContentData
protected byte[] getAttachmentContentData(Attachment attachment)
-
getAttachmentContentString
protected String getAttachmentContentString(Attachment attachment)
-
getFormRecordAttachment
protected Attachment getFormRecordAttachment(EAttachmentSource source)
-
getFormRecordAttachment
protected Attachment getFormRecordAttachment(EAttachmentSource source, Predicate<String> nameFilter)
-
getFormRecordAttachmentContentString
protected String getFormRecordAttachmentContentString(EAttachmentSource source)
-
getFormRecordAttachments
protected List<Attachment> getFormRecordAttachments(EAttachmentSource source)
-
getFormRecordAttachments
protected List<Attachment> getFormRecordAttachments(EAttachmentSource source, Predicate<String> nameFilter)
-
getProcessingProtcolEntriesByType
protected List<ProtocolEntryProcessing> getProcessingProtcolEntriesByType(Vorgang formRecord, EProtocolEntryProcessType... types)
-
getSuccessValueAs
protected <T> T getSuccessValueAs(IEventExecutionResult result, AWorkflowElement<?,?> element, Class<T> expectedType)
-
binaryResource
protected byte[] binaryResource(String resourcePath)
-
readFile
protected String readFile(File file) throws IOException
- Throws:
IOException
-
readBinaryFile
protected byte[] readBinaryFile(File file) throws IOException
- Throws:
IOException
-
readBinaryFile
protected byte[] readBinaryFile(Path file) throws IOException
- Throws:
IOException
-
reloadFormRecord
protected void reloadFormRecord()
-
reloadProcess
protected void reloadProcess()
-
reloadProject
protected void reloadProject()
-
saveAndReloadFormRecord
protected void saveAndReloadFormRecord()
-
saveAndReloadProcess
protected void saveAndReloadProcess()
-
saveAndReloadProject
protected void saveAndReloadProject()
-
createTempDir
@BeforeEach protected void createTempDir() throws IOException- Throws:
IOException
-
deleteTempDir
@AfterEach protected void deleteTempDir()
-
setupProcess
protected abstract void setupProcess()
-
toJsonObject
protected com.alibaba.fastjson.JSONObject toJsonObject(Object data)
-
updateClientLicense
protected void updateClientLicense(String licenseKey, String pathToLicenseFile) throws IOException
- Throws:
IOException
-
updateParams
protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>,TData> void updateParams(AWorkflowElement<TElement,TSearchTerm> element, Class<TData> type, Consumer<TData> updater)
-
updateParams
protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>> void updateParams(AWorkflowElement<TElement,TSearchTerm> element, Consumer<Object> updater)
-
updateParams
protected <TElement extends IWorkflowElementEntity,TSearchTerm extends AWorkflowElementSearchTerm<TElement>,TData> void updateParams(AWorkflowElement<TElement,TSearchTerm> element, IElementHandler<TData,TElement> handler, Consumer<TData> updater)
-
uploadElement
protected FormElement uploadElement(String name)
-
waitUntilFormRecordLocked
protected AutoCloseable waitUntilFormRecordLocked()
-
waitUntilFormRecordLocked
protected AutoCloseable waitUntilFormRecordLocked(int timeoutSeconds)
-
waitUntilFormRecordLocked
protected AutoCloseable waitUntilFormRecordLocked(long formRecordId)
-
waitUntilFormRecordLocked
protected AutoCloseable waitUntilFormRecordLocked(long formRecordId, int timeoutSeconds)
-
waitUntilFormRecordUnlocked
protected void waitUntilFormRecordUnlocked()
-
waitUntilFormRecordUnlocked
protected void waitUntilFormRecordUnlocked(int timeoutSeconds)
-
waitUntilFormRecordUnlocked
protected void waitUntilFormRecordUnlocked(long formRecordId)
-
waitUntilFormRecordUnlocked
protected void waitUntilFormRecordUnlocked(long formRecordId, int timeoutSeconds)
-
cleanupAfterEach
protected void cleanupAfterEach(AutoCloseable cleanupAction)
-
cleanupAfterAll
protected static void cleanupAfterAll(AutoCloseable cleanupAction)
-
nodeKey
protected static NodeKey nodeKey(WorkflowTrigger trigger, WorkflowNode node)
-
registerQueryListener
protected <T extends de.xima.cmn.dao.interfaces.IEntity<?>,E extends de.xima.cmn.dao.interfaces.IBaseEntityContext> void registerQueryListener(de.xima.cmn.dao.interfaces.IAbstractDao<T,?,E> dao, de.xima.cmn.dao.enums.EDaoAction action, de.xima.cmn.dao.enums.EDaoActionState state, de.xima.cmn.dao.interfaces.IDaoActionListener<T,E> listener)
-
runGenericAfterEachCleanupActions
@AfterEach protected void runGenericAfterEachCleanupActions() throws Exception- Throws:
Exception
-
-