Skip to content

Commit 9743d93

Browse files
committed
test(raps): cover RoleTemplateSimplified constructor mapping
Two unit tests for the constructor that drives the GetRoleTemplates projection: - Constructor_MapsScalarsAndFlattensRoles: verifies the scalar properties and the nested RoleTemplateRoles -> Roles flattening via Role.RoleId / Role.FriendlyName. - Constructor_EmptyRoles_ReturnsEmptyCollection: ensures the Roles initializer does not depend on a non-empty source collection. Pins the constructor's mapping behavior so the cs/virtual-call-in- constructor fix (dropping `virtual` from Roles) does not silently regress the projection.
1 parent f7f8120 commit 9743d93

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using Viper.Areas.RAPS.Models;
2+
using Viper.Models.RAPS;
3+
4+
namespace Viper.test.RAPS
5+
{
6+
public class RoleTemplateSimplifiedTests
7+
{
8+
[Fact]
9+
public void Constructor_MapsScalarsAndFlattensRoles()
10+
{
11+
// arrange
12+
var rt = new RoleTemplate
13+
{
14+
RoleTemplateId = 42,
15+
TemplateName = "Test Template",
16+
Description = "Desc",
17+
RoleTemplateRoles = new List<RoleTemplateRole>
18+
{
19+
new() { Role = new TblRole { RoleId = 1, Role = "Alpha", DisplayName = "Alpha" } },
20+
new() { Role = new TblRole { RoleId = 2, Role = "Beta", DisplayName = "Beta" } }
21+
}
22+
};
23+
24+
// act
25+
var dto = new RoleTemplateSimplified(rt);
26+
27+
// assert
28+
Assert.Equal(42, dto.RoleTemplateId);
29+
Assert.Equal("Test Template", dto.TemplateName);
30+
Assert.Equal("Desc", dto.Description);
31+
var roles = dto.Roles.ToList();
32+
Assert.Equal(2, roles.Count);
33+
Assert.Equal(1, roles[0].RoleId);
34+
Assert.Equal("Alpha", roles[0].FriendlyName);
35+
Assert.Equal(2, roles[1].RoleId);
36+
Assert.Equal("Beta", roles[1].FriendlyName);
37+
}
38+
39+
[Fact]
40+
public void Constructor_EmptyRoles_ReturnsEmptyCollection()
41+
{
42+
// arrange
43+
var rt = new RoleTemplate
44+
{
45+
RoleTemplateId = 7,
46+
TemplateName = "No Roles",
47+
Description = "",
48+
RoleTemplateRoles = new List<RoleTemplateRole>()
49+
};
50+
51+
// act
52+
var dto = new RoleTemplateSimplified(rt);
53+
54+
// assert
55+
Assert.Equal(7, dto.RoleTemplateId);
56+
Assert.Empty(dto.Roles);
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)