public async Task Find_given_non_existing_id_returns_null() { var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseInMemoryDatabase(nameof(Find_given_non_existing_id_returns_null)); using (var context = new FuturamaContext(builder.Options)) using (var repository = new EntityFrameworkCharacterRepository(context)) { var character = await repository.FindAsync(42); Assert.Null(character); } }
public async Task Find_given_existing_id_returns_mapped_CharacterDTO() { using (var connection = new SqliteConnection("DataSource=:memory:")) { connection.Open(); var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseSqlite(connection); var context = new FuturamaContext(builder.Options); await context.Database.EnsureCreatedAsync(); var entity = new Character { Name = "Name", Species = "Species", Planet = "Planet", Image = "Image", Actor = new Actor { Name = "Actor" }, Episodes = new[] { new EpisodeCharacter { Episode = new Episode { Title = "Episode 1" } }, new EpisodeCharacter { Episode = new Episode { Title = "Episode 2" } } } }; context.Characters.Add(entity); await context.SaveChangesAsync(); var id = entity.Id; using (var repository = new EntityFrameworkCharacterRepository(context)) { var character = await repository.FindAsync(id); Assert.Equal("Name", character.Name); Assert.Equal("Species", character.Species); Assert.Equal("Planet", character.Planet); Assert.Equal("Image", character.Image); Assert.Equal("Actor", character.ActorName); Assert.Equal(2, character.NumberOfEpisodes); } } }