#118: DataTransferNotificationMailTest.kt

plugins/org.projectforge.plugins.datatransfer/src/test/kotlin/org/projectforge/plugins/datatransfer/DataTransferNotificationMailTest.kt Path: plugins/...datatransfer/src/test/kotlin/.../DataTransferNotificationMailTest.kt · Lines: 205 · Type: Kotlin JUnit 5 integration test 205 lines · 171 code · 22 comments · 12 blank

End-to-end integration test for the observer notification mail system — exercises the full pipeline: create area with observers → upload files → run notification job → verify email content. The largest DataTransfer test at 205 lines. Uses Spring autowiring, JCR test repo, and Groovy mail template rendering.

Test flow

  1. Creates two test users (user1 = area admin, user2 = observer)
  2. Creates a data transfer area with user2 as observer (observerIds) and user2.userWantsToObserve = true
  3. user1 uploads several files, triggering audit entries
  4. user1 renames a file — verifies filename_old is preserved in audit
  5. user1 deletes a file — verifies delete event recorded
  6. Runs DataTransferNotificationJob which:
    • Queries audit entries with notified=false
    • Renders dataTransferMail.html Freemarker template with audit data
    • Uses DomainService to generate the area link URL
    • Marks entries as notified=true
  7. Verifies mail content: checks that message (i18n string from plugin i18n), audit table (columns: Date, File name, Description, Action, User), download events table, and link button are all present

Mail content assertions

Dependencies