Exemple #1
0
        public void DeleteAsync_SurveyHasNoAnswers_DeletesSurvey()
        {
            var survey = new Survey()
            {
                Id = Guid.NewGuid()
            };

            var dbMock         = new Mock <IApplicationDBContext>();
            var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new List <Survey>()
            {
                survey
            });

            dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object);
            var answerDataMock = new Mock <DbSet <Answer> >().SetupData();

            dbMock.SetupGet(d => d.Answers).Returns(answerDataMock.Object);

            var subject = new SurveyService(dbMock.Object);

            subject.DeleteAsync(survey).Wait();

            surveyDataMock.Verify(d => d.Remove(survey));
            dbMock.Verify(d => d.SaveChangesAsync());
        }
Exemple #2
0
        public void DeleteAsync_SurveyIsNull_ThrowsException()
        {
            var dbMock = new Mock <IApplicationDBContext>();

            var subject = new SurveyService(dbMock.Object);

            var ex = Helpers.Catch <ArgumentNullException>(() =>
            {
                subject.DeleteAsync(null).Wait();
            });

            Assert.AreEqual("survey", ex.ParamName);
        }
Exemple #3
0
        public void DeleteAsync_SurveyHasAnswers_DeletesAnswersAndSurvey()
        {
            var survey = new Survey()
            {
                Id = Guid.NewGuid()
            };
            var answer1 = new Answer()
            {
                SurveyId = survey.Id
            };
            var answer2 = new Answer()
            {
                SurveyId = survey.Id
            };
            var answers = new List <Answer>()
            {
                answer1,
                answer2,
                new Answer()
                {
                    SurveyId = Guid.NewGuid()
                }
            };

            var dbMock         = new Mock <IApplicationDBContext>();
            var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new List <Survey>()
            {
                survey
            });

            dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object);
            var answerDataMock = new Mock <DbSet <Answer> >().SetupData(answers);

            dbMock.SetupGet(d => d.Answers).Returns(answerDataMock.Object);

            var subject = new SurveyService(dbMock.Object);

            subject.DeleteAsync(survey).Wait();

            surveyDataMock.Verify(d => d.Remove(survey));
            answerDataMock.Verify(d => d.Remove(answer1));
            answerDataMock.Verify(d => d.Remove(answer2));
            answerDataMock.Verify(d => d.Remove(It.IsAny <Answer>()), Times.Exactly(2));
            dbMock.Verify(d => d.SaveChangesAsync());
        }