EN · DE · RU · FR · ES

#1868 : CardDavControllerTest.kt

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt Test unitaire — package org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt 61 lignes · 34 code · 24 commentaires · 3 vides
Teste les utilitaires de génération de réponses XML pour le contrôleur CardDAV, en particulier CardDavXmlUtils.appendMultiStatusStart() et appendMultiStatusEnd() — les constructeurs d'enveloppe XML pour les réponses multistatus WebDAV. Situé dans le package org.projectforge.web (tests de la couche web), faisant référence aux utilitaires carddav de la couche domaine.

Architecture

Ce test réside dans le package org.projectforge.web — la couche Wicket/web — et teste les utilitaires de génération XML importés depuis org.projectforge.carddav. Cela représente un test inter-couches : le contrôleur web utilise les utilitaires du domaine CardDAV pour générer des réponses XML destinées aux clients HTTP.

Imports

Méthodes testées

1. appendMultiStatusStart(sb, withXmlDeclaration=true)

Ajoute l'ouverture d'un document XML multistatus WebDAV à un StringBuilder. Avec withXmlDeclaration=true (par défaut), produit :

<?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/">

Sans déclaration (false) : omet la ligne de déclaration XML — utile lorsque le multistatus fait partie d'un document XML plus grand ou lorsque la déclaration est gérée ailleurs.

2. appendMultiStatusEnd(sb)

Ajoute la balise fermante </d:multistatus>. Extrêmement simple mais testé pour la complétude et la stabilité de l'API.

Déclarations d'espaces de noms

PréfixeURIStandard
dDAV:RFC 4918 (WebDAV core)
cardurn:ietf:params:xml:ns:carddavRFC 6352 (CardDAV)
cshttp://calendarserver.org/ns/Extensions Apple CalendarServer
mehttp://me.com/_namespace/Espace de noms personnalisé Micromata

Code commenté

Le test contient du code commenté qui testerait CardDavXmlWriter.appendPropfindContact() — une méthode pour générer des entrées de réponse PROPFIND pour des contacts individuels. Cela suggère que la génération de réponse PROPFIND pour les contacts était encore en développement ou en attente lors de la rédaction de ce test. Les objets User("kai") et Contact(42L, "Kai", "Reinhard", Date(1234567890)) sont construits mais l'assertion est commentée.

L'assertion commentée //Assertions.assertEquals(response, sb.toString()) fait référence à une variable response non définie — ce test est incomplet et représente un instantané d'un travail en cours, conservé pour sa valeur documentaire.

Dépendance inter-couches

L'emplacement dans projectforge-carddav/src/test/kotlin/org/projectforge/web/ avec le package org.projectforge.web est notable — il teste l'utilisation par la couche web des utilitaires CardDAV de la couche domaine. Le répertoire de test reflète la structure des packages de production, indiquant que le contrôleur web était testé séparément de la logique domaine.

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers sources : 2024 -> 2025.
0d7a81f91 WIP : Carddav
744d238de WIP : Carddav
c4062ed97 WIP : Carddav
2ad0cfe66 WIP : Carddav
b5d8f83c1 WIP : Carddav
953455ae5 WIP : Carddav