diff --git a/GerbilManager.Tests/ImportDocxServiceTests.cs b/GerbilManager.Tests/ImportDocxServiceTests.cs
new file mode 100644
index 0000000..2959b43
--- /dev/null
+++ b/GerbilManager.Tests/ImportDocxServiceTests.cs
@@ -0,0 +1,230 @@
+using GerbilManagerWebAPI.Import;
+using GerbilManagerWebAPI.Models;
+using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+
+namespace GerbilManager.Tests
+{
+ ///
+ /// FEAT-8d-CREATE: docx importer CREATE path tests.
+ /// Uses SQLite (not InMemory) so FK constraints are enforced.
+ ///
+ public class ImportDocxServiceTests : IDisposable
+ {
+ private readonly string _dir;
+
+ public ImportDocxServiceTests()
+ {
+ _dir = Path.Combine(Path.GetTempPath(), "feat8d-" + Guid.NewGuid().ToString("N"));
+ Directory.CreateDirectory(_dir);
+ }
+
+ public void Dispose()
+ {
+ try { Directory.Delete(_dir, recursive: true); } catch { }
+ }
+
+ // One open connection keeps the :memory: SQLite DB alive across calls.
+ private (ApplicationContext db, SqliteConnection conn) NewSqliteDb()
+ {
+ var conn = new SqliteConnection("DataSource=:memory:");
+ conn.Open();
+ var opts = new DbContextOptionsBuilder().UseSqlite(conn).Options;
+ var db = new ApplicationContext(opts);
+ db.Database.EnsureCreated();
+ return (db, conn);
+ }
+
+ private void WriteLitters(object litters) =>
+ File.WriteAllText(Path.Combine(_dir, "docx_litters.json"),
+ System.Text.Json.JsonSerializer.Serialize(litters));
+
+ private void WriteAnimals(object animals) =>
+ File.WriteAllText(Path.Combine(_dir, "docx_animals.json"),
+ System.Text.Json.JsonSerializer.Serialize(animals));
+
+ // ── Test 1: dry-run shows correct counts without writing ─────────────────
+
+ [Fact]
+ public async Task DryRun_counts_new_animal_without_writing()
+ {
+ var (db, conn) = NewSqliteDb();
+ await using (conn)
+ await using (db)
+ {
+ // Litter in DB with PairingCode matching the docx WS-code
+ var litter = new Litter
+ {
+ Id = Guid.NewGuid(),
+ Name = "Testwurf WS1",
+ Date = new DateOnly(2023, 5, 1),
+ PairingCode = "WS1"
+ };
+ db.Litters.Add(litter);
+ await db.SaveChangesAsync();
+
+ WriteLitters(Array.Empty