add basic generated unit tests (#47)

* add basic generated unit tests

* generate more tests
This commit is contained in:
2026-04-04 22:04:47 +02:00
committed by GitHub
parent 085e15aaa0
commit 644903cad4
15 changed files with 890 additions and 1 deletions
@@ -0,0 +1,84 @@
using Kemkas.Web.Db.Enums;
using Kemkas.Web.Db.Models;
using Kemkas.Web.Services.SecondEdition.Character;
using Kemkas.Web.Tests.Services.TestData;
namespace Kemkas.Web.Tests.Services.SecondEdition.Character;
public class Character2EDtoToDbModelServiceTests
{
private readonly Character2EDtoToDbModelService _sut = new();
[Fact]
public void Convert_MapsDtoToEntity()
{
var dto = CharacterMapperTestData.Create2EDto();
var result = _sut.Convert(dto);
Assert.Equal("Belia", result.Nev);
Assert.Equal(Jellem.Torvenyes, result.Jellem);
Assert.Equal(Faj2E.Ember, result.Faj);
Assert.Equal(3, result.KarakterKepzettsegek.Count());
Assert.Equal(1, result.KarakterKepzettsegek.Count(x => x.IsTolvajKepzettseg));
Assert.Equal(4, result.Felszereles.Count());
Assert.Single(result.Felszereles, x => x.IsFegyver);
Assert.Single(result.Felszereles, x => x.IsViselt);
Assert.Single(result.Felszereles, x => x.IsCipelt);
Assert.Single(result.Felszereles, x => x.IsAprosag);
Assert.Equal(2, result.Szintlepesek.Count());
Assert.Equal("kard", result.Szintlepesek.Single(x => x.KarakterSzint == 1).FegyverSpecializacio);
Assert.Equal("szuras", result.Szintlepesek.Single(x => x.KarakterSzint == 2).FegyverSpecializacio);
Assert.Equal(Tulajdonsag.Karizma, result.Szintlepesek.Single(x => x.KarakterSzint == 2).TulajdonsagNoveles);
Assert.Single(result.Varazslatok);
Assert.Equal("v_tuz", result.Varazslatok.Single().VarazslatId);
}
[Fact]
public void Update_WhenDtoVarazslatokIsNull_ClearsSpells()
{
var dto = CharacterMapperTestData.Create2EDto();
dto.Varazslatok = null;
var original = CharacterMapperTestData.Create2EEntity();
_sut.Update(original, dto);
Assert.Empty(original.Varazslatok);
}
[Fact]
public void Update_ReplacesScalarFieldsAndCollections()
{
var dto = CharacterMapperTestData.Create2EDto();
var original = new V2Karakter
{
Nev = "old",
Jellem = Jellem.Semleges,
Faj = Faj2E.Torpe,
KarakterKepzettsegek = new List<V2KarakterKepzettseg>
{
new() { Kepzettseg = Kepzettseg2E.Historia, Karakter = null! }
},
Felszereles = new List<V2Felszereles>
{
new() { TargyId = "old", Count = 1, IsFegyver = true, Karakter = null! }
},
Szintlepesek = new List<V2Szintlepes>
{
new() { KarakterSzint = 1, Osztaly = Osztaly2E.Pap, HpRoll = 5, Karakter = null! }
},
Varazslatok = new HashSet<V2KarakterVarazslat>()
};
_sut.Update(original, dto);
Assert.Equal("Belia", original.Nev);
Assert.Equal(Jellem.Torvenyes, original.Jellem);
Assert.Equal(Faj2E.Ember, original.Faj);
Assert.Equal(3, original.KarakterKepzettsegek.Count());
Assert.DoesNotContain(original.Felszereles, x => x.TargyId == "old");
Assert.Equal(2, original.Szintlepesek.Count());
}
}
@@ -0,0 +1,42 @@
using Kemkas.Web.Services.SecondEdition.Character;
using Kemkas.Web.Tests.Services.TestData;
namespace Kemkas.Web.Tests.Services.SecondEdition.Character;
public class CharacterDbModelToDto2EServiceTests
{
private readonly CharacterDbModelToDto2EService _sut = new();
[Fact]
public void Convert_MapsEntityToDto()
{
var entity = CharacterMapperTestData.Create2EEntity();
var result = _sut.Convert(entity);
Assert.Equal("Belia", result.Nev);
Assert.Equal("TS", result.Jellem);
Assert.Equal("f_2e_ember", result.Faj);
Assert.Equal(new List<string> { "k_alkimia" }, result.Kepzettsegek);
Assert.Equal(new List<string> { "k_osonas" }, result.Tolvajkepzettsegek);
Assert.Equal("kard", result.Felszereles.Fegyverek.Single().Id);
Assert.Equal("sisak", result.Felszereles.Viselt.Single().Id);
Assert.Equal("kotel", result.Felszereles.Cipelt.Single().Id);
Assert.Equal("gyertya", result.Felszereles.Aprosagok.Single().Id);
Assert.Equal(2, result.Szintlepesek.Count);
Assert.Equal("o_2e_harcos", result.Szintlepesek[0].Osztaly);
Assert.Equal("kard", result.Szintlepesek[0].HarcosFegyver);
Assert.Null(result.Szintlepesek[0].KalozKritikus);
Assert.Equal("o_2e_tengeresz", result.Szintlepesek[1].Osztaly);
Assert.Equal("szuras", result.Szintlepesek[1].KalozKritikus);
Assert.Null(result.Szintlepesek[1].HarcosFegyver);
Assert.Equal("t_kar", result.Szintlepesek[1].TulajdonsagNoveles);
Assert.Equal("k_zarnyitas", result.Szintlepesek[1].TolvajExtraKepzettseg);
Assert.NotNull(result.Varazslatok);
Assert.Single(result.Varazslatok);
Assert.Equal("v_tuz", result.Varazslatok[0].VarazslatId);
Assert.False(result.IsPublic ?? true);
}
}