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 Details

  • Constructor Details

    • AWorkflowEngineTest

      public AWorkflowEngineTest()
  • Method Details

    • ec

      public IEntityContext ec()
      Specified by:
      ec in interface DaoCrudMixin
      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)
    • plainTextResource

      protected String plainTextResource(String resourcePath)
    • plainTextResource

      protected String plainTextResource(String resourcePath, Charset charset)
    • 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
    • readFormRecord

      protected Vorgang readFormRecord(Long id)
    • 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()
    • setupEntities

      @BeforeEach protected void setupEntities() throws Exception
      Throws:
      Exception
    • 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
    • runGenericAfterAllCleanupActions

      @AfterAll protected static void runGenericAfterAllCleanupActions() throws Exception
      Throws:
      Exception