# ED-01-004 – Tests

## Status

Draft v0.1

## Übergeordnetes Arbeitspaket

[ED-01 – Context Mapping](ED-01_Context_Mapping.md)

## Vorgänger

- ED-01-001 – Domain Model
- ED-01-002 – Transport Mapping
- ED-01-003 – Application Integration

## Ziel

Dieses Dokument beschreibt den Nachweis, dass das Arbeitspaket **ED-01 – Context Mapping** vollständig und korrekt umgesetzt wurde.

Die Tests prüfen sowohl die einzelnen Schichten als auch den vollständigen Verarbeitungsfluss vom OpenRefine-Request bis zum aufgebauten `SourceValue`.

## Teststrategie

### Domain

Prüfung der Domain-Invarianten von `ContextItem` und `SourceValue`.

### Transport

Prüfung des Mappings des OpenRefine-`properties`-Arrays.

### Application

Prüfung der Erzeugung und Zuordnung der `ContextItem`-Objekte.

### End-to-End

Durchgängige Verarbeitung vom Request bis zum Domain Model.

## Testfälle

### T001 – Request ohne Context

**Erwartung**

- Request wird wie bisher verarbeitet.
- `contextItems` ist leer.
- Bestehendes Verhalten bleibt unverändert.

---

### T002 – TEI Context

**Eingabe**

- Ein `TEI Context`.

**Erwartung**

- Ein `ContextItem`.
- `contextTypeUri` und `value` werden unverändert übernommen.

---

### T003 – Mehrere ContextItems

**Eingabe**

- Parent Place
- Geographic Coordinates
- Text Context

**Erwartung**

- Drei `ContextItem`-Objekte.
- Reihenfolge bleibt erhalten.
- Alle gehören zum gleichen `SourceValue`.

---

### T004 – DatenXML Context

**Eingabe**

- `DatenXML Context`

**Erwartung**

- XML wird unverändert übernommen.
- Keine Interpretation oder Transformation.

---

### T005 – Text Context

**Eingabe**

- Freitext (z. B. LLM-Zusammenfassung oder redaktionelle Anmerkung)

**Erwartung**

- Text wird unverändert übernommen.

---

### T006 – Ungültiges Property

**Eingabe**

- fehlendes `pid`
- oder fehlendes `v`

**Erwartung**

- Verhalten entspricht der bestehenden Validierungsstrategie des `OpenRefineRequestMapper`.
- Keine neue Fehlerstrategie wird eingeführt.

---

### T007 – Rückwärtskompatibilität

**Erwartung**

- Alle bisherigen Requests ohne Context funktionieren unverändert.
- Alle bestehenden Tests bleiben erfolgreich.

## Abnahmekriterien

ED-01 gilt als erfolgreich abgeschlossen, wenn:

- alle Testfälle T001–T007 erfolgreich sind,
- der vollständige Transportpfad vom OpenRefine-Request bis zum `SourceValue` funktioniert,
- Context-Daten vollständig im Domain Model verfügbar sind,
- keine Persistierung erfolgt,
- Candidate Discovery unverändert bleibt,
- alle bestehenden Tests weiterhin erfolgreich sind.

## Nachfolger

ED-02 – Context Persistence
