feat (Mapping): Porfile hinzufügen
This commit is contained in:
parent
7d2098092a
commit
c955220310
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
16
DigitalData.Core.Tests/Mock/MappingProfile.cs
Normal file
16
DigitalData.Core.Tests/Mock/MappingProfile.cs
Normal 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>();
|
||||
}
|
||||
}
|
||||
5
DigitalData.Core.Tests/Mock/UserUpdateDto.cs
Normal file
5
DigitalData.Core.Tests/Mock/UserUpdateDto.cs
Normal file
@ -0,0 +1,5 @@
|
||||
namespace DigitalData.Core.Tests.Mock;
|
||||
|
||||
public class UserUpdateDto : UserBase
|
||||
{
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user