diff --git a/Sources/Tests/TestUnitaireLOL/TestEf.cs b/Sources/Tests/TestUnitaireLOL/TestEf.cs index 48dde60..a3b2b0c 100644 --- a/Sources/Tests/TestUnitaireLOL/TestEf.cs +++ b/Sources/Tests/TestUnitaireLOL/TestEf.cs @@ -10,69 +10,69 @@ namespace TestUnitaireLOL { public class TestEf { - //[Theory] - - //[InlineData(0, "Zeus", "Dieu de la foudre", true)] - //[InlineData(10, "Hades", "Dieu des enfers", true)] - //[InlineData(1, "Aphrodite", "Déesse de l'amour", true)] - ////[InlineData(10, "AresAresAresAresAresAresAresAresAresAres", - //// "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre" + - //// "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre" + - //// "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre", false)] - //public async Task TestAddChampionInMemory(int id, String name, String bio, bool expected) - //{ - // var connection = new SqliteConnection("DataSource=:memory:"); - // connection.Open(); - - // var options = new DbContextOptionsBuilder() - // .UseSqlite(connection) - // .Options; - - // using (var context = new LolContext(options)) - // { - // await context.Database.EnsureCreatedAsync(); - // SkinEntity black = new SkinEntity { Name = "Black", Description = "Black skin", Icon = "black.png", Price = 0.99f }; - // SkinEntity white = new SkinEntity { Name = "White", Description = "White skin", Icon = "white.png", Price = 150.99f }; - // SkinEntity green = new SkinEntity { Name = "Green", Description = "Green skin", Icon = "green.png", Price = 4.99f }; - - // RunePageEntity runePage1 = new RunePageEntity { Id = 1, Name = "runepage1" }; - - // var Dieu = new ChampionEntity - // { - // UniqueId = id, - // Name = name, - // Bio = bio, - // Skins = new Collection(new List { black, white, green }), - // ListRunePages = new Collection(new List { { runePage1 } }) - // }; - - // ChampionEntity found = await context.Champions.SingleOrDefaultAsync(c => c.Name == "Zeus"); - // Assert.Null(found); - - // await context.Champions.AddAsync(Dieu); - // await context.SaveChangesAsync(); - - // found = await context.Champions.SingleOrDefaultAsync(c => c.Name == name); - // Assert.NotNull(found); - - // Assert.Equal(1, await context.Champions.CountAsync()); - // Assert.Equal(name, found.Name); - // Assert.Equal(3, found.Skins.Count); - // Assert.Equal(1, found.ListRunePages.Count); - - // // Test if the max length of the name is respected (30) and the max length of the bio is respected (256) - // if (expected) - // { - // Assert.True(found.Name.Length <= 30); - // Assert.True(found.Bio.Length <= 256); - // } - // else - // { - // Assert.False(found.Name.Length <= 30); - // Assert.False(found.Bio.Length <= 256); - // } - // } - //} + [Theory] + + [InlineData(0, "Zeus", "Dieu de la foudre", true)] + [InlineData(10, "Hades", "Dieu des enfers", true)] + [InlineData(1, "Aphrodite", "Déesse de l'amour", true)] + //[InlineData(10, "AresAresAresAresAresAresAresAresAresAres", + // "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre" + + // "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre" + + // "Dieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerreDieu de la guerre", false)] + public async Task TestAddChampionInMemory(int id, String name, String bio, bool expected) + { + var connection = new SqliteConnection("DataSource=:memory:"); + connection.Open(); + + var options = new DbContextOptionsBuilder() + .UseSqlite(connection) + .Options; + + using (var context = new LolContext(options)) + { + await context.Database.EnsureCreatedAsync(); + SkinEntity black = new SkinEntity { Name = "Black", Description = "Black skin", Icon = "black.png", Price = 0.99f }; + SkinEntity white = new SkinEntity { Name = "White", Description = "White skin", Icon = "white.png", Price = 150.99f }; + SkinEntity green = new SkinEntity { Name = "Green", Description = "Green skin", Icon = "green.png", Price = 4.99f }; + + RunePageEntity runePage1 = new RunePageEntity { Id = 1, Name = "runepage1" }; + + var Dieu = new ChampionEntity + { + UniqueId = id, + Name = name, + Bio = bio, + Skins = new Collection(new List { black, white, green }), + ListRunePages = new Collection(new List { { runePage1 } }) + }; + + ChampionEntity found = await context.Champions.SingleOrDefaultAsync(c => c.Name == "Zeus"); + Assert.Null(found); + + await context.Champions.AddAsync(Dieu); + await context.SaveChangesAsync(); + + found = await context.Champions.SingleOrDefaultAsync(c => c.Name == name); + Assert.NotNull(found); + + Assert.Equal(1, await context.Champions.CountAsync()); + Assert.Equal(name, found.Name); + Assert.Equal(3, found.Skins.Count); + Assert.Equal(1, found.ListRunePages.Count); + + // Test if the max length of the name is respected (30) and the max length of the bio is respected (256) + if (expected) + { + Assert.True(found.Name.Length <= 30); + Assert.True(found.Bio.Length <= 256); + } + else + { + Assert.False(found.Name.Length <= 30); + Assert.False(found.Bio.Length <= 256); + } + } + } [Fact] public void TestModifyChampionInMemory()