EN · DE · RU · FR · ES

#1868: CardDavControllerTest.kt

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt Unit-Test — Paket org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt 61 Zeilen · 34 Code · 24 Kommentare · 3 leer
Testet Hilfsprogramme zur XML-Antwortgenerierung für den CardDAV-Controller, insbesondere CardDavXmlUtils.appendMultiStatusStart() und appendMultiStatusEnd() — die XML-Envelope-Builder für WebDAV-Multistatus-Antworten. Befindet sich im Paket org.projectforge.web (Tests der Webschicht) und referenziert CardDAV-Hilfsprogramme aus der Domänenschicht.

Architektur

Dieser Test befindet sich im Paket org.projectforge.web — der Wicket/Web-Schicht — und testet XML-Generierungs-Hilfsprogramme, die aus org.projectforge.carddav importiert wurden. Dies stellt einen schichtübergreifenden Test dar: Der Web-Controller verwendet die CardDAV-Domänen-Hilfsprogramme, um XML-Antworten für HTTP-Clients zu generieren.

Importe

Getestete Methoden

1. appendMultiStatusStart(sb, withXmlDeclaration=true)

Fügt den Beginn eines WebDAV multistatus XML-Dokuments an einen StringBuilder an. Mit withXmlDeclaration=true (Standard) erzeugt es:

<?xml version="1.0" encoding="UTF-8"?>
<d:multistatus xmlns:d="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav"
    xmlns:cs="http://calendarserver.org/ns/" xmlns:me="http://me.com/_namespace/">

Ohne Deklaration (false): Lässt die XML-Deklarationszeile weg — nützlich, wenn der Multistatus Teil eines größeren XML-Dokuments ist oder die Deklaration anderweitig behandelt wird.

2. appendMultiStatusEnd(sb)

Fügt das schließende </d:multistatus>-Tag an. Äußerst einfach, aber aus Gründen der Vollständigkeit und API-Stabilität getestet.

Namespace-Deklarationen

PräfixURIStandard
dDAV:RFC 4918 (WebDAV Kern)
cardurn:ietf:params:xml:ns:carddavRFC 6352 (CardDAV)
cshttp://calendarserver.org/ns/Apple CalendarServer Erweiterungen
mehttp://me.com/_namespace/Benutzerdefinierter Micromata-Namespace

Auskommentierter Code

Der Test enthält auskommentierten Code, der CardDavXmlWriter.appendPropfindContact() testen würde — eine Methode zur Generierung von PROPFIND-Antwort-Einträgen für einzelne Kontakte. Dies deutet darauf hin, dass die PROPFIND-Antwortgenerierung für Kontakte zum Zeitpunkt der Erstellung dieses Tests noch in der Entwicklung oder ausstehend war. Die Objekte User("kai") und Contact(42L, "Kai", "Reinhard", Date(1234567890)) werden konstruiert, aber die Assertion ist auskommentiert.

Die auskommentierte Assertion //Assertions.assertEquals(response, sb.toString()) verweist auf eine undefinierte Variable response — dieser Test ist unvollständig und stellt eine Momentaufnahme der laufenden Arbeit dar, die aus Dokumentationsgründen aufbewahrt wird.

Schichtübergreifende Abhängigkeit

Der Speicherort unter projectforge-carddav/src/test/kotlin/org/projectforge/web/ mit dem Paket org.projectforge.web ist bemerkenswert — er testet die Verwendung von CardDAV-Hilfsprogrammen der Domänenschicht durch die Webschicht. Das Testverzeichnis spiegelt die Produktionspaketstruktur wider, was darauf hindeutet, dass der Web-Controller getrennt von der Domänenlogik getestet wurde.

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quelltext-Dateiköpfe: 2024 -> 2025.
0d7a81f91 WIP: Carddav
744d238de WIP: Carddav
c4062ed97 WIP: Carddav
2ad0cfe66 WIP: Carddav
b5d8f83c1 WIP: Carddav
953455ae5 WIP: Carddav