public void AddTicketsToBuyerWhenIssuingTicketsSucceeds()
        {
            var tickets        = BuildTickets();
            var concert        = SetUpConcertWhichIssueTickets(tickets);
            var buyer          = new TicketsBuyer("1", "Buyer name");
            var wantedQuantity = new TicketQuantity(5);
            var service        = new TicketsService();

            service.SellTickets(concert, buyer, wantedQuantity);

            Assert.NotEmpty(buyer.Purchases);
        }
        public void ReturnFailureWhenIssuingTicketsFails()
        {
            var errorMessage   = "Some error occured";
            var concert        = SetUpConcertWhichDoesNotIssueTickets(errorMessage);
            var buyer          = new TicketsBuyer("1", "Buyer name");
            var wantedQuantity = new TicketQuantity(5);
            var service        = new TicketsService();

            var purchase = service.SellTickets(concert, buyer, wantedQuantity);

            Assert.True(purchase.IsFailure);
            Assert.Equal(errorMessage, purchase.Error);
        }
        public void ReturnPurchaseWhenIssuingTicketsSucceeds()
        {
            var tickets        = BuildTickets();
            var concert        = SetUpConcertWhichIssueTickets(tickets);
            var buyer          = new TicketsBuyer("1", "Buyer name");
            var wantedQuantity = new TicketQuantity(5);
            var service        = new TicketsService();

            var purchase = service.SellTickets(concert, buyer, wantedQuantity);

            Assert.True(purchase.IsSuccess);
            Assert.Equal(buyer.Id, purchase.Value.Buyer.Id);
            Assert.Equal(tickets, purchase.Value.Tickets);
        }