|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
using EFLol;
|
|
|
|
|
using Microsoft.Data.Sqlite;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
|
|
|
|
|
namespace TestUnitaire
|
|
|
|
|
{
|
|
|
|
@ -28,10 +29,16 @@ namespace TestUnitaire
|
|
|
|
|
using (var context = new MyDbContext(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 };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dieu = new ChampionEntity
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Bio = bio
|
|
|
|
|
Bio = bio,
|
|
|
|
|
Skins = new Collection<SkinEntity>(new List<SkinEntity> { black, white, green })
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ChampionEntity found = await context.Champions.SingleOrDefaultAsync(c => c.Name == "Zeus");
|
|
|
|
@ -45,6 +52,7 @@ namespace TestUnitaire
|
|
|
|
|
|
|
|
|
|
Assert.Equal(1, await context.Champions.CountAsync());
|
|
|
|
|
Assert.Equal(name, found.Name);
|
|
|
|
|
Assert.Equal(3,found.Skins.Count);
|
|
|
|
|
|
|
|
|
|
// Test if the max length of the name is respected (30) and the max length of the bio is respected (256)
|
|
|
|
|
if (expected)
|
|
|
|
@ -54,8 +62,8 @@ namespace TestUnitaire
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Assert.False(found.Bio.Length <= 256);
|
|
|
|
|
Assert.False(found.Name.Length <= 30);
|
|
|
|
|
Assert.False(found.Bio.Length <= 256);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -113,5 +121,52 @@ namespace TestUnitaire
|
|
|
|
|
Assert.Equal(1, context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).Count());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
|
|
|
|
|
|
[InlineData("black", "super Skin", "icon1.png",190000000.2f,true)]
|
|
|
|
|
[InlineData("White", "skin1", "icon1", 19, true)]
|
|
|
|
|
[InlineData("Green", "skin", "icon1.jpg", -1, false)]
|
|
|
|
|
public async Task TestAddSkinToChampionInMemory(String name, String description, String icon,float price,bool expected)
|
|
|
|
|
{
|
|
|
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
|
|
|
connection.Open();
|
|
|
|
|
|
|
|
|
|
var options = new DbContextOptionsBuilder<MyDbContext>()
|
|
|
|
|
.UseSqlite(connection)
|
|
|
|
|
.Options;
|
|
|
|
|
|
|
|
|
|
using (var context = new MyDbContext(options))
|
|
|
|
|
{
|
|
|
|
|
await context.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var Dieu = new ChampionEntity
|
|
|
|
|
{
|
|
|
|
|
Name = "Zeus",
|
|
|
|
|
Bio = "Dieu de la foudre",
|
|
|
|
|
Skins = new Collection<SkinEntity>()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SkinEntity item = new SkinEntity
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Description = description,
|
|
|
|
|
Icon = icon,
|
|
|
|
|
Price = price
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Dieu.Skins.Add(item);
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|