public void Verify_MapToModel_AssignsEpisodeProperties() { // Arrange var mapper = new EpisodeMapper(); var entity = EpisodesMockingSetup.DoMockingSetupForEpisode(); // Act var model = mapper.MapToModel(entity.Object); // Assert Assert.Equal(entity.Object.HasStaffReview, model.HasStaffReview); Assert.Equal(entity.Object.AirDate, model.AirDate); Assert.Equal(entity.Object.EpisodeCode, model.EpisodeCode); Assert.Equal(entity.Object.SeasonNumber, model.SeasonNumber); Assert.Equal(entity.Object.EpisodeNumber, model.EpisodeNumber); // Related Objects Assert.Equal(entity.Object.PrimaryImageFileId, model.PrimaryImageFileId); Assert.Equal(entity.Object.SeriesId, model.SeriesId); // Associated Objects Assert.Equal(entity.Object.EpisodeAliases?.Count, model.EpisodeAliases?.Count); Assert.Equal(entity.Object.EpisodeCharacters?.Count, model.EpisodeCharacters?.Count); Assert.Equal(entity.Object.EpisodeCharactersDied?.Count, model.EpisodeCharactersDied?.Count); Assert.Equal(entity.Object.EpisodeCharacterFirstAppearances?.Count, model.EpisodeCharacterFirstAppearances?.Count); Assert.Equal(entity.Object.EpisodeConcepts?.Count, model.EpisodeConcepts?.Count); Assert.Equal(entity.Object.EpisodeConceptFirstAppearances?.Count, model.EpisodeConceptFirstAppearances?.Count); Assert.Equal(entity.Object.EpisodeLocations?.Count, model.EpisodeLocations?.Count); Assert.Equal(entity.Object.EpisodeLocationFirstAppearances?.Count, model.EpisodeLocationFirstAppearances?.Count); Assert.Equal(entity.Object.EpisodeObjects?.Count, model.EpisodeObjects?.Count); Assert.Equal(entity.Object.EpisodeObjectFirstAppearances?.Count, model.EpisodeObjectFirstAppearances?.Count); Assert.Equal(entity.Object.EpisodePeople?.Count, model.EpisodePeople?.Count); Assert.Equal(entity.Object.EpisodeStoryArcs?.Count, model.EpisodeStoryArcs?.Count); Assert.Equal(entity.Object.EpisodeStoryArcFirstAppearances?.Count, model.EpisodeStoryArcFirstAppearances?.Count); Assert.Equal(entity.Object.EpisodeTeams?.Count, model.EpisodeTeams?.Count); Assert.Equal(entity.Object.EpisodeTeamFirstAppearances?.Count, model.EpisodeTeamFirstAppearances?.Count); }
public IEpisodeModel Update(IEpisodeModel model) { // Validate model BusinessWorkflowBase.ValidateRequiredNullableID(model.Id); //BusinessWorkflowBase.ValidateRequiredString(model.Name, nameof(model.Name)); // Find existing entity // ReSharper disable once PossibleInvalidOperationException var existingEntity = EpisodesRepository.Get(model.Id.Value); // Check if we would be applying identical information, if we are, just return the original // ReSharper disable once SuspiciousTypeConversion.Global if (EpisodeMapper.AreEqual(model, existingEntity)) { return(EpisodeMapper.MapToModel(existingEntity)); } // Map model to an existing entity EpisodeMapper.MapToEntity(model, ref existingEntity); existingEntity.UpdatedDate = BusinessWorkflowBase.GenDateTime; // Update it EpisodesRepository.Update(EpisodeMapper.MapToEntity(model)); // Try to Save Changes EpisodesRepository.SaveChanges(); // Return the new value return(Get(existingEntity.Id)); }
public IEpisodeModel Get(string key) { BusinessWorkflowBase.ValidateRequiredKey(key); return(EpisodeMapper.MapToModel(EpisodesRepository.Get(key))); }
public IEpisodeModel Get(int id) { BusinessWorkflowBase.ValidateRequiredID(id); return(EpisodeMapper.MapToModel(EpisodesRepository.Get(id))); }