From 32c05511662764158caa5ef7220e26cabac3d310 Mon Sep 17 00:00:00 2001 From: Dimitrie Tataru Date: Mon, 4 Mar 2024 14:27:02 +0200 Subject: [PATCH] Update code sample --- .../Fakers/FakeDto.cs | 2 +- .../Ace.CSharp.DataFaker.Sample/FakeDto.cs | 38 +++++++++++++++++++ .../Ace.CSharp.DataFaker.Sample/FakeEntity.cs | 2 +- .../Ace.CSharp.DataFaker.Sample/Program.cs | 13 +++++++ 4 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/Ace.CSharp.DataFaker.Tests/Fakers/FakeDto.cs b/src/Ace.CSharp.DataFaker.Tests/Fakers/FakeDto.cs index e2f106c..ba0c59f 100644 --- a/src/Ace.CSharp.DataFaker.Tests/Fakers/FakeDto.cs +++ b/src/Ace.CSharp.DataFaker.Tests/Fakers/FakeDto.cs @@ -2,7 +2,7 @@ namespace Ace.CSharp.DataFaker.Tests.Fakers; -public class FakeDto +public sealed class FakeDto { private const string LocaleCode = "en_US"; diff --git a/src/sample/Ace.CSharp.DataFaker.Sample/FakeDto.cs b/src/sample/Ace.CSharp.DataFaker.Sample/FakeDto.cs index f83977f..5cf1374 100644 --- a/src/sample/Ace.CSharp.DataFaker.Sample/FakeDto.cs +++ b/src/sample/Ace.CSharp.DataFaker.Sample/FakeDto.cs @@ -1,5 +1,43 @@ namespace Ace.CSharp.DataFaker.Sample; +internal sealed class DtoFaker : AbstractDataFaker +{ + protected sealed override string LocaleCode => base.LocaleCode; + protected sealed override int DefaultCount => base.DefaultCount; + protected sealed override DateTime RefDate => base.RefDate; + + private Faker FakeFooDto => + new Faker(locale: LocaleCode) + .RuleFor( + dto => dto.Id, + func => func.Random.Uuid()) + .RuleFor( + dto => dto.Title, + func => func.Lorem.Sentence()) + .RuleFor( + dto => dto.Description, + func => func.Lorem.Sentences()) + .RuleFor( + dto => dto.AvatarUrl, + func => new Uri(func.Internet.Avatar())) + .RuleFor( + dto => dto.Index, + func => func.Random.Int(min: 1, max: int.MaxValue)) + .RuleFor( + dto => dto.Size, + func => func.Random.Decimal(min: 1.0M, max: 10.0M)) + .RuleFor( + dto => dto.CreatedAt, + func => func.Date.PastOffset(yearsToGoBack: 1, RefDate)) + .RuleFor( + dto => dto.ExpiresAt, + func => func.Date.FutureOffset(yearsToGoForward: 1, RefDate)) + .RuleFor( + dto => dto.IsActive, + func => func.Random.Bool()) + .StrictMode(ensureRulesForAllProperties: true); +} + internal sealed class FakeDto { private const string LocaleCode = "en_US"; diff --git a/src/sample/Ace.CSharp.DataFaker.Sample/FakeEntity.cs b/src/sample/Ace.CSharp.DataFaker.Sample/FakeEntity.cs index 55f3f47..89654d9 100644 --- a/src/sample/Ace.CSharp.DataFaker.Sample/FakeEntity.cs +++ b/src/sample/Ace.CSharp.DataFaker.Sample/FakeEntity.cs @@ -24,7 +24,7 @@ public static List ManyOf(int minCount, int maxCount) return Fake.ManyOf(minCount, maxCount); } - private static Faker FakeFoo => + private static Faker FakeFooEntity => new Faker(locale: LocaleCode) .RuleFor( dto => dto.Id, diff --git a/src/sample/Ace.CSharp.DataFaker.Sample/Program.cs b/src/sample/Ace.CSharp.DataFaker.Sample/Program.cs index fc61b29..14c309e 100644 --- a/src/sample/Ace.CSharp.DataFaker.Sample/Program.cs +++ b/src/sample/Ace.CSharp.DataFaker.Sample/Program.cs @@ -47,4 +47,17 @@ Console.WriteLine(); } +{ + Console.WriteLine("Generating FooDto(s) using the Instance class.."); + + var faker = new DtoFaker(); + + var fooDto = faker.Of(); + var fooDtos = faker.ManyOf(); + + Console.WriteLine($"Foo Id: {fooDto.Id}"); + Console.WriteLine($"Foos count: {fooDtos.Count}"); + Console.WriteLine(); +} + Console.ReadKey();