public void AddMovieParticipantShouldCorrectlyAddParticipantToMovie_WhenCalledWithValidData() { // Assert var effort = new MovieAppDBContext( Effort.DbConnectionFactory.CreateTransient()); var mapperMock = new Mock <IMapper>(); var movieObject = new Movie() { Title = "Test Movie", Year = 1990 }; var participantObject = new Participant() { FirstName = "Arnold", LastName = "Ivanov" }; effort.Movies.Add(movieObject); effort.Participants.Add(participantObject); effort.SaveChanges(); var participantDto = new ParticipantModel() { ParticipantId = participantObject.ParticipantId, FirstName = participantObject.FirstName, LastName = participantObject.LastName }; var movieDto = new MovieModel() { MovieId = movieObject.MovieId, Title = movieObject.Title, Runtime = movieObject.Runtime }; var roleName = "Actor"; // Act var sut = new MovieService(effort, mapperMock.Object); sut.AddMovieParticipant(movieDto, participantDto, roleName); // Assert var participantAddedToMovie = movieObject.Participants.FirstOrDefault(); var movieAddedToParticipant = participantObject.Movies.FirstOrDefault(); var roleIsCorrect = effort.Roles.FirstOrDefault().RoleName == "Actor"; // Unit test should fail for only one reason // either change the method to be SRP or separate the test into 3 parts Assert.IsTrue(participantAddedToMovie == participantObject); Assert.IsTrue(movieAddedToParticipant == movieObject); Assert.IsTrue(roleIsCorrect); }
public void GetAllParticipantsPerMovieShould_ReturnCorrectParticipants() { // Arrange var effortContext = new MovieAppDBContext( Effort.DbConnectionFactory.CreateTransient()); var mapperMock = new Mock <IMapper>(); var sut = new MovieService(effortContext, mapperMock.Object); var movieToAdd = new Movie() { Title = "Test title", Runtime = 120 }; var movieDto = new MovieModel() { MovieId = movieToAdd.MovieId, Title = movieToAdd.Title, Runtime = movieToAdd.Runtime }; effortContext.Movies.Add(movieToAdd); for (int i = 0; i < 10; i++) { var participant = new Participant() { FirstName = "FirstName" + i, LastName = "LastName" + i }; effortContext.Participants.Add(participant); participant.Movies.Add(movieToAdd); var participant2 = effortContext.Participants .Where(x => x.FirstName == "FirstName" + i) .FirstOrDefault(); movieToAdd.Participants.Add(participant2); sut.AddMovieParticipant(movieDto, new ParticipantModel() { FirstName = participant.FirstName, LastName = participant.LastName }, $"someRole + {i}"); effortContext.SaveChanges(); } var participantsDTOsListToReturn = new List <ParticipantModel>(); //effortContext.SaveChanges(); mapperMock.Setup(x => x.Map <IList <ParticipantModel> >( It.IsAny <IList <Participant> >())) .Returns(participantsDTOsListToReturn); // Act & Assert var result = sut.GetAllParticipantsPerMovie(movieDto); Assert.AreEqual(10, result.Count()); }