public static LiveUpdateKind DetermineLiveUpdateKind(Vacancy vacancy, DateTime?proposedClosingDate, DateTime?proposedStartDate) { LiveUpdateKind updateKind = LiveUpdateKind.None; if (vacancy.ClosingDate != proposedClosingDate) { updateKind |= LiveUpdateKind.ClosingDate; } if (vacancy.StartDate != proposedStartDate) { updateKind |= LiveUpdateKind.StartDate; } return(updateKind); }
public Task UpdatePublishedVacancyAsync(Vacancy vacancy, VacancyUser user, LiveUpdateKind updateKind) { var command = new UpdateLiveVacancyCommand(vacancy, user, updateKind); return(_messaging.SendCommandAsync(command)); }
public async Task GivenLiveVacancyUpdatedEventWithDateChange_NotifyLiveVacancyChanged(LiveUpdateKind updateKind) { var @event = new LiveVacancyUpdatedEvent { VacancyId = _existingVacancy.Id, VacancyReference = _existingVacancy.VacancyReference.Value, UpdateKind = updateKind }; await _handler.Handle(@event, CancellationToken.None); _mockNotifier .Verify(x => x.LiveVacancyChanged(_existingVacancy), Times.Once); }
public async Task WhenClosingDateHasNotChanged_ShouldNotPublishLiveVacancyClosingDateChangedEvent(LiveUpdateKind updateKind) { var user = new VacancyUser(); var updatedVacancy = CreateVacancy(); var message = new UpdateLiveVacancyCommand(updatedVacancy, user, updateKind); await _handler.Handle(message, CancellationToken.None); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <LiveVacancyClosingDateChangedEvent>()), Times.Never); }
public async Task WhenLiveVacancyClosingDateHasChanged_ShouldPublishLiveVacancyClosingDateChangedEvent(LiveUpdateKind updateKind) { var user = new VacancyUser(); var updatedVacancy = CreateVacancy(); var message = new UpdateLiveVacancyCommand(updatedVacancy, user, updateKind); await _handler.Handle(message, CancellationToken.None); _mockMessaging .Verify(x => x.PublishEvent( It.Is <LiveVacancyClosingDateChangedEvent>(p => p.NewClosingDate == updatedVacancy.ClosingDate.Value && p.VacancyId == _vacancyId && p.VacancyReference == updatedVacancy.VacancyReference ))); }
public UpdateLiveVacancyCommand(Vacancy vacancy, VacancyUser user, LiveUpdateKind updateKind) { Vacancy = vacancy; User = user; UpdateKind = updateKind; }