mirror of
https://github.com/morbalint/kemkas-backend.git
synced 2026-07-17 21:23:46 +00:00
add basic generated unit tests (#47)
* add basic generated unit tests * generate more tests
This commit is contained in:
+78
@@ -0,0 +1,78 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kemkas.Web.Db.Enums;
|
||||
using Kemkas.Web.Db.Models;
|
||||
using Kemkas.Web.Services.FirstEdition.Character;
|
||||
using Kemkas.Web.Tests.Services.TestData;
|
||||
|
||||
namespace Kemkas.Web.Tests.Services.FirstEdition.Character;
|
||||
|
||||
public class Character1EDtoToDbModelServiceTests
|
||||
{
|
||||
private readonly Character1EDtoToDbModelService _sut = new();
|
||||
|
||||
[Fact]
|
||||
public void Convert_MapsDtoToEntity()
|
||||
{
|
||||
var dto = CharacterMapperTestData.Create1EDto();
|
||||
|
||||
var result = _sut.Convert(dto);
|
||||
|
||||
Assert.Equal("Aron", result.Nev);
|
||||
Assert.Equal(Jellem.TorvenyesJo, result.Jellem);
|
||||
Assert.Equal(Faj1E.Ember, result.Faj);
|
||||
Assert.Equal(Osztaly1E.Harcos, result.Osztaly);
|
||||
Assert.Equal(3, result.KarakterKepzettsegek.Count());
|
||||
Assert.Equal(1, result.KarakterKepzettsegek.Count(x => x.IsTolvajKepzettseg));
|
||||
Assert.Equal(2, result.Felszereles.Count());
|
||||
Assert.All(result.Felszereles, x => Assert.True(x.IsFegyver));
|
||||
Assert.Equal(4, result.Szintlepesek.Count());
|
||||
Assert.Equal(10, result.Szintlepesek.Single(x => x.KarakterSzint == 1).HpRoll);
|
||||
Assert.Equal("ij", result.Szintlepesek.Single(x => x.KarakterSzint == 3).FegyverSpecializacio);
|
||||
Assert.Equal(Tulajdonsag.Ero, result.Szintlepesek.Single(x => x.KarakterSzint == 4).TulajdonsagNoveles);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Convert_WithNotEnoughHpRolls_ThrowsValidationException()
|
||||
{
|
||||
var dto = CharacterMapperTestData.Create1EDto();
|
||||
dto.HpRolls = new List<byte> { 7 };
|
||||
|
||||
Assert.Throws<ValidationException>(() => _sut.Convert(dto));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Update_ReplacesMutableCollectionsAndScalarFields()
|
||||
{
|
||||
var dto = CharacterMapperTestData.Create1EDto();
|
||||
var original = new V1Karakter
|
||||
{
|
||||
Nev = "old",
|
||||
Jellem = Jellem.Semleges,
|
||||
Faj = Faj1E.Elf,
|
||||
Osztaly = Osztaly1E.Pap,
|
||||
KarakterKepzettsegek = new List<V1KarakterKepzettseg>
|
||||
{
|
||||
new() { Kepzettseg = Kepzettseg1E.Tudas, Karakter = null! }
|
||||
},
|
||||
Felszereles = new List<V1Felszereles>
|
||||
{
|
||||
new() { Name = "old_weapon", IsFegyver = true, Karakter = null! }
|
||||
},
|
||||
Szintlepesek = new List<V1Szintlepes>
|
||||
{
|
||||
new() { KarakterSzint = 1, HpRoll = 4, Karakter = null! }
|
||||
}
|
||||
};
|
||||
|
||||
_sut.Update(original, dto);
|
||||
|
||||
Assert.Equal("Aron", original.Nev);
|
||||
Assert.Equal(Jellem.TorvenyesJo, original.Jellem);
|
||||
Assert.Equal(Faj1E.Ember, original.Faj);
|
||||
Assert.Equal(Osztaly1E.Harcos, original.Osztaly);
|
||||
Assert.Equal(3, original.KarakterKepzettsegek.Count());
|
||||
Assert.DoesNotContain(original.Felszereles, x => x.Name == "old_weapon");
|
||||
Assert.Equal(4, original.Szintlepesek.Count());
|
||||
}
|
||||
}
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
using Kemkas.Web.Services.FirstEdition.Character;
|
||||
using Kemkas.Web.Tests.Services.TestData;
|
||||
|
||||
namespace Kemkas.Web.Tests.Services.FirstEdition.Character;
|
||||
|
||||
public class CharacterDbModelToDto1EServiceTests
|
||||
{
|
||||
private readonly CharacterDbModelToDto1EService _sut = new();
|
||||
|
||||
[Fact]
|
||||
public void Convert_MapsEntityToDtoWithExpectedOrderingAndSplits()
|
||||
{
|
||||
var entity = CharacterMapperTestData.Create1EEntity();
|
||||
|
||||
var result = _sut.Convert(entity);
|
||||
|
||||
Assert.Equal("Aron", result.Name);
|
||||
Assert.Equal("TJ", result.Jellem);
|
||||
Assert.Equal("f_ember", result.Faj);
|
||||
Assert.Equal("o_harcos", result.Osztaly);
|
||||
Assert.Equal(new List<string> { "k_alkimia" }, result.Kepzettsegek);
|
||||
Assert.Equal(new List<string> { "k_osonas" }, result.Tolvajkepzettsegek);
|
||||
Assert.Equal(new List<byte> { 7, 5 }, result.HpRolls);
|
||||
Assert.Equal(new List<string> { "t_ero" }, result.TulajdonsagNovelesek);
|
||||
Assert.Equal(new List<string> { "kard", "ij" }, result.HarcosSpecializaciok);
|
||||
Assert.Empty(result.KalozKritikus);
|
||||
Assert.Equal(new List<string> { "kard" }, result.Felszereles1E.FegyverIds);
|
||||
Assert.True(result.IsPublic);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user