Refactor: Standardize method names across clients
Renamed methods across multiple client classes for consistency, shortening and aligning naming conventions (e.g., `CheckAttachmentsAsync` → `CheckAsync`, `ValidatePdfAsync` → `ValidateAsync`). Updated corresponding interfaces, unit tests, and documentation to reflect the new method names. Standardized method signatures to support both `Stream` and `byte[]` overloads consistently. Improved error handling in tests and updated examples in the README for batch processing and validation scenarios. Enhanced API endpoint overview for clarity.
This commit is contained in:
@@ -28,15 +28,15 @@ public class PdfValidationClientTests
|
||||
|
||||
private static byte[] FakePdfBytes() => "fake-pdf"u8.ToArray();
|
||||
|
||||
// ── ValidatePdfAsync (Stream) ────────────────────────────────────────────
|
||||
// ── ValidateAsync (Stream) ────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Stream_SendsMultipartPost()
|
||||
public async Task ValidateAsync_Stream_SendsMultipartPost()
|
||||
{
|
||||
var expected = new PdfValidationResult(PageCount: 3, FileSizeBytes: 2048, FileSizeMB: 0, PdfVersion: "1.7", HasAttachments: false, AttachmentCount: 0, IsEncrypted: false);
|
||||
var (client, handler) = Build(expected);
|
||||
|
||||
var result = await client.ValidatePdfAsync(new MemoryStream(FakePdfBytes()));
|
||||
var result = await client.ValidateAsync(new MemoryStream(FakePdfBytes()));
|
||||
|
||||
result.PageCount.Should().Be(3);
|
||||
result.PdfVersion.Should().Be("1.7");
|
||||
@@ -48,52 +48,52 @@ public class PdfValidationClientTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Stream_EncryptedPdf_DeserializesIsEncryptedTrue()
|
||||
public async Task ValidateAsync_Stream_EncryptedPdf_DeserializesIsEncryptedTrue()
|
||||
{
|
||||
var expected = new PdfValidationResult(PageCount: 1, FileSizeBytes: 0, FileSizeMB: 0, PdfVersion: "1.6", HasAttachments: false, AttachmentCount: 0, IsEncrypted: true);
|
||||
var (client, _) = Build(expected);
|
||||
|
||||
var result = await client.ValidatePdfAsync(new MemoryStream(FakePdfBytes()));
|
||||
var result = await client.ValidateAsync(new MemoryStream(FakePdfBytes()));
|
||||
|
||||
result.IsEncrypted.Should().BeTrue("encrypted PDFs should surface IsEncrypted=true");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Stream_ThrowsWhenApiReturnsNull()
|
||||
public async Task ValidateAsync_Stream_ThrowsWhenApiReturnsNull()
|
||||
{
|
||||
var handler = MockHttpMessageHandler.ReturningJson<PdfValidationResult?>(null);
|
||||
var httpClient = new HttpClient(handler) { BaseAddress = new Uri("http://localhost") };
|
||||
var client = new PdfValidationClient(httpClient, NullLogger<PdfValidationClient>.Instance);
|
||||
|
||||
await client.Invoking(c => c.ValidatePdfAsync(new MemoryStream(FakePdfBytes())))
|
||||
await client.Invoking(c => c.ValidateAsync(new MemoryStream(FakePdfBytes())))
|
||||
.Should().ThrowAsync<InvalidOperationException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Stream_WhenApiReturns400_ThrowsHttpRequestException()
|
||||
public async Task ValidateAsync_Stream_WhenApiReturns400_ThrowsHttpRequestException()
|
||||
{
|
||||
var (client, _) = BuildError(HttpStatusCode.BadRequest);
|
||||
await client.Invoking(c => c.ValidatePdfAsync(new MemoryStream(FakePdfBytes())))
|
||||
await client.Invoking(c => c.ValidateAsync(new MemoryStream(FakePdfBytes())))
|
||||
.Should().ThrowAsync<HttpRequestException>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Stream_WhenApiReturns500_ThrowsHttpRequestException()
|
||||
public async Task ValidateAsync_Stream_WhenApiReturns500_ThrowsHttpRequestException()
|
||||
{
|
||||
var (client, _) = BuildError(HttpStatusCode.InternalServerError);
|
||||
await client.Invoking(c => c.ValidatePdfAsync(new MemoryStream(FakePdfBytes())))
|
||||
await client.Invoking(c => c.ValidateAsync(new MemoryStream(FakePdfBytes())))
|
||||
.Should().ThrowAsync<HttpRequestException>();
|
||||
}
|
||||
|
||||
// ── ValidatePdfAsync (byte[]) ────────────────────────────────────────────
|
||||
// ── ValidateAsync (byte[]) ────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Bytes_SendsJsonWithBase64()
|
||||
public async Task ValidateAsync_Bytes_SendsJsonWithBase64()
|
||||
{
|
||||
var expected = new PdfValidationResult(PageCount: 1, FileSizeBytes: 0, FileSizeMB: 0, PdfVersion: "", HasAttachments: true, AttachmentCount: 2, IsEncrypted: false);
|
||||
var (client, handler) = Build(expected);
|
||||
|
||||
var result = await client.ValidatePdfAsync(FakePdfBytes());
|
||||
var result = await client.ValidateAsync(FakePdfBytes());
|
||||
|
||||
result.PageCount.Should().Be(1);
|
||||
result.HasAttachments.Should().BeTrue();
|
||||
@@ -105,10 +105,10 @@ public class PdfValidationClientTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ValidatePdfAsync_Bytes_WhenApiReturns400_ThrowsHttpRequestException()
|
||||
public async Task ValidateAsync_Bytes_WhenApiReturns400_ThrowsHttpRequestException()
|
||||
{
|
||||
var (client, _) = BuildError(HttpStatusCode.BadRequest);
|
||||
await client.Invoking(c => c.ValidatePdfAsync(FakePdfBytes()))
|
||||
await client.Invoking(c => c.ValidateAsync(FakePdfBytes()))
|
||||
.Should().ThrowAsync<HttpRequestException>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user