From 35050d65a8f3b73941b366db5df08940b193b980 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Thu, 17 Apr 2025 14:47:37 +0200 Subject: [PATCH] Refactor Fake class and enhance MockDbContext Updated the `Fake` class to introduce flexible methods for generating fake `User` and `UserDto` objects with optional parameters. Removed the static `UserFaker` instance and related properties. Added a new `DbSet` property to `MockDbContext` for improved management of `User` entities. --- DigitalData.Core.Tests/Mock/Fake.cs | 15 ++++++++------- DigitalData.Core.Tests/Mock/MockDbContext.cs | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/DigitalData.Core.Tests/Mock/Fake.cs b/DigitalData.Core.Tests/Mock/Fake.cs index fd89b34..87abe9f 100644 --- a/DigitalData.Core.Tests/Mock/Fake.cs +++ b/DigitalData.Core.Tests/Mock/Fake.cs @@ -4,12 +4,13 @@ namespace DigitalData.Core.Tests.Mock; public static class Fake { - private static readonly Faker UserFaker = new Faker() - .RuleFor(u => u.FirstName, f => f.Name.FirstName()) - .RuleFor(u => u.Email, f => f.Internet.Email()) - .RuleFor(u => u.Age, f => f.Random.Int(18, 99)); + public static Faker CreateUserFaker(string? firstName = null, string? email = null, int? age = null) => new Faker() + .RuleFor(u => u.FirstName, f => firstName ?? f.Name.FirstName()) + .RuleFor(u => u.Email, f => email ?? f.Internet.Email()) + .RuleFor(u => u.Age, f => age ?? f.Random.Int(18, 99)); - public static User FakeUser => UserFaker.Generate(); - - public static List CreateFakeUser(int count) => UserFaker.Generate(count); + public static Faker CreateUserDtoFaker(string? firstName = null, string? email = null, int? age = null) => new Faker() + .RuleFor(u => u.FirstName, f => firstName ?? f.Name.FirstName()) + .RuleFor(u => u.Email, f => email ?? f.Internet.Email()) + .RuleFor(u => u.Age, f => age ?? f.Random.Int(18, 99)); } diff --git a/DigitalData.Core.Tests/Mock/MockDbContext.cs b/DigitalData.Core.Tests/Mock/MockDbContext.cs index cd41ec5..e5695e6 100644 --- a/DigitalData.Core.Tests/Mock/MockDbContext.cs +++ b/DigitalData.Core.Tests/Mock/MockDbContext.cs @@ -4,6 +4,8 @@ namespace DigitalData.Core.Tests.Mock; public class MockDbContext : DbContext { + public DbSet Users { get; set; } + public MockDbContext(DbContextOptions options) : base(options) { }