예제 #1
0
        public async Task AcceptOrderCommand_AlreadyAccepted_ShouldThrowException()
        {
            var sut = new AcceptOrderCommandHandler(_fixtures.Context);

            await sut.Handle(new AcceptOrderCommand { OrderId = _fixtures.AcceptedOrder.Id, UserId = UserIdInDb }, CancellationToken.None)

            .ShouldThrowAsync <AlreadyAcceptedException>();
        }
예제 #2
0
        public async Task AcceptOrderCommand_OrderIdIsEmpty_ShouldThrowException()
        {
            var sut = new AcceptOrderCommandHandler(_fixtures.Context);

            await sut.Handle(new AcceptOrderCommand { OrderId = Guid.Empty, UserId = UserIdInDb }, CancellationToken.None)

            .ShouldThrowAsync <NotFoundException>();
        }
예제 #3
0
        public async Task AcceptOrderCommand_UserDoesNotExist_ShouldThrowException()
        {
            var sut = new AcceptOrderCommandHandler(_fixtures.Context);

            _fixtures.AcceptedOrder.AcceptedByUserId = Guid.Empty;

            await sut.Handle(new AcceptOrderCommand { OrderId = _fixtures.AcceptedOrder.Id, UserId = Guid.NewGuid() }, CancellationToken.None)

            .ShouldThrowAsync <NotFoundException>();
        }
예제 #4
0
        public async Task AcceptOrderCommand_ValidParameters_ShouldSetAcceptedByUserIdToId()
        {
            var sut = new AcceptOrderCommandHandler(_fixtures.Context);

            await sut.Handle(new AcceptOrderCommand { OrderId = _fixtures.PendingOrder.Id, UserId = UserIdInDb }, CancellationToken.None);

            var orderInDb = await _fixtures.Context.Order.SingleOrDefaultAsync(o => o.Id == _fixtures.PendingOrder.Id, CancellationToken.None);

            orderInDb.AcceptedByUserId.ShouldBe(UserIdInDb);
        }