コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }