public async void UpdateTheRequestWithTheCorrectStatus()
        {
            var request = new Request { RequestId = Guid.NewGuid(), Status = RequestStatus.Unassigned };
            Context.Requests.Add(request);
            Context.SaveChanges();

            var message = new ChangeRequestStatusCommand { RequestId = request.RequestId, NewStatus = RequestStatus.Assigned };

            var sut = new ChangeRequestStatusCommandHandler(Context, Mock.Of<IMediator>());
            await sut.Handle(message);

            var newStatus = Context.Requests.Single(x => x.RequestId == request.RequestId).Status;
            Assert.Equal(newStatus, request.Status);
        }
        public async void Handle_WithNewStatusAssignedInMessage_UpdatesRequest()
        {
            var query = new ChangeRequestStatusCommand
            {
                RequestId = _existingRequestId2,
                NewStatus = RequestStatus.Assigned
            };

            var handler = new ChangeRequestStatusCommandHandler(Context);

            var result = await handler.Handle(query);

            var requestToValidate = Context.Requests.First(rec => rec.RequestId == _existingRequestId2);

            requestToValidate.Status.ShouldBe(RequestStatus.Assigned);
            result.ShouldBeTrue();
        }
        public async void PublishRequestStatusChangedNotificationWithTheCorrectDataOnTheMessage()
        {
            const RequestStatus originalRequestStatus = RequestStatus.Unassigned;
            var originalRequest = new Request { RequestId = Guid.NewGuid(), Status = originalRequestStatus };
            Context.Requests.Add(originalRequest);
            Context.SaveChanges();

            var message = new ChangeRequestStatusCommand { RequestId = originalRequest.RequestId, NewStatus = RequestStatus.Assigned };

            var mediator = new Mock<IMediator>();

            var sut = new ChangeRequestStatusCommandHandler(Context, mediator.Object);
            await sut.Handle(message);

            mediator.Verify(x => x.PublishAsync(It.Is<RequestStatusChangedNotification>(y => y.RequestId == originalRequest.RequestId &&
                y.OldStatus == originalRequestStatus &&
                y.NewStatus == message.NewStatus)));
        }