コード例 #1
0
        public void BuyTickets_TicketsBought()
        {
            Mock <ConsumeContext <BuyConcertTicketsCommand> > context = new Mock <ConsumeContext <BuyConcertTicketsCommand> >();
            Guid concertGuid = Guid.NewGuid();

            int numberOfBoughtTickets = 2;


            BuyConcertTicketsCommand concertTicketCommand = new BuyConcertTicketsCommand(2, 5, concertGuid);

            context.Setup(x => x.Message).Returns(concertTicketCommand);

            Mock <IConcertRepository> concertRepository = new Mock <IConcertRepository>();
            Concert concert = new Concert("SPENS,Novi sad", 5000, DateTime.Now, "Concert of the year", concertGuid);

            concertRepository.Setup(x => x.TryFindBy(concertGuid, out concert)).Returns(true);
            Mock <ILogger> logger = new Mock <ILogger>();

            Mock <IEventPublisherFactory> eventPublisherFactory = new Mock <IEventPublisherFactory>();
            Mock <IEventPublisher>        eventPublisher        = new Mock <IEventPublisher>();

            eventPublisherFactory.Setup(x => x.CreatePublisher(It.IsAny <DomainEvent>())).Returns(eventPublisher.Object);

            BuyConcertTicketsCommandHandler commandHandler = new BuyConcertTicketsCommandHandler(concertRepository.Object, eventPublisherFactory.Object, logger.Object);

            commandHandler.Consume(context.Object);

            Assert.True(concert.BoughtTickets.Quantity == numberOfBoughtTickets);
        }
コード例 #2
0
        public IActionResult Buy(BuyTicketsViewModel buyTicketsViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(buyTicketsViewModel));
            }

            BuyConcertTicketsCommand buyTicketsCommand = new BuyConcertTicketsCommand(buyTicketsViewModel.TicketNumber, _userId, buyTicketsViewModel.ConcertId);

            _bus.Publish(buyTicketsCommand);

            return(RedirectToAction("Index"));
        }
コード例 #3
0
        public void BuyTickets_ConcertDoesNotExists()
        {
            Mock <ConsumeContext <BuyConcertTicketsCommand> > context = new Mock <ConsumeContext <BuyConcertTicketsCommand> >();
            Guid guid = Guid.NewGuid();
            BuyConcertTicketsCommand concertTicketCommand = new BuyConcertTicketsCommand(2, 5, guid);

            context.Setup(x => x.Message).Returns(concertTicketCommand);

            Mock <IConcertRepository> concertRepository = new Mock <IConcertRepository>();
            Concert concert;

            concertRepository.Setup(x => x.TryFindBy(guid, out concert)).Returns(false);

            Mock <IEventPublisherFactory> eventHandlerFactory = new Mock <IEventPublisherFactory>();
            Mock <ILogger> logger = new Mock <ILogger>();

            BuyConcertTicketsCommandHandler commandHandler = new BuyConcertTicketsCommandHandler(concertRepository.Object, eventHandlerFactory.Object, logger.Object);

            commandHandler.Consume(context.Object);

            concertRepository.Verify(x => x.Save(It.IsAny <Concert>()), Times.Never);
        }