1a0a56a626
Replace the stale multi-module java/mss-failsafe skeleton (old user-management prototype) with the active single-module machine-safety inspection app that was living in its own standalone repo at the repo root. - Remove old java/mss-failsafe/ multi-module tree (mss, userdata, userManagement, mssfailsafe.datalayer, mssfailsafeWeblayer) incl. committed build artifacts - Add the active app (PrimeFaces 11 / JSF 2.3 / Hibernate 5.6 / iText / POI) flattened into java/mss-failsafe/ as the only mss-failsafe in git - Working tree captured = master tip 2a142b5 + in-progress uncommitted work (incl. .github/*.instructions.md AI-context files) - Archive the standalone repo's 33-commit history in GIT_HISTORY_ARCHIVE.md since its .git was not migrated This is the source of truth / base for the upcoming upgraded rewrite.
1.7 KiB
Executable File
1.7 KiB
Executable File
Testing Strategy Instructions
Aktualisiert: 2025-10-20
Ziele
Testabdeckung für kritische Pfade: CRUD, Clone, Fragebogen Zuordnung, Fake-ID Mechanismus.
Testarten
- Unit Tests (reine Logik, z.B. createFakeID, Klon Copy-Konstruktoren).
- Integration Tests (Persistence + Manager Methoden gegen Test-DB). Möglich mit in-memory H2 + angepasster persistence.xml.
- UI/Controller Smoke Tests (Optional, z.B. mit Selenium/Arquillian Graphene).
Prioritäten
- AbstractManager.save / saveAll Edge Cases.
- remove / removeAllIn (Null, nicht persistierte Entities).
- createFakeID Sequenz (-1, -2, -3 ...).
- Fragebogen Add/Remove Workflow (Wrapper Persistenz, Filterliste).
- Klonen tiefer Objektgraph.
Beispiel Unit Test Fälle
- createFakeID(null) => -1.
- createFakeID(leere Liste) => -1.
- createFakeID([id=-1]) => -2.
- createFakeID([id=-3, id=-1]) => -4.
Integration Tests (CRUD)
- Persist neue Entity -> ID != null.
- Merge vorhandene Entity -> unverändert Fachfelder korrekt übernommen.
- saveAll mit gemischten (neue + vorhandene) -> alle persistent.
Fehlerpfade
- save(null) -> false.
- remove(null) -> false.
- remove(entity ohne ID) -> false.
Klon Tests
- Quelle & Klon dürfen nicht gleiche ID haben.
- Child Collections tief kopiert (Referenzen ungleich, Werte gleich).
Tooling Vorschlag
- JUnit 5, Mockito für isolierte Tests von Controller-Hilfsmethoden.
- Testcontainers (Optional später) für realistischere DB.
Generator Leitplanken
- Für neue Fachlogik minimal 1-2 Unit Tests + 1 Integration Test.
- Keine Abhängigkeit auf Produktionspfade in Unit Tests; Test-spezifische Testdaten-Builder.