예제 #1
0
        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);
                }
        }
예제 #2
0
        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);
                }
            }
        }