- Add API.Tests xUnit project with Moq and EF Core InMemory - Add AgeGroupService tests (CRUD operations, edge cases) - Add RegistrationKeyService tests (CRUD + DeleteOldRegistrationKeys) - Add AgeGroupController tests (all endpoints with mocked service) - Add PlunkEmailSender tests (HTTP client mocking, payload verification) - Add Mapper tests (AltersgruppeMapper, RegistrationKeyMapper) https://claude.ai/code/session_01Kv7Mp2c9FKsHEgQe4BoftH
124 lines
2.8 KiB
C#
124 lines
2.8 KiB
C#
using API.Models.Internal.User;
|
|
|
|
namespace API.Tests.Mappers;
|
|
|
|
public class RegistrationKeyMapperTests
|
|
{
|
|
[Fact]
|
|
public void ToInternalFromIngoing_MapsLinkedRole()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = "Admin"
|
|
};
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
Assert.Equal("Admin", result.LinkedRole);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_NullLinkedRole_MapsCorrectly()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = null
|
|
};
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
Assert.Null(result.LinkedRole);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_GeneratesNewId()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = "User"
|
|
};
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.NotNull(result.Id);
|
|
Assert.NotEmpty(result.Id);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_GeneratesUniqueIds()
|
|
{
|
|
// Arrange
|
|
var ingoing1 = new RegistrationKeyIngoing { LinkedRole = "Admin" };
|
|
var ingoing2 = new RegistrationKeyIngoing { LinkedRole = "User" };
|
|
|
|
// Act
|
|
var result1 = ingoing1.ToInternalFromIngoing();
|
|
var result2 = ingoing2.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.NotEqual(result1.Id, result2.Id);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_SetsCreatedDate()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = "Moderator"
|
|
};
|
|
var beforeCreation = DateTime.UtcNow;
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
var afterCreation = DateTime.UtcNow;
|
|
Assert.True(result.Created >= beforeCreation.AddSeconds(-1));
|
|
Assert.True(result.Created <= afterCreation.AddSeconds(1));
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_EmptyLinkedRole_MapsCorrectly()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = ""
|
|
};
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.Equal("", result.LinkedRole);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToInternalFromIngoing_WhitespaceLinkedRole_MapsCorrectly()
|
|
{
|
|
// Arrange
|
|
var ingoing = new RegistrationKeyIngoing
|
|
{
|
|
LinkedRole = " "
|
|
};
|
|
|
|
// Act
|
|
var result = ingoing.ToInternalFromIngoing();
|
|
|
|
// Assert
|
|
Assert.Equal(" ", result.LinkedRole);
|
|
}
|
|
}
|