Exemple #1
0
        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());
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }