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() .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] public void ModifyTestInMemory() {//connection must be opened to use In-memory database var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var options = new DbContextOptionsBuilder() .UseSqlite(connection) .Options; //prepares the database with one instance of the context using (var context = new ChampionContext(options)) { //context.Database.OpenConnection(); context.Database.EnsureCreated(); ChampionEntity chewie = new ChampionEntity { Name = "Chewbacca", Bio = "Zeus is the king of the gods." }; ChampionEntity yoda = new ChampionEntity { Name = "Yoda", Bio = "Zeus is the king of the gods." }; ChampionEntity ewok = new ChampionEntity { Name = "Ewok", Bio = "Zeus is the king of the gods." }; context.Champions.Add(chewie); context.Champions.Add(yoda); context.Champions.Add(ewok); context.SaveChanges(); } //uses another instance of the context to do the tests using (var context = new ChampionContext(options)) { context.Database.EnsureCreated(); string nameToFind = "ew"; Assert.Equal(2, context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).Count()); nameToFind = "wo"; Assert.Equal(1, context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).Count()); var ewok = context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).First(); ewok.Name = "Wicket"; context.SaveChanges(); } //uses another instance of the context to do the tests using (var context = new ChampionContext(options)) { context.Database.EnsureCreated(); string nameToFind = "ew"; Assert.Equal(1, context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).Count()); nameToFind = "wick"; Assert.Equal(1, context.Champions.Where(n => n.Name.ToLower().Contains(nameToFind)).Count()); } } } }