public void Question_EditingWithValidDataWithinDeadline_Successfully() { // Arrange - Build Question var target = new QuestionBuilder().SetupValidQuestion().Build(); // Arrange - Edit Data string editedTitle = "TitleNormal"; string editedBody = "BodyNormal"; int editedTagCount = 5; var limits = new LimitsBuilder().Build(); var editedTags = new TagBuilder().Build(editedTagCount); // Act target.Edit(target.User, editedTitle, editedBody, editedTags, limits); var result = target; // Assert Assert.NotEqual(default(Guid), result.Id); Assert.Equal(editedTitle, result.Title); Assert.Equal(editedBody, result.Body); Assert.False(result.HasAcceptedAnswer); Assert.Empty(result.Answers); Assert.Empty(result.Comments); Assert.Equal(5, result.QuestionTags.Count()); }
public void Question_EditingWithInvalidData_FailsValidation(string userId, int tagCount, string title, string body) { // Arrange - Build Question var user = new UserBuilder().BuildUser(new Guid(userId)).Build(); var target = new QuestionBuilder().SetupValidQuestion().Build(); var limits = new LimitsBuilder().Build(); // Arrange - Edit Data var editedTags = new TagBuilder().Build(tagCount); // Act Assert.Throws <BusinessException>(() => target.Edit(user, title, body, editedTags, limits)); }
public void Question_EditingOutsideDeadline_Fails() { // Arrange - Build Question, 1 minute after deadline. var limits = new LimitsBuilder().Build(); var target = new QuestionBuilder() .SetupValidQuestion() .MakeTimeGoBy() .Build(); // Arrange - Edit Data string editedTitle = "TitleNormal"; string editedBody = "BodyNormal"; int editedTagCount = 5; var editedTags = new TagBuilder().Build(editedTagCount); // Act Assert.Throws <BusinessException>(() => target.Edit(target.User, editedTitle, editedBody, editedTags, limits)); }