mirror of
https://github.com/morbalint/kemkas-backend.git
synced 2026-07-17 21:23:46 +00:00
fix ef collection initilizers (#50)
* fix ef collection initilizers * add tests to catch regression
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
using Kemkas.Web.Db.Enums;
|
||||
using Kemkas.Web.Db.Models;
|
||||
|
||||
namespace Kemkas.Web.Tests.Db.Models;
|
||||
|
||||
public class CharacterCollectionMutabilityTests
|
||||
{
|
||||
[Fact]
|
||||
public void V1Karakter_CollectionsAreMutableForEfMaterialization()
|
||||
{
|
||||
var karakter = new V1Karakter { Nev = "Aron" };
|
||||
|
||||
Assert.False(karakter.KarakterKepzettsegek.GetType().IsArray);
|
||||
Assert.False(karakter.Szintlepesek.GetType().IsArray);
|
||||
Assert.False(karakter.Felszereles.GetType().IsArray);
|
||||
|
||||
karakter.KarakterKepzettsegek.Add(new V1KarakterKepzettseg
|
||||
{
|
||||
Kepzettseg = Kepzettseg1E.Alkimia,
|
||||
Karakter = null!
|
||||
});
|
||||
karakter.Szintlepesek.Add(new V1Szintlepes
|
||||
{
|
||||
KarakterSzint = 1,
|
||||
HpRoll = 8,
|
||||
Karakter = null!
|
||||
});
|
||||
karakter.Felszereles.Add(new V1Felszereles
|
||||
{
|
||||
Name = "kard",
|
||||
Karakter = null!
|
||||
});
|
||||
|
||||
Assert.Single(karakter.KarakterKepzettsegek);
|
||||
Assert.Single(karakter.Szintlepesek);
|
||||
Assert.Single(karakter.Felszereles);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void V2Karakter_CollectionsAreMutableForEfMaterialization()
|
||||
{
|
||||
var karakter = new V2Karakter { Nev = "Belia" };
|
||||
|
||||
Assert.False(karakter.KarakterKepzettsegek.GetType().IsArray);
|
||||
Assert.False(karakter.Szintlepesek.GetType().IsArray);
|
||||
Assert.False(karakter.Felszereles.GetType().IsArray);
|
||||
Assert.False(karakter.Varazslatok.GetType().IsArray);
|
||||
|
||||
karakter.KarakterKepzettsegek.Add(new V2KarakterKepzettseg
|
||||
{
|
||||
Kepzettseg = Kepzettseg2E.Alkimia,
|
||||
Karakter = null!
|
||||
});
|
||||
karakter.Szintlepesek.Add(new V2Szintlepes
|
||||
{
|
||||
KarakterSzint = 1,
|
||||
Osztaly = Osztaly2E.Harcos,
|
||||
HpRoll = 9,
|
||||
Karakter = null!
|
||||
});
|
||||
karakter.Felszereles.Add(new V2Felszereles
|
||||
{
|
||||
TargyId = "kard",
|
||||
Count = 1,
|
||||
Karakter = null!
|
||||
});
|
||||
karakter.Varazslatok.Add(new V2KarakterVarazslat
|
||||
{
|
||||
VarazslatId = "v_tuz",
|
||||
Osztaly = Osztaly2E.Varazslo,
|
||||
Karakter = null!
|
||||
});
|
||||
|
||||
Assert.Single(karakter.KarakterKepzettsegek);
|
||||
Assert.Single(karakter.Szintlepesek);
|
||||
Assert.Single(karakter.Felszereles);
|
||||
Assert.Single(karakter.Varazslatok);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user