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()); }
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); }
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()); }