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); }
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); }