public void ShouldSendWellFormedAlert() { // Arrange. const ApplicationStatuses currentStatus = ApplicationStatuses.Submitted; const ApplicationStatuses newStatus = ApplicationStatuses.Successful; const int legacyApplicationId = 3456789; const string unsuccessfulReason = "You do not have the required grades"; ApplicationStatusChanged applicationStatusChanged = null; var serviceBus = new Mock <IServiceBus>(); serviceBus.Setup(mock => mock .PublishMessage(It.IsAny <ApplicationStatusChanged>())) .Callback <ApplicationStatusChanged>(each => { applicationStatusChanged = each; }); var strategy = new ApplicationStatusAlertStrategyBuilder() .With(serviceBus) .Build(); var summary = new ApplicationStatusSummaryBuilder(newStatus) .WithLegacyApplicationId(legacyApplicationId) .WithUnsuccessfulReason(unsuccessfulReason) .Build(); // Act. strategy.Send(currentStatus, summary); // Assert. applicationStatusChanged.Should().NotBeNull(); applicationStatusChanged.LegacyApplicationId.Should().Be(legacyApplicationId); applicationStatusChanged.ApplicationStatus.Should().Be(newStatus); applicationStatusChanged.UnsuccessfulReason.Should().Be(unsuccessfulReason); }
public void Send(ApplicationStatuses currentStatus, ApplicationStatusSummary applicationStatusSummary) { if (!applicationStatusSummary.IsLegacySystemUpdate()) { return; } if (currentStatus == applicationStatusSummary.ApplicationStatus) { return; } if (!(applicationStatusSummary.ApplicationStatus == ApplicationStatuses.Successful || applicationStatusSummary.ApplicationStatus == ApplicationStatuses.Unsuccessful)) { return; } var applicationStatusChanged = new ApplicationStatusChanged { LegacyApplicationId = applicationStatusSummary.LegacyApplicationId, ApplicationStatus = applicationStatusSummary.ApplicationStatus, UnsuccessfulReason = applicationStatusSummary.UnsuccessfulReason }; var message = $"Queuing application status changed for LegacyApplicationId: {applicationStatusChanged.LegacyApplicationId} with ApplicationStatus: {applicationStatusChanged.ApplicationStatus}, UnsuccessfulReason: {applicationStatusChanged.UnsuccessfulReason}"; try { _logService.Debug(message); _serviceBus.PublishMessage(applicationStatusChanged); } catch (Exception e) { _logService.Warn(message + " failed!", e); } }
private static void OnApplicationStatusChanged(AppType newStatus) { ApplicationStatusChanged?.Invoke(null, new ChangeAppStatusEventArgs { NewStatus = newStatus }); }