EN · DE · RU · FR · ES

#1869: CardDavFilterTest.kt (Web-Schicht)

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt Unit-Test — Paket org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt 59 Zeilen · 30 Code · 22 Kommentare · 7 leer
Web-Schicht-Test für CardDavFilter.handledByCardDavFilter() — die Entscheidungslogik des Servlet-Filters. Kompakter als der Domain-Schicht-Test CardDavFilterTest (#1861), mit Fokus auf Well-Known-URIs, DAV-Methoden und Negativfälle. Testet, dass nur OPTIONS/PROPFIND/REPORT auf bekannten Pfaden abgefangen werden, während GET-Anfragen und unbekannte Pfade durchgelassen werden.

Architektur

Dies ist ein zweiter CardDavFilterTest, der sich im Paket org.projectforge.web (Web-Schicht) befindet. Er testet dieselbe statische Methode CardDavFilter.handledByCardDavFilter(), jedoch mit einem anderen Fokus: Routing-Aspekte der Web-Schicht und der .well-known-Discovery-Endpunkt.

Importe

Teststruktur

Im Gegensatz zur flachen Liste von Testfällen in #1861 organisiert dieser Test die Assertions mithilfe einer Hilfsmethoden-Hierarchie:

Testabdeckung

TestURIMethodeErwartetBegründung
Well-Known-Discovery/.well-known/carddavPROPFINDtrueRFC 6764 Service-Discovery — Clients fragen zuerst diesen Pfad ab
CardDAV-Benutzer/carddav/users/PROPFINDtrueStandard-CardDAV-Benutzersammlungspfad
Wicket-App/wa/...PROPFINDfalseWicket-Anwendungspfad — darf NICHT abgefangen werden
Generisches GET....GETfalseGET auf unbekanntem Pfad — kein CardDAV
Benutzer GET/usersGETfalseGET ohne DAV-Header auf Benutzerpfad — wahrscheinlich Web-App-Anfrage
Methodenprüfung: generisch....OPTIONS/PROPFIND/REPORTfalseDAV-Methoden auf unbekannten URIs werden durchgelassen
Methodenprüfung: usersusersOPTIONS/PROPFIND/REPORTtrueDAV-Methoden auf "users"-Pfad werden abgefangen
Methodenprüfung: carddav/carddav/users/OPTIONS/PROPFIND/REPORTtrueVollständiger CardDAV-Pfad mit DAV-Methoden

Wesentliche Unterschiede zu #1861 (Domain-Schicht-Test)

Aspekt#1861 (Domain)#1869 (Web)
Paketorg.projectforge.carddavorg.projectforge.web
Well-Known-URITestet OPTIONS + GETTestet nur PROPFIND
Wicket-PfadNicht getestetTestet /wa/... (Wicket-Anwendung)
MethodeniterationInline-PrüfungenParametrisiertes checkMethod() mit arrayOf().forEach
VCF-MusterDetaillierte VCF-DateinamentestsNicht abgedeckt
REPORT-MethodeNicht getestetGetestet (REPORT auf users/carddav-Pfaden)
Beide Tests (#1861 und #1869) testen die gleiche Funktion (CardDavFilter.handledByCardDavFilter()), jedoch aus unterschiedlichen Paketkontexten und mit unterschiedlicher Abdeckung. Dies stellt eine Testduplizierung dar, die wahrscheinlich aus parallelen Entwicklungsströmen resultiert, die nicht vollständig konsolidiert wurden. Der Domain-Schicht-Test (#1861) ist umfassender für VCF-Muster; der Web-Schicht-Test (#1869) fügt die Wicket-Pfadausnahme und REPORT-Methodenprüfungen hinzu.

Mocking-Muster

Gleiches Muster wie #1861: erstellt Mockito.mock(HttpServletRequest::class.java), stubbed method und requestURI, prüft den booleschen Rückgabewert.

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quellcode-Dateiköpfe: 2024 -> 2025.
40e554cbe WIP: Carddav
2ad0cfe66 WIP: Carddav
ad8b47d1f WIP: CardDavWIP: CardDav
7f2c255ae WIP: CardDav