예제 #1
0
        public void Create_FeedbackPassed_FeedbackCreated()
        {
            // Arrange
            var newFeedback = new FeedbackBuilder()
                              .Build();

            var emailMessage = new EmailMessageBuilder().Build();

            MockMailService(emailMessage);
            MockUserService();

            var sut = BuildSUT();

            // Act
            sut.Create(newFeedback);

            // Assert
            VerifyCreateFeedback(
                newFeedback,
                Times.Once(),
                "Parameter feedback is not equal to Instance of feedback");
            VerifySaveFeedback(
                newFeedback,
                Times.Once(),
                "DB should not be updated");
        }
예제 #2
0
        public void Reply_NoReplyRights_DbNotChanged()
        {
            // Arrange
            MockAuthServiceThrowsException(AuthOperations.Feedbacks.Reply);
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            var sut = BuildSUT();

            // Act
            sut.Reply(EXISTING_ID, MESSAGE);

            // Assert
            VerifyEditFeedback(feedback, Times.Never());
            VerifyCheckAccess(AuthOperations.Feedbacks.Reply, Times.Once());
        }
예제 #3
0
        public void GetDetails_NewFeedback_UpdatedFeedbackStatusToRead()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockGetFeedbackByIdQuery(feedback);

            var sut = BuildSUT();

            // Act
            sut.GetDetails(EXISTING_ID);

            // Assert
            VerifyEditFeedback(feedback, Times.Once());
        }
예제 #4
0
        public void GetById_FeedbackExists_FeedbackReturned()
        {
            // Arrange
            var expected = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockGetFeedbackByIdQuery(expected);

            var sut = BuildSUT();

            // Act
            var actual = sut.Get(EXISTING_ID);

            // Assert
            TestHelper.AreEqual <Feedback>(expected, actual, new FeedbackComparer());
        }
예제 #5
0
        public void GetDetails_NoReadRights_DbNotChanged()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockAuthServiceThrowsException(AuthOperations.Feedbacks.Read);

            var sut = BuildSUT();

            // Act
            sut.GetDetails(EXISTING_ID);

            // Assert
            VerifyEditFeedback(feedback, Times.Never());
            VerifyCheckAccess(AuthOperations.Feedbacks.Read, Times.Once());
        }
예제 #6
0
        public void Close_NewFeedback_UpdatedFeedbackStatusToClose()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockGetFeedbackByIdQuery(feedback);

            MockCurrentUser(VALID_USER_ID);
            var sut = BuildSUT();

            // Act
            sut.Close(EXISTING_ID);

            // Assert
            VerifyEditFeedback(feedback, Times.Once());
        }
        public void Close_NoCloseRights_DbNotChanged()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockAuthServiceThrowsException(AuthOperations.Feedbacks.Close);

            var sut = BuildSUT();

            // Act
            Action act = () => sut.Close(EXISTING_ID);

            // Assert
            act.Should().Throw <AuthorizationException>();
            VerifyEditFeedback(feedback, Times.Never());
            VerifyCheckAccess(AuthOperations.Feedbacks.Close, Times.Once());
        }
예제 #8
0
        public void Reply_ClosedFeedback_DbNotChanged()
        {
            // Arrange
            var feedback = new FeedbackBuilder()
                           .WithId(EXISTING_ID)
                           .WithStatus(FeedbackStatusEnum.Closed)
                           .Build();

            MockGetFeedbackByIdQuery(feedback);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            sut.Reply(EXISTING_ID, MESSAGE);

            // Assert
            VerifyEditFeedback(feedback, Times.Never());
        }
예제 #9
0
        public void Reply_ClosedFeedback_InvalidOperationExceptionThrown()
        {
            // Arrange
            var feedback = new FeedbackBuilder()
                           .WithId(EXISTING_ID)
                           .WithStatus(FeedbackStatusEnum.Closed)
                           .Build();

            MockGetFeedbackByIdQuery(feedback);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act => Assert
            Assert.Throws <InvalidOperationException>(
                () =>
                sut.Reply(EXISTING_ID, MESSAGE),
                "Feedback status can't be changed to this status");
        }
예제 #10
0
        public void Reply_NewFeedback_UpdatedFeedbackStatusToAnswered()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockGetFeedbackByIdQuery(feedback);
            var emailMessage = new EmailMessageBuilder().Build();

            MockMailService(emailMessage);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            sut.Reply(EXISTING_ID, MESSAGE);

            // Assert
            VerifyEditFeedback(feedback, Times.Once());
        }
예제 #11
0
        public void Close_NewFeedback_LastUpdateInfoSet()
        {
            // Arrange
            var feedback = new FeedbackBuilder()
                           .WithId(EXISTING_ID)
                           .Build();

            MockGetFeedbackByIdQuery(feedback);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            sut.Close(EXISTING_ID);

            // Assert
            VerifyAdminName(feedback, TEST_NAME);
            VerifyEditFeedback(feedback, Times.Once());
        }
예제 #12
0
        public void Update_FeedbackPassed_FeedbackUpdated()
        {
            // Arrange
            var actual = new FeedbackBuilder()
                         .Build();
            var expected = new FeedbackBuilder()
                           .WithDate(_feedbackTestDate)
                           .Build();

            MockUserService();

            var sut = BuildSUT();

            // Act
            sut.Create(actual);

            // Assert
            AssertFeedbackAreEquals(expected, actual);
        }
        public void Close_ClosedFeedback_InvalidOperationExceptionThrown()
        {
            // Arrange
            var feedback = new FeedbackBuilder()
                           .WithId(EXISTING_ID)
                           .WithStatus(FeedbackStatusEnum.Closed)
                           .Build();

            MockGetFeedbackByIdQuery(feedback);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            Action act = () => sut.Close(EXISTING_ID);

            //Assert
            act.Should().Throw <InvalidOperationException>("Feedback status can't be changed to this status");
        }
예제 #14
0
        public void Reply_NewFeedback_LastUpdateInfoSet()
        {
            // Arrange
            var feedback = new FeedbackBuilder().WithId(EXISTING_ID).Build();

            MockGetFeedbackByIdQuery(feedback);
            var emailMessage = new EmailMessageBuilder().Build();

            MockMailService(emailMessage);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            sut.Reply(EXISTING_ID, MESSAGE);

            // Assert
            VerifyAdminName(feedback, TEST_NAME);
            VerifyEditFeedback(feedback, Times.Once());
        }
        public void Reply_ClosedFeedback_DbNotChanged()
        {
            // Arrange
            var feedback = new FeedbackBuilder()
                           .WithId(EXISTING_ID)
                           .WithStatus(FeedbackStatusEnum.Closed)
                           .Build();

            MockGetFeedbackByIdQuery(feedback);
            MockCurrentUser(VALID_USER_ID);

            var sut = BuildSUT();

            // Act
            Action act = () => sut.Reply(EXISTING_ID, MESSAGE);

            // Assert
            act.Should().Throw <InvalidOperationException>();

            VerifyEditFeedback(feedback, Times.Never());
        }