feat(Extensions): add PDF generation support for EnvelopeGenerator tests
- Introduced QuestPDF dependency to generate PDF documents in tests. - Added `CreatePdfAsBase64` extension method for generating random PDF content. - Added `CreateDocumentCommand` and `CreateDocumentCommands` helpers for creating document test data. - Refactored using statements and added `EnvelopeGenerator.Application.EnvelopeReceivers.Commands`. - Maintains existing sample user and receiver setup for integration testing.
This commit is contained in:
parent
9cf776fa98
commit
145a2ebe8f
@ -12,6 +12,7 @@
|
|||||||
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.3.1" />
|
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.3.1" />
|
||||||
<PackageReference Include="DigitalData.Core.Infrastructure.AutoMapper" Version="1.0.3" />
|
<PackageReference Include="DigitalData.Core.Infrastructure.AutoMapper" Version="1.0.3" />
|
||||||
<PackageReference Include="DigitalData.EmailProfilerDispatcher" Version="3.1.1" />
|
<PackageReference Include="DigitalData.EmailProfilerDispatcher" Version="3.1.1" />
|
||||||
|
<PackageReference Include="QuestPDF" Version="2025.7.1" />
|
||||||
<PackageReference Include="UserManager" Version="1.1.3" />
|
<PackageReference Include="UserManager" Version="1.1.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
using DigitalData.Core.Abstraction.Application.Repository;
|
using DigitalData.Core.Abstraction.Application.Repository;
|
||||||
using DigitalData.UserManager.Domain.Entities;
|
using DigitalData.UserManager.Domain.Entities;
|
||||||
using EnvelopeGenerator.Application;
|
using EnvelopeGenerator.Application;
|
||||||
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
|
||||||
using EnvelopeGenerator.Application.Envelopes.Commands;
|
using EnvelopeGenerator.Application.Envelopes.Commands;
|
||||||
using EnvelopeGenerator.Application.Receivers.Commands;
|
using EnvelopeGenerator.Application.Receivers.Commands;
|
||||||
using EnvelopeGenerator.Application.Users.Commands;
|
using EnvelopeGenerator.Application.Users.Commands;
|
||||||
@ -11,6 +12,8 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using QuestPDF.Fluent;
|
||||||
|
using QuestPDF.Infrastructure;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Tests.Application;
|
namespace EnvelopeGenerator.Tests.Application;
|
||||||
|
|
||||||
@ -151,6 +154,45 @@ public static class Extensions
|
|||||||
.ToList();
|
.ToList();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Envelope Document
|
||||||
|
public static string CreatePdfAsBase64(this Faker faker)
|
||||||
|
{
|
||||||
|
string name = faker.Name.FullName();
|
||||||
|
string address = faker.Address.FullAddress();
|
||||||
|
string lorem = faker.Lorem.Paragraphs(2);
|
||||||
|
|
||||||
|
QuestPDF.Settings.License = LicenseType.Community;
|
||||||
|
var document = Document.Create(container =>
|
||||||
|
{
|
||||||
|
container.Page(page =>
|
||||||
|
{
|
||||||
|
page.Margin(50);
|
||||||
|
page.Header().Text("Random PDF").FontSize(20).Bold();
|
||||||
|
page.Content().Column(col =>
|
||||||
|
{
|
||||||
|
col.Item().Text($"Vor- und Nachname: {name}");
|
||||||
|
col.Item().Text($"Adresse: {address}");
|
||||||
|
col.Item().Text(lorem);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
using var ms = new MemoryStream();
|
||||||
|
document.GeneratePdf(ms);
|
||||||
|
return Convert.ToBase64String(ms.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DocumentCreateCommand CreateDocumentCommand(this Faker faker) => new()
|
||||||
|
{
|
||||||
|
DataAsBase64 = faker.CreatePdfAsBase64()
|
||||||
|
};
|
||||||
|
|
||||||
|
public static List<DocumentCreateCommand> CreateDocumentCommands(this Faker fake, int minCount = 10, int maxCount = 20)
|
||||||
|
=> Enumerable.Range(0, fake.Random.Number(minCount, maxCount))
|
||||||
|
.Select(_ => fake.CreateDocumentCommand())
|
||||||
|
.ToList();
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region User Command
|
#region User Command
|
||||||
public static CreateUserCommand CreateUserCommand(this Faker fake) => new()
|
public static CreateUserCommand CreateUserCommand(this Faker fake) => new()
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user