private async Task FailureResponse(ConsumeContext <VerifyAvailableTimeslotEvent> context, string reason) { _roomContext.ChangeTracker.Entries() .Where(e => e.Entity != null).ToList() .ForEach(e => e.State = EntityState.Detached); var @eventFailed = new TimeslotReservationFailedEvent() { EventId = context.Message.EventId, Reason = reason }; await _eventService.SaveEventAndDbContextChangesAsync(@eventFailed); await _eventService.PublishEventAsync(@eventFailed); }
public async Task Consume_EventDoesNotExistSomehow_IgnoresEvent() { SetupAnEntireClub(); var e = CreateEvent(); var @event = new TimeslotReservationFailedEvent() { EventId = Guid.NewGuid(), Reason = "Very bad reason" }; await SendEvent(@event); await _publishEndpoint.Received(0).Publish( Arg.Any <EventCreationFailedEvent>()); }
public async Task Consume_EventDoesExistInWrongStatus_IsIgnored() { SetupAnEntireClub(); var e = CreateEvent(EventStatus.Failed); var @event = new TimeslotReservationFailedEvent() { EventId = e.EventId, }; await SendEvent(@event); using (var context = _factory.CreateContext()) { var dbEvent = context.Events.Find(e.EventId); Assert.That(dbEvent.Status, Is.EqualTo(EventStatus.Failed)); } await _publishEndpoint.Received(0).Publish( Arg.Any <EventCreatedEvent>()); }
public async Task Consume_EventDoesExist_ChangesStatus() { SetupAnEntireClub(); var e = CreateEvent(); var @event = new TimeslotReservationFailedEvent() { EventId = e.EventId, Reason = "Very bad reason" }; await SendEvent(@event); using (var context = _factory.CreateContext()) { var dbEvent = context.Events.Find(e.EventId); Assert.That(dbEvent.Status, Is.EqualTo(EventStatus.Failed)); } await _publishEndpoint.Received(1).Publish( Arg.Is <EventCreationFailedEvent>(e => e.Reason == "Very bad reason")); }