public void Find_given_id_exists_returns_dto() { var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseInMemoryDatabase(databaseName: nameof(Find_given_id_exists_returns_dto)); var options = builder.Options; using (var context = new FuturamaContext(options)) { var entity = new Character { Name = "Fry", Species = "Human", Planet = "Earth", Actor = new Actor { Name = "Billy West" } }; context.Characters.Add(entity); context.SaveChanges(); } using (var context = new FuturamaContext(options)) { var repository = new CharacterRepository(context); var character = repository.Find(1); Assert.Equal(1, character.Id); Assert.Equal("Fry", character.Name); Assert.Equal("Human", character.Species); Assert.Equal("Earth", character.Planet); Assert.Equal(1, character.ActorId); Assert.Equal("Billy West", character.ActorName); } }
public CharacterRepositoryTests() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseSqlite(connection); _context = new FuturamaContext(builder.Options); _context.Database.EnsureCreated(); var actor = new Actor { Name = "Billy West" }; var episode = new Episode { Title = "Episode no. 1" }; var episodeCharacter = new EpisodeCharacter(); var episodes = new[] { episodeCharacter }; var character = new Character { Name = "Fry", Species = "Human", Actor = actor, Episodes = episodes }; episodeCharacter.Characters = character; episodeCharacter.Episode = episode; _context.Characters.Add(character); _context.SaveChanges(); }
private async Task <IFuturamaContext> CreateContextAsync(DbConnection connection) { var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseSqlite(connection); var context = new FuturamaContext(builder.Options); await context.Database.EnsureCreatedAsync(); return(context); }
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); } } }
public IFuturamaContext CreateInMemoryDatabase() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseSqlite(connection); var context = new FuturamaContext(builder.Options); context.Database.EnsureCreated(); return(context); }
public void Find_given_id_exists_returns_dto_with_episodeCount() { var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseInMemoryDatabase(databaseName: nameof(Find_given_id_exists_returns_dto_with_episodeCount)); var options = builder.Options; int id; using (var context = new FuturamaContext(options)) { var episode1 = new Episode { Title = "Space Pilot 3000" }; var episode2 = new Episode { Title = "The Series Has Landed" }; var character = new Character { EpisodeCharacters = new[] { new EpisodeCharacter { Episode = episode1 }, new EpisodeCharacter { Episode = episode2 } } }; context.Characters.Add(character); context.SaveChanges(); id = character.Id; } using (var context = new FuturamaContext(options)) { var repository = new CharacterRepository(context); var dto = repository.Find(id); Assert.Equal(2, dto.NumberOfEpisodes); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, FuturamaContext context) { context.Database.Migrate(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHsts(); } app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseHttpsRedirection(); app.UseMvc(); }
public async Task Read_returns_mapped_CharacterDTO() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var builder = new DbContextOptionsBuilder <FuturamaContext>() .UseSqlite(connection); var context = new FuturamaContext(builder.Options); context.Database.EnsureCreated(); var entity = new Character { Name = "Name", Species = "Species", Actor = new Actor { Name = "Actor" } }; context.Characters.Add(entity); await context.SaveChangesAsync(); var id = entity.Id; using (var repository = new EntityFrameworkCharacterRepository(context)) { var characters = await repository.ReadAsync(); var character = characters.Single(); Assert.Equal("Name", character.Name); Assert.Equal("Actor", character.ActorName); } }