EN · DE · RU · FR · ES

#1869: CardDavFilterTest.kt (capa web)

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt Prueba unitaria — paquete org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt 59 líneas · 30 código · 22 comentarios · 7 en blanco
Prueba de capa web para CardDavFilter.handledByCardDavFilter() — la lógica de decisión del filtro servlet. Más compacta que la prueba de capa de dominio CardDavFilterTest (#1861), centrándose en URIs well-known, métodos DAV y casos negativos. Verifica que solo OPTIONS/PROPFIND/REPORT en rutas conocidas sean interceptados, mientras que las solicitudes GET y rutas desconocidas pasan sin intercepción.

Arquitectura

Esta es una segunda prueba CardDavFilterTest, ubicada en el paquete org.projectforge.web (capa web). Prueba el mismo método estático CardDavFilter.handledByCardDavFilter() pero con un enfoque diferente: aspectos de enrutamiento de capa web y el punto de descubrimiento .well-known.

Importaciones

Estructura de la prueba

A diferencia de la lista plana de casos de prueba de #1861, esta prueba organiza las aserciones usando una jerarquía de métodos auxiliares:

Cobertura de la prueba

PruebaURIMétodoEsperadoFundamento
Descubrimiento well-known/.well-known/carddavPROPFINDtrueDescubrimiento de servicio RFC 6764 — los clientes sondean esta ruta primero
Usuarios CardDAV/carddav/users/PROPFINDtrueRuta estándar de colección de usuarios CardDAV
Aplicación Wicket/wa/...PROPFINDfalseRuta de aplicación Wicket — NO debe ser interceptada
GET genérico....GETfalseGET en ruta desconocida — no es CardDAV
GET usuarios/usersGETfalseGET sin cabeceras DAV en ruta de usuarios — probablemente solicitud de aplicación web
Verificación método: genérico....OPTIONS/PROPFIND/REPORTfalseMétodos DAV en URIs desconocidas pasan sin intercepción
Verificación método: usersusersOPTIONS/PROPFIND/REPORTtrueMétodos DAV en ruta "users" son interceptados
Verificación método: carddav/carddav/users/OPTIONS/PROPFIND/REPORTtrueRuta CardDAV completa con métodos DAV

Diferencias clave con #1861 (Prueba de capa de dominio)

Aspecto#1861 (dominio)#1869 (web)
Paqueteorg.projectforge.carddavorg.projectforge.web
URI well-knownPrueba OPTIONS + GETPrueba solo PROPFIND
Ruta WicketNo probadoPrueba /wa/... (aplicación Wicket)
Iteración de métodosVerificaciones en líneacheckMethod() parametrizado con arrayOf().forEach
Patrones VCFPrueba detallada de nombres de archivo VCFNo cubierto
Método REPORTNo probadoProbado (REPORT en rutas users/carddav)
Ambas pruebas (#1861 y #1869) prueban la misma función (CardDavFilter.handledByCardDavFilter()) pero desde diferentes contextos de paquete y con diferente cobertura. Esto representa duplicación de pruebas probablemente resultante de flujos de desarrollo paralelos que no fueron completamente consolidados. La prueba de capa de dominio (#1861) es más completa para patrones VCF; la prueba de capa web (#1869) añade exclusión de ruta Wicket y verificación del método REPORT.

Patrón de simulación

Mismo patrón que #1861: crea Mockito.mock(HttpServletRequest::class.java), simula method y requestURI, verifica el valor booleano de retorno.

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
40e554cbe WIP: Carddav
2ad0cfe66 WIP: Carddav
ad8b47d1f WIP: CardDavWIP: CardDav
7f2c255ae WIP: CardDav