/
afanasevn
/
PdfEncoder
Обзор
Документация
Войти
/
afanasevn
/
PdfEncoder
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/PdfEncoder.UnitTests/Pdf/PdfInputValidatorTests.cs
62 строки
2 KB
IBS\NAfanasev
DocumentContext local functional
01 июл 2026, 15:30
01 июл 2026, 15:30
b4038c9
Код
Авторство
О чём код?
using Microsoft.Extensions.Options; using PdfEncoder.Application.Options; using PdfEncoder.Domain.Errors; using PdfEncoder.Infrastructure.Pdf; using PdfEncoder.UnitTests.Fixtures; namespace PdfEncoder.UnitTests.Pdf; public sealed class PdfInputValidatorTests { [Fact] public async Task ValidateAsync_ПустойФайл_БросаетPdfValidationException() { var validator = CreateValidator(); var exception = await Assert.ThrowsAsync<PdfValidationException>(() => validator.ValidateAsync(ReadOnlyMemory<byte>.Empty, "empty.pdf", CancellationToken.None)); Assert.Equal("invalid-file", exception.ErrorCode); Assert.Equal(400, exception.StatusCode); } [Fact] public async Task ValidateAsync_НевалидныйMagic_БросаетPdfValidationException() { var validator = CreateValidator(); var exception = await Assert.ThrowsAsync<PdfValidationException>(() => validator.ValidateAsync(PdfTestFixtures.InvalidFile, "bad.pdf", CancellationToken.None)); Assert.Equal("invalid-file", exception.ErrorCode); } [Fact] public async Task ValidateAsync_ВалидныйPdf_ВозвращаетЧислоСтраниц() { var validator = CreateValidator(); var pageCount = await validator.ValidateAsync( PdfTestFixtures.TextBasedPdf, "sample.pdf", CancellationToken.None); Assert.Equal(1, pageCount); } [Fact] public async Task ValidateAsync_ПревышенЛимитСтраниц_БросаетPdfValidationException() { var validator = CreateValidator(new UploadOptions { MaxPages = 0, MaxFileSizeBytes = 20 * 1024 * 1024 }); var exception = await Assert.ThrowsAsync<PdfValidationException>(() => validator.ValidateAsync(PdfTestFixtures.TextBasedPdf, "sample.pdf", CancellationToken.None)); Assert.Equal("too-many-pages", exception.ErrorCode); } private static PdfInputValidator CreateValidator(UploadOptions? options = null) { return new PdfInputValidator(Options.Create(options ?? new UploadOptions())); } }