public void EditAsync_CoOwnerIncludesPerson_AddsPerson() { var tyler = new ApplicationUser() { UserName = "******" }; var shannon = new ApplicationUser() { UserName = "******" }; var survey = new Survey() { Owner = tyler }; var newValues = new SurveyEditViewModel() { SharedUsers = new[] { "Shannon" } }; var dbMock = new Mock <IApplicationDBContext>(); var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new[] { survey }); dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object); var usersMock = new Mock <DbSet <ApplicationUser> >().SetupData(new[] { tyler, shannon }); dbMock.SetupGet(d => d.Users).Returns(usersMock.Object); var subject = new SurveyService(dbMock.Object); subject.EditAsync(survey, newValues).Wait(); Assert.AreEqual(1, survey.SharedUsers.Count); dbMock.Verify(d => d.SaveChangesAsync()); }
public void EditAsync_CoOwnerIncludesOwner_ThrowsException() { var tyler = new ApplicationUser() { UserName = "******" }; var survey = new Survey() { Owner = tyler }; var newValues = new SurveyEditViewModel() { SharedUsers = new[] { "Tyler" } }; var dbMock = new Mock <IApplicationDBContext>(); var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new[] { survey }); dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object); var usersMock = new Mock <DbSet <ApplicationUser> >().SetupData(new[] { tyler }); dbMock.SetupGet(d => d.Users).Returns(usersMock.Object); var subject = new SurveyService(dbMock.Object); var ex = Helpers.Catch <SurveyException>(() => { subject.EditAsync(survey, newValues).Wait(); }); Assert.AreEqual("You cannot be a co-admin on a survey you own.", ex.Message); Assert.AreEqual(0, survey.SharedUsers.Count); dbMock.Verify(d => d.SaveChangesAsync(), Times.Never); }
public void EditAsync_CoOwnerIncludesMysteryPerson_ThrowsException() { var tyler = new ApplicationUser() { UserName = "******" }; var survey = new Survey() { Owner = tyler }; var newValues = new SurveyEditViewModel() { SharedUsers = new[] { "Shannon", "Bill" } }; var dbMock = new Mock <IApplicationDBContext>(); var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new[] { survey }); dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object); var usersMock = new Mock <DbSet <ApplicationUser> >().SetupData(new[] { tyler }); dbMock.SetupGet(d => d.Users).Returns(usersMock.Object); var subject = new SurveyService(dbMock.Object); var ex = Helpers.Catch <SurveyException>(() => { subject.EditAsync(survey, newValues).Wait(); }); Assert.AreEqual("Unknown users: Shannon, Bill. Please make sure these users have signed into Mood before.", ex.Message); Assert.AreEqual(0, survey.SharedUsers.Count); dbMock.Verify(d => d.SaveChangesAsync(), Times.Never); }
public void EditAsync_NewNameIsWhitespace_ThrowsException() { var survey = new Survey() { Name = "oldName" }; var newValues = new SurveyEditViewModel() { Name = "\n \t" }; var dbMock = new Mock <IApplicationDBContext>(); var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new[] { survey }); dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object); var subject = new SurveyService(dbMock.Object); var ex = Helpers.Catch <SurveyException>(() => { subject.EditAsync(survey, newValues).Wait(); }); Assert.AreEqual("Name must not be whitespace", ex.Message); Assert.AreEqual("oldName", survey.Name); dbMock.Verify(d => d.SaveChangesAsync(), Times.Never); }
public void EditAsync_NewValuesNull_ThrowsException() { var dbMock = new Mock <IApplicationDBContext>(); var subject = new SurveyService(dbMock.Object); var ex = Helpers.Catch <ArgumentNullException>(() => { subject.EditAsync(new Survey(), null).Wait(); }); Assert.AreEqual("newValues", ex.ParamName); }
public void EditAsync_SurveyNull_ThrowsException() { var dbMock = new Mock <IApplicationDBContext>(); var subject = new SurveyService(dbMock.Object); var ex = Helpers.Catch <ArgumentNullException>(() => { subject.EditAsync(null, new SurveyEditViewModel()).Wait(); }); Assert.AreEqual("survey", ex.ParamName); }
public void EditAsync_NewPublicResultsValue_UpdatesPublicResults() { var survey = new Survey() { PublicResults = false }; var newValues = new SurveyEditViewModel() { PublicResults = true }; var dbMock = new Mock <IApplicationDBContext>(); var subject = new SurveyService(dbMock.Object); subject.EditAsync(survey, newValues).Wait(); Assert.AreEqual(true, survey.PublicResults); dbMock.Verify(d => d.SaveChangesAsync()); }
public void EditAsync_NewNameIsNull_NullsTheName() { var survey = new Survey() { Name = "oldName" }; var newValues = new SurveyEditViewModel() { Name = null }; var dbMock = new Mock <IApplicationDBContext>(); var surveyDataMock = new Mock <DbSet <Survey> >().SetupData(new[] { survey }); dbMock.SetupGet(d => d.Surveys).Returns(surveyDataMock.Object); var subject = new SurveyService(dbMock.Object); subject.EditAsync(survey, newValues).Wait(); Assert.IsNull(survey.Name); dbMock.Verify(d => d.SaveChangesAsync()); }