feat (Mapping): Porfile hinzufügen

This commit is contained in:
Developer 02 2025-04-22 09:53:08 +02:00
parent 7d2098092a
commit c955220310
4 changed files with 43 additions and 10 deletions

View File

@ -51,19 +51,19 @@ public class DbRepositoryTests
Assert.DoesNotThrowAsync(async () => await _userRepo.CreateAsync(faker.Generate()));
}
[TestCase(true, TestName = "WhenGivenMultipleUsers")]
[TestCase(false, TestName = "WhenGivenSingleUser")]
public async Task ReadAsync_ShouldReturnCreated(bool multiple)
[TestCase(true, TestName = "WhenDtoUsed")]
[TestCase(false, TestName = "WhenEntityUsed")]
public async Task ReadAsync_ShouldReturnCreated(bool useDto)
{
// Arrange
var faker = Fake.CreateUserFaker();
var user = faker.Generate();
// Act
var createdUser = await _userRepo.CreateAsync(user);
var createdUser = useDto
? await _userRepo.CreateAsync(Fake.UserCreateDto)
: await _userRepo.CreateAsync(Fake.User);
var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id);
// Assert
Assert.That(createdUser, Is.EqualTo(readUser));
Assert.That(readUser, Is.Not.Null);
Assert.That(readUser, Is.EqualTo(createdUser));
}
}

View File

@ -9,8 +9,20 @@ public static class Fake
.RuleFor(u => u.Email, f => email ?? f.Internet.Email())
.RuleFor(u => u.Age, f => age ?? f.Random.Int(18, 99));
public static Faker<UserCreateDto> CreateUserDtoFaker(string? firstName = null, string? email = null, int? age = null) => new Faker<UserCreateDto>()
private static readonly Faker<User> UserFaker = CreateUserFaker();
public static User User => UserFaker.Generate();
public static List<User> Users => UserFaker.Generate(Random.Shared.Next(1, 10));
public static Faker<UserCreateDto> CreateUserCreateDtoFaker(string? firstName = null, string? email = null, int? age = null) => new Faker<UserCreateDto>()
.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));
private static readonly Faker<UserCreateDto> UserCreateDtoFaker = CreateUserCreateDtoFaker();
public static UserCreateDto UserCreateDto => UserCreateDtoFaker.Generate();
public static List<UserCreateDto> UserCreateDtos => UserCreateDtoFaker.Generate(Random.Shared.Next(1, 10));
}

View File

@ -0,0 +1,16 @@
using AutoMapper;
namespace DigitalData.Core.Tests.Mock;
public class MappingProfile : Profile
{
public MappingProfile()
{
// DTO ---> Entity
CreateMap<UserCreateDto, User>();
CreateMap<UserUpdateDto, User>();
// Entity ---> DTO
CreateMap<User, UserReadDto>();
}
}

View File

@ -0,0 +1,5 @@
namespace DigitalData.Core.Tests.Mock;
public class UserUpdateDto : UserBase
{
}