EN · DE · RU · FR · ES

#1868: CardDavControllerTest.kt

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt Prueba unitaria — paquete org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavControllerTest.kt 61 líneas · 34 código · 24 comentarios · 3 en blanco
Prueba las utilidades de generación de respuestas XML para el controlador CardDAV, específicamente CardDavXmlUtils.appendMultiStatusStart() y appendMultiStatusEnd() — los constructores de envoltura XML para respuestas multistatus de WebDAV. Ubicado en el paquete org.projectforge.web (pruebas de la capa web), haciendo referencia a utilidades carddav de la capa de dominio.

Arquitectura

Esta prueba reside en el paquete org.projectforge.web — la capa web/Wicket — y prueba utilidades de generación XML importadas desde org.projectforge.carddav. Esto representa una prueba entre capas: el controlador web utiliza las utilidades de dominio CardDAV para generar respuestas XML para clientes HTTP.

Importaciones

Métodos probados

1. appendMultiStatusStart(sb, withXmlDeclaration=true)

Añade la apertura de un documento XML multistatus de WebDAV a un StringBuilder. Con withXmlDeclaration=true (por defecto), produce:

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

Sin declaración (false): omite la línea de declaración XML — útil cuando el multistatus es parte de un documento XML más grande o cuando la declaración se maneja en otro lugar.

2. appendMultiStatusEnd(sb)

Añade la etiqueta de cierre </d:multistatus>. Extremadamente simple pero probado por completitud y estabilidad de la API.

Declaraciones de espacios de nombres

PrefijoURIEstándar
dDAV:RFC 4918 (WebDAV núcleo)
cardurn:ietf:params:xml:ns:carddavRFC 6352 (CardDAV)
cshttp://calendarserver.org/ns/Extensiones Apple CalendarServer
mehttp://me.com/_namespace/Espacio de nombres personalizado Micromata

Código comentado

La prueba contiene código comentado que probaría CardDavXmlWriter.appendPropfindContact() — un método para generar entradas de respuesta PROPFIND para contactos individuales. Esto sugiere que la generación de respuesta PROPFIND para contactos aún estaba en desarrollo o pendiente cuando se escribió esta prueba. Los objetos User("kai") y Contact(42L, "Kai", "Reinhard", Date(1234567890)) están construidos pero la aserción está comentada.

La aserción comentada //Assertions.assertEquals(response, sb.toString()) hace referencia a una variable indefinida response — esta prueba está incompleta y representa una instantánea del trabajo en progreso, conservada por su valor documental.

Dependencia entre capas

La ubicación en projectforge-carddav/src/test/kotlin/org/projectforge/web/ con el paquete org.projectforge.web es notable — prueba el uso de la capa web de las utilidades CardDAV de la capa de dominio. El directorio de prueba refleja la estructura de paquetes de producción, lo que indica que el controlador web se estaba probando por separado de la lógica de dominio.

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
0d7a81f91 WIP: Carddav
744d238de WIP: Carddav
c4062ed97 WIP: Carddav
2ad0cfe66 WIP: Carddav
b5d8f83c1 WIP: Carddav
953455ae5 WIP: Carddav