public void should_throw_not_found_exception_when_id_does_not_exist() { var command = new UpdateNotificationDeliveryStatusCommand(Guid.NewGuid(), "1234", DeliveryStatus.Delivered); Assert.ThrowsAsync <NotificationNotFoundException>(() => _handler.Handle(command)); }
public async Task should_throw_mismatch_id_exception_when_id_and_external_id_do_not_match() { var notification = await TestDataManager.SeedSendingNotification(); _notifications.Add(notification); var command = new UpdateNotificationDeliveryStatusCommand(notification.Id, "1234", DeliveryStatus.Delivered); Assert.ThrowsAsync <NotificationIdMismatchException>(() => _handler.Handle(command)); }
public async Task <IActionResult> HandleCallbackAsync(NotificationCallbackRequest notificationCallbackRequest) { var notificationId = notificationCallbackRequest.ReferenceAsGuid(); var deliveryStatus = notificationCallbackRequest.DeliveryStatusAsEnum(); var externalId = notificationCallbackRequest.Id; var command = new UpdateNotificationDeliveryStatusCommand(notificationId, externalId, deliveryStatus); await _commandHandler.Handle(command); return(Ok()); }
public async Task should_update_delivery_status_for_notification() { // Arrange var notification = await TestDataManager.SeedSendingNotification(); _notifications.Add(notification); const DeliveryStatus deliveryStatus = DeliveryStatus.Delivered; var command = new UpdateNotificationDeliveryStatusCommand(notification.Id, notification.ExternalId, deliveryStatus); // Act await _handler.Handle(command); // Assert await using var db = new NotificationsApiDbContext(NotifyBookingsDbContextOptions); var updatedNotification = await db.Notifications.SingleOrDefaultAsync(x => x.Id == notification.Id); updatedNotification.Should().NotBeNull(); updatedNotification.DeliveryStatus.Should().Be(deliveryStatus); }