From 2d34afb2e5abd266fd32856db551806bd7d4cb17 Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Wed, 15 Apr 2026 08:46:17 +0200 Subject: [PATCH] test(installer): scaffold ClaudeDo.Installer.Tests project --- ClaudeDo.slnx | 1 + .../ClaudeDo.Installer.Tests.csproj | 28 +++++++++++++++++++ .../FakeHttpMessageHandler.cs | 27 ++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 tests/ClaudeDo.Installer.Tests/ClaudeDo.Installer.Tests.csproj create mode 100644 tests/ClaudeDo.Installer.Tests/FakeHttpMessageHandler.cs diff --git a/ClaudeDo.slnx b/ClaudeDo.slnx index 4fbdd50..178690d 100644 --- a/ClaudeDo.slnx +++ b/ClaudeDo.slnx @@ -9,5 +9,6 @@ + diff --git a/tests/ClaudeDo.Installer.Tests/ClaudeDo.Installer.Tests.csproj b/tests/ClaudeDo.Installer.Tests/ClaudeDo.Installer.Tests.csproj new file mode 100644 index 0000000..5db6af4 --- /dev/null +++ b/tests/ClaudeDo.Installer.Tests/ClaudeDo.Installer.Tests.csproj @@ -0,0 +1,28 @@ + + + + net8.0-windows + true + enable + enable + + false + true + + + + + + + + + + + + + + + + + + diff --git a/tests/ClaudeDo.Installer.Tests/FakeHttpMessageHandler.cs b/tests/ClaudeDo.Installer.Tests/FakeHttpMessageHandler.cs new file mode 100644 index 0000000..00f009c --- /dev/null +++ b/tests/ClaudeDo.Installer.Tests/FakeHttpMessageHandler.cs @@ -0,0 +1,27 @@ +using System.Net; +using System.Net.Http; + +namespace ClaudeDo.Installer.Tests; + +internal sealed class FakeHttpMessageHandler : HttpMessageHandler +{ + private readonly Func _handler; + + public FakeHttpMessageHandler(Func handler) + { + _handler = handler; + } + + public FakeHttpMessageHandler(HttpStatusCode status, string body) + : this(_ => new HttpResponseMessage(status) { Content = new StringContent(body) }) + { + } + + public List Requests { get; } = new(); + + protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + Requests.Add(request); + return Task.FromResult(_handler(request)); + } +}