public async Task Should_Succes_When_CreatingMeetup()
        {
            var meetupRepository = new MeetupRepository(_fixture.dbContext);
            var meetupPolicy     = new MeetupPolicy(meetupRepository);

            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("123");

            var createMeetupCommandHandler = new CreateMeetupCommandHandler(meetupRepository, meetupPolicy, mockIdentityService.Object);
            var cancellationToken          = new CancellationToken();

            var createMeetupCommand = new CreateMeetupCommand
            {
                Subject     = "DDD",
                Description = "DDD Practices",
                When        = DateTime.Now.AddDays(5),
                Address     = "YTÜ Teknopark"
            };

            await createMeetupCommandHandler.Handle(createMeetupCommand, cancellationToken);

            Assert.Equal(1, _fixture.dbContext.Meetups.Count());
            Assert.True(_fixture.IsVerifiedMeetupAnnouncedDomainEventHandler);

            _fixture.IsVerifiedMeetupAnnouncedDomainEventHandler = false;
        }
        public async Task Should_ThrowException_When_CreatingMeetup_If_HasMeetupInToday()
        {
            var meetupRepository = new MeetupRepository(_fixture.dbContext);
            var meetupPolicy     = new MeetupPolicy(meetupRepository);

            var mockIdentityService = new Mock <IIdentityService>();

            mockIdentityService.Setup((x) => x.GetUserId()).Returns("123");

            var createMeetupCommandHandler = new CreateMeetupCommandHandler(meetupRepository, meetupPolicy, mockIdentityService.Object);
            var cancellationToken          = new CancellationToken();

            var createMeetupCommand = new CreateMeetupCommand
            {
                Subject     = "DDD",
                Description = "DDD Practices",
                When        = DateTime.Now.AddDays(5),
                Address     = "YTÜ Teknopark"
            };

            var exception = await Assert.ThrowsAsync <MeetupDomainException>(async() =>
            {
                await createMeetupCommandHandler.Handle(createMeetupCommand, cancellationToken);
            });

            Assert.Equal("A maximum of one meetup is defined", exception.Message);
        }
예제 #3
0
        public async Task <IActionResult> Post(Guid id, [FromBody] CreateMeetupCommand command, CancellationToken cancellationToken)
        {
            command.MeetupId = id;

            await _mediator.Send(command, cancellationToken);

            return(Ok());
        }
예제 #4
0
        public IActionResult Create(CreateMeetupCommand request)
        {
            var meetup    = _commandDispatcher.Handle <CreateMeetupCommand, Domain.Meetup>(request);
            var meetupDto = new CreatedMeetupDto
            {
                Id             = meetup.Id,
                Name           = meetup.Name,
                AvailableSeats = meetup.AvailableSeats
            };

            return(CreatedAtAction(nameof(Get), new { id = meetupDto.Id }, meetupDto));
        }
예제 #5
0
        public async Task <IActionResult> Post([FromBody] CreateMeetupCommand command, CancellationToken cancellationToken)
        {
            var id = await _mediator.Send(command, cancellationToken);

            return(Ok(id));
        }