public void CreateConcertCommandHandler_Success()
        {
            Mock <IConcertRepository>     concertRepository   = new Mock <IConcertRepository>();
            Mock <IEventPublisherFactory> eventHandlerFactory = new Mock <IEventPublisherFactory>();
            Mock <IConcertFactory>        concertFactory      = new Mock <IConcertFactory>();
            Guid concertId = Guid.NewGuid();

            concertRepository.Setup(x => x.GetNextId()).Returns(concertId);

            CreateConcertCommand createConcertCommand = new CreateConcertCommand(2500, "SPENS,Novi Sad", DateTime.Now, "Koncert godine");
            Concert concert = new Concert(createConcertCommand.Place, createConcertCommand.MaximumNumberOfTickets, createConcertCommand.Date, createConcertCommand.Title, concertId);

            concertFactory.Setup(x => x.Create(createConcertCommand.Place, createConcertCommand.MaximumNumberOfTickets, createConcertCommand.Date, createConcertCommand.Title, concertId)).Returns(concert);
            Mock <ConsumeContext <CreateConcertCommand> > context = new Mock <ConsumeContext <CreateConcertCommand> >();

            context.Setup(x => x.Message).Returns(createConcertCommand);
            Mock <ILogger> logger = new Mock <ILogger>();
            CreateConcertCommandHandler createConcertCommandHandler = new CreateConcertCommandHandler(concertRepository.Object, eventHandlerFactory.Object, concertFactory.Object, logger.Object);

            Assert.True(concert.Changes.Count == 1);
            var createdEvent = (ConcertCreatedDomainEvent)concert.Changes[0];

            Assert.True(createdEvent.ConcertId == concertId);
            Assert.True(createdEvent.Date == createConcertCommand.Date);
            Assert.True(createdEvent.NumberOfTickets == createConcertCommand.MaximumNumberOfTickets);
            Assert.True(createdEvent.Place == createConcertCommand.Place);
            Assert.True(createdEvent.Title == createConcertCommand.Title);
        }
예제 #2
0
        public IActionResult Create(CreateConcertViewModel createConcertViewModel)
        {
            if (string.IsNullOrEmpty(createConcertViewModel.Title))
            {
                return(View(createConcertViewModel));
            }

            CreateConcertCommand createConcertCommand = new CreateConcertCommand(createConcertViewModel.NumberOfTickets, createConcertViewModel.Place
                                                                                 , DateTime.Now, createConcertViewModel.Title);

            _bus.Publish(createConcertCommand);

            return(RedirectToAction("Index"));
        }