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()));
|
Assert.DoesNotThrowAsync(async () => await _userRepo.CreateAsync(faker.Generate()));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(true, TestName = "WhenGivenMultipleUsers")]
|
[TestCase(true, TestName = "WhenDtoUsed")]
|
||||||
[TestCase(false, TestName = "WhenGivenSingleUser")]
|
[TestCase(false, TestName = "WhenEntityUsed")]
|
||||||
public async Task ReadAsync_ShouldReturnCreated(bool multiple)
|
public async Task ReadAsync_ShouldReturnCreated(bool useDto)
|
||||||
{
|
{
|
||||||
// Arrange
|
|
||||||
var faker = Fake.CreateUserFaker();
|
|
||||||
var user = faker.Generate();
|
|
||||||
|
|
||||||
// Act
|
// 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);
|
var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id);
|
||||||
|
|
||||||
// Assert
|
// 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.Email, f => email ?? f.Internet.Email())
|
||||||
.RuleFor(u => u.Age, f => age ?? f.Random.Int(18, 99));
|
.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.FirstName, f => firstName ?? f.Name.FirstName())
|
||||||
.RuleFor(u => u.Email, f => email ?? f.Internet.Email())
|
.RuleFor(u => u.Email, f => email ?? f.Internet.Email())
|
||||||
.RuleFor(u => u.Age, f => age ?? f.Random.Int(18, 99));
|
.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