You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OptifitWebService/TestAPI/MapperTests/AlumniMappersTests.cs

113 lines
3.9 KiB

using Server.Mappers;
using Server.Dto.Request;
using Infrastructure.Entities;
using Shared.Enums;
namespace TestAPI.MapperTests
{
public class AlumniMappersTests
{
[Fact]
public void ToDto_ConvertsAlumniEntityToResponseAlumniDto()
{
// Arrange
var alumniEntity = new User
{
Id = "1",
Email = "test@example.com",
Role = "USER",
EntryYear = "2020",
FirstName = "John",
LastName = "Doe",
Linkedin = "linkedin.com",
Github = "github.com",
WebSite = "portfolio.com",
Experiences = (ICollection<ExperienceEntity>)Enumerable.Empty<ExperienceEntity>(),
Formations = (ICollection<FormationEntity>)Enumerable.Empty<FormationEntity>()
};
// Act
var result = alumniEntity.ToDto();
// Assert
Assert.Equal(alumniEntity.Id, result.Id);
Assert.Equal(alumniEntity.Email, result.Email);
Assert.Equal(ERole.USER, result.ERole);
Assert.Equal(alumniEntity.EntryYear, result.EntryYear);
Assert.Equal(alumniEntity.FirstName, result.FirstName);
Assert.Equal(alumniEntity.LastName, result.LastName);
Assert.Equal(alumniEntity.Linkedin, result.LinkedinUrl);
Assert.Equal(alumniEntity.Github, result.GithubUrl);
Assert.Equal(alumniEntity.WebSite, result.PortfolioUrl);
Assert.Empty(result.Experiences);
Assert.Empty(result.Formations);
}
[Fact]
public void ToDtoRestricted_ConvertsAlumniEntityToResponseRestrictedAlumniDto()
{
// Arrange
var alumniEntity = new User
{
Id = "1",
FirstName = "John",
LastName = "Doe",
Linkedin = "linkedin.com"
};
// Act
var result = alumniEntity.ToDtoRestricted();
// Assert
Assert.Equal(alumniEntity.Id, result.Id);
Assert.Equal(alumniEntity.FirstName, result.FirstName);
Assert.Equal(alumniEntity.LastName, result.LastName);
Assert.Equal(alumniEntity.Linkedin, result.LinkedinUrl);
}
[Fact]
public void ToEntity_ConvertsRequestAlumniDtoToAlumniEntity()
{
// Arrange
var requestAlumniDto = new RequestAlumniDto
{
Email = "test@example.com",
Password = "password",
EntryYear = "2020",
FirstName = "John",
LastName = "Doe",
LinkedinUrl = "linkedin.com",
GithubUrl = "github.com",
PortfolioUrl = "portfolio.com"
};
// Act
var result = requestAlumniDto.ToEntity();
// Assert
Assert.Equal(requestAlumniDto.Email, result.Email);
Assert.Equal(requestAlumniDto.Password, result.Password);
Assert.Equal(requestAlumniDto.EntryYear, result.EntryYear);
Assert.Equal(requestAlumniDto.FirstName, result.FirstName);
Assert.Equal(requestAlumniDto.LastName, result.LastName);
Assert.Equal(requestAlumniDto.LinkedinUrl, result.Linkedin);
Assert.Equal(requestAlumniDto.GithubUrl, result.Github);
Assert.Equal(requestAlumniDto.PortfolioUrl, result.WebSite);
Assert.Equal("USER", result.Role);
}
[Theory]
[InlineData("ADMIN", ERole.ADMIN)]
[InlineData("MODERATOR", ERole.MODERATOR)]
[InlineData("USER", ERole.USER)]
public void ToERole_ConvertsStringToERole(string role, ERole expectedRole)
{
// Act
var result = role.ToERole();
// Assert
Assert.Equal(expectedRole, result);
}
}
}