public MEpisode Insert(EpisodeInsertRequest request)
        {
            var mostRecentEpisode = ctx.Episodes.OrderByDescending(x => x.Id).FirstOrDefault();

            if (mostRecentEpisode != null)
            {
                request.OverallNumberOfEpisode = mostRecentEpisode.OverallNumberOfEpisode + 1;
            }
            else
            {
                request.OverallNumberOfEpisode = 1;
            }
            var ep = _mapper.Map <Episode>(request);

            ctx.Episodes.Add(ep);

            ctx.SaveChanges();

            foreach (var c in request.MainCharacters)
            {
                var mc = new EpisodeCharacter {
                    CharacterId = c.Id, EpisodeId = ep.Id
                };
                ctx.EpisodeCharacters.Add(mc);
            }

            ctx.SaveChanges();

            return(_mapper.Map <MEpisode>(ep));
        }
        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();
        }
 public void Verify_Add_Should_AddTheEntityToTheContext()
 {
     // Arrange
     Mock<IDbSet<EpisodeCharacter>> mockSetEpisodeCharacters;
     var mockContext = EpisodeCharactersMockingSetup.DoMockingSetupForContext(false, out mockSetEpisodeCharacters);
     var repository = new EpisodeCharactersRepository(mockContext.Object);
     var episodeCharacters = new EpisodeCharacter { Active = true, CustomKey = "SALVATORE-RAA", };
     // Act
     repository.Add(episodeCharacters);
     // Assert
     mockSetEpisodeCharacters.Verify(x => x.Add(episodeCharacters), Times.Once);
 }
        public void Verify_Add_Should_AddTheEntityToTheContext()
        {
            // Arrange
            Mock <IDbSet <EpisodeCharacter> > mockSetEpisodeCharacters;
            var mockContext       = EpisodeCharactersMockingSetup.DoMockingSetupForContext(false, out mockSetEpisodeCharacters);
            var repository        = new EpisodeCharactersRepository(mockContext.Object);
            var episodeCharacters = new EpisodeCharacter {
                Active = true, CustomKey = "SALVATORE-RAA",
            };

            // Act
            repository.Add(episodeCharacters);
            // Assert
            mockSetEpisodeCharacters.Verify(x => x.Add(episodeCharacters), Times.Once);
        }
        public void Verify_MapToEntity_WithExistingEntity_AssignsEpisodeCharacterProperties()
        {
            // Arrange
            var mapper = new EpisodeCharacterMapper();
            var model  = EpisodeCharactersMockingSetup.DoMockingSetupForEpisodeCharacterModel();
            // Act
            IEpisodeCharacter existingEntity = new EpisodeCharacter {
                Id = 1
            };

            mapper.MapToEntity(model.Object, ref existingEntity);
            // Assert
            // <None>
            // Related Objects
            Assert.Equal(model.Object.EpisodeId, existingEntity.EpisodeId);
            Assert.Equal(model.Object.CharacterId, existingEntity.CharacterId);
            // Associated Objects
            // <None>
        }
 public void Verify_MapToEntity_WithExistingEntity_AssignsEpisodeCharacterProperties()
 {
     // Arrange
     var mapper = new EpisodeCharacterMapper();
     var model = EpisodeCharactersMockingSetup.DoMockingSetupForEpisodeCharacterModel();
     // Act
     IEpisodeCharacter existingEntity = new EpisodeCharacter { Id = 1 };
     mapper.MapToEntity(model.Object, ref existingEntity);
     // Assert
     // <None>
     // Related Objects
     Assert.Equal(model.Object.EpisodeId, existingEntity.EpisodeId);
     Assert.Equal(model.Object.CharacterId, existingEntity.CharacterId);
     // Associated Objects
     // <None>
 }