public void ShouldHandleApplicationStatusAlertDueForHousekeeping(
            int dateCreatedOffsetHours, bool shouldHandle)
        {
            // Arrange.
            var communicationId = Guid.NewGuid();
            var dateCreated     = GetHousekeepingDateTime(_housekeepingConfiguration)
                                  .AddHours(-dateCreatedOffsetHours);

            var applicationStatusAlert = new Fixture()
                                         .Build <ApplicationStatusAlert>()
                                         .With(fixture => fixture.EntityId, communicationId)
                                         .With(fixture => fixture.DateCreated, dateCreated)
                                         .Create();

            _mockApplicationStatusAlertRepository
            .Setup(mock => mock
                   .Get(communicationId))
            .Returns(applicationStatusAlert);

            // Act.
            var request = new CommunicationHousekeepingRequest
            {
                CommunicationId   = communicationId,
                CommunicationType = CommunicationTypes.ApplicationStatusAlert
            };

            _housekeeper.Handle(request);

            // Assert.
            _mockApplicationStatusAlertRepository.Verify(mock => mock
                                                         .Delete(applicationStatusAlert), Times.Exactly(shouldHandle ? 1 : 0));

            _mockSuccessor.Verify(mock => mock
                                  .Handle(request), Times.Never);
        }
예제 #2
0
        public void ShouldHandleSavedSearchAlertAlreadyDeleted()
        {
            // Arrange.
            _mockSavedSearchAlertRepository
            .Setup(mock => mock
                   .Get(It.IsAny <Guid>()))
            .Returns(default(SavedSearchAlert));

            // Act.
            var request = new CommunicationHousekeepingRequest
            {
                CommunicationId   = Guid.NewGuid(),
                CommunicationType = CommunicationTypes.SavedSearchAlert
            };

            _housekeeper.Handle(request);

            // Assert.
            _mockSavedSearchAlertRepository.Verify(mock => mock
                                                   .Get(It.IsAny <Guid>()), Times.Once);

            _mockSavedSearchAlertRepository.Verify(mock => mock
                                                   .Delete(It.IsAny <SavedSearchAlert>()), Times.Never);

            _mockSuccessor.Verify(mock => mock
                                  .Handle(request), Times.Never);
        }
        public void ShouldStartHousekeeperChainOfResponsibility()
        {
            // Arrange.
            var request = new CommunicationHousekeepingRequest
            {
                CommunicationId   = Guid.NewGuid(),
                CommunicationType = CommunicationTypes.Unknown
            };

            // Act.
            _housekeeper.Handle(request);

            // Assert.
            _mockApplicationStatusAlertCommunicationHousekeeper.Verify(mock => mock
                                                                       .Handle(request), Times.Once);
        }
        public void ShouldCallSuccessor()
        {
            // Act.
            var request = new CommunicationHousekeepingRequest
            {
                CommunicationId   = Guid.NewGuid(),
                CommunicationType = CommunicationTypes.ExpiringDraftApplicationAlert
            };

            // Act.
            _housekeeper.Handle(request);

            // Assert.
            _mockSuccessor.Verify(mock => mock
                                  .Handle(request), Times.Once);
        }
        public void ShouldTolerateNoSuccessor()
        {
            // Arrange.
            _housekeeper.Successor = null;

            // Act.
            var request = new CommunicationHousekeepingRequest
            {
                CommunicationId   = Guid.NewGuid(),
                CommunicationType = CommunicationTypes.ExpiringDraftApplicationAlert
            };

            _housekeeper.Handle(request);

            // Assert.
            _mockSuccessor.Verify(mock => mock
                                  .Handle(request), Times.Never);
        }