Testfundament aufbauen und Bestandsaufnahme dokumentieren

IChatCompletionClient aus OpenRouterClient extrahiert, damit AgentEngine und
ContextCompactor ohne echte API-Aufrufe testbar sind.

Neues Testprojekt tests/ClawdDotNet.Core.Tests (xUnit, Shouldly, NSubstitute,
FsCheck) mit:
- FakeChatClient (programmierbare Antwortfolgen, Deep-Copy der Requests)
- ContextInvariants (prueft die API-Regeln fuer tool_call-Paarung)
- Conversation-Builder fuer gueltige Testkonversationen
- 26 Tests: Compaction, LoopGuard, 2 Property-Tests

10 Tests sind bewusst rot — sie reproduzieren die Bugs B1, B3 und B14 aus der
Bestandsaufnahme und werden mit den Fixes gruen.

Ausserdem: fehlende Tool-Projekte in slnx ergaenzt, Test-Pakete im
packageSourceMapping der NuGet.Config eingetragen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-27 10:07:54 +02:00
co-authored by Claude Opus 4.8
parent 92e50d3ac4
commit 667cecce25
17 changed files with 1887 additions and 5 deletions
+11
View File
@@ -26,6 +26,17 @@
<package pattern="FluentFTP" />
<package pattern="SQLitePCLRaw.*" />
<package pattern="WTelegramClient" />
<!-- Test-Pakete -->
<package pattern="xunit" />
<package pattern="xunit.*" />
<package pattern="Shouldly" />
<package pattern="NSubstitute" />
<package pattern="Castle.Core" />
<package pattern="FsCheck" />
<package pattern="FsCheck.*" />
<package pattern="FSharp.Core" />
<package pattern="DiffEngine" />
<package pattern="EmptyFiles" />
</packageSource>
</packageSourceMapping>
</configuration>