public async Task <IActionResult> Cancel(Guid id, [FromBody] CancelMeetupCommand command, CancellationToken cancellationToken) { command.MeetupId = id; await _mediator.Send(command, cancellationToken); return(Ok()); }
public async Task Should_ThrowException_When_CancelingMeetup_ToCompletedMeetup() { var mockIdentityService = new Mock <IIdentityService>(); mockIdentityService.Setup((x) => x.GetUserId()).Returns("123"); var mockMeetupPolicy = new Mock <IMeetupPolicy>(); mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { }); var meetup = new Meetup( organizerId: "123", subject: "DDD", when: DateTime.Now.AddDays(1), description: "DDD Practices", location: new Location("YTÜ Teknopark"), policy: mockMeetupPolicy.Object); _fixture.dbContext.Add(meetup); meetup.Complete(); var meetupRepository = new MeetupRepository(_fixture.dbContext); var cancelMeetupCommandHandler = new CancelMeetupCommandHandler(meetupRepository, mockIdentityService.Object); var cancellationToken = new CancellationToken(); var cancelMeetupCommand = new CancelMeetupCommand { MeetupId = meetup.Id }; var exception = await Assert.ThrowsAsync <MeetupDomainException>(async() => { await cancelMeetupCommandHandler.Handle(cancelMeetupCommand, cancellationToken); }); Assert.Equal("Completed meetup cannot be cancel", exception.Message); }
public async Task Should_Succes_When_CancelingMeetup() { var mockIdentityService = new Mock <IIdentityService>(); mockIdentityService.Setup((x) => x.GetUserId()).Returns("123"); var mockMeetupPolicy = new Mock <IMeetupPolicy>(); mockMeetupPolicy.Setup((x) => x.CheckCanDefineMeetup(It.IsAny <string>(), It.IsAny <DateTime>())).Callback(() => { }); var meetup = new Meetup( organizerId: "123", subject: "DDD", when: DateTime.Now.AddDays(1), description: "DDD Practices", location: new Location("YTÜ Teknopark"), policy: mockMeetupPolicy.Object); _fixture.dbContext.Add(meetup); var meetupRepository = new MeetupRepository(_fixture.dbContext); var cancelMeetupCommandHandler = new CancelMeetupCommandHandler(meetupRepository, mockIdentityService.Object); var cancellationToken = new CancellationToken(); var cancelMeetupCommand = new CancelMeetupCommand { MeetupId = meetup.Id }; await cancelMeetupCommandHandler.Handle(cancelMeetupCommand, cancellationToken); var result = await _fixture.dbContext.Meetups.FindAsync(meetup.Id); Assert.True(result.Cancelled); }