@ -1,52 +1,67 @@
using EFLol ;
using Microsoft.Data.Sqlite ;
using Microsoft.EntityFrameworkCore ;
namespace TestUnitaire
{
public class TestEfLol
{
using EFLol ;
using Microsoft.Data.Sqlite ;
using Microsoft.EntityFrameworkCore ;
namespace TestUnitaire
{
public class TestEfLol
{
[Theory]
[InlineData("zeus","dieu")]
[InlineData("zeus", "dieu")]
[InlineData("zeus", "dieu")]
public async Task TestAddInMemory ( String name , String bio )
{
// Arrange
var connection = new SqliteConnection ( "DataSource=:memory:" ) ;
connection . Open ( ) ;
var options = new DbContextOptionsBuilder < ChampionContext > ( )
. UseSqlite ( connection )
. Options ;
// Act
using ( var context = new ChampionContext ( options ) )
{
await context . Database . EnsureCreatedAsync ( ) ;
var Dieu = new ChampionEntity
{
Name = name ,
Bio = bio
} ;
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 ) ;
}
}
[Fact]
[InlineData("Zeus", "Dieu de la foudre", true)]
[InlineData("Hades", "Dieu des enfers", true)]
[InlineData("Aphrodite", "Déesse de l'amour", true)]
[ InlineData ( "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 TestAddInMemory ( String name , String bio , bool expected )
{
var connection = new SqliteConnection ( "DataSource=:memory:" ) ;
connection . Open ( ) ;
var options = new DbContextOptionsBuilder < ChampionContext > ( )
. UseSqlite ( connection )
. Options ;
using ( var context = new ChampionContext ( options ) )
{
await context . Database . EnsureCreatedAsync ( ) ;
var Dieu = new ChampionEntity
{
Name = name ,
Bio = bio
} ;
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 ) ;
// 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 . Bio . Length < = 256 ) ;
Assert . False ( found . Name . Length < = 30 ) ;
}
}
}
[Fact]
public void ModifyTestInMemory ( )
{ //connection must be opened to use In-memory database
{
var connection = new SqliteConnection ( "DataSource=:memory:" ) ;
connection . Open ( ) ;
@ -96,9 +111,5 @@ namespace TestUnitaire
Assert . Equal ( 1 , context . Champions . Where ( n = > n . Name . ToLower ( ) . Contains ( nameToFind ) ) . Count ( ) ) ;
}
}
}
}
}
}