public async Task PutCheckinReturnsCorrectJsonWhenUsersSignedUpIsNotNullAndCheckinDateTimeIsNull() { const string userId = "userId"; var campaignEvent = new Event { Name = "EventName", Description = "EventDescription" }; var eventSignup = new EventSignup { User = new ApplicationUser { Id = userId } }; campaignEvent.UsersSignedUp.Add(eventSignup); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EventByIdQuery>())).Returns(campaignEvent); var sut = new EventApiController(mediator.Object); sut.SetFakeUser(userId); var expected = $"{{ Event = {{ Name = {campaignEvent.Name}, Description = {campaignEvent.Description} }} }}"; var result = (JsonResult)await sut.PutCheckin(It.IsAny <int>()); Assert.IsType <JsonResult>(result); Assert.Equal(expected, result.Value.ToString()); }
public async Task PutCheckinSendsAddEventSignupCommandAsyncWithCorrectDataWhenUsersSignedUpIsNotNullAndCheckinDateTimeIsNull() { const string userId = "userId"; var utcNow = DateTime.UtcNow; var campaignEvent = new Event(); var eventSignup = new EventSignup { User = new ApplicationUser { Id = userId } }; campaignEvent.UsersSignedUp.Add(eventSignup); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EventByIdQuery>())).Returns(campaignEvent); var sut = new EventApiController(mediator.Object) { DateTimeUtcNow = () => utcNow }; sut.SetFakeUser(userId); await sut.PutCheckin(It.IsAny <int>()); mediator.Verify(x => x.SendAsync(It.Is <AddEventSignupCommandAsync>(y => y.EventSignup == eventSignup))); mediator.Verify(x => x.SendAsync(It.Is <AddEventSignupCommandAsync>(y => y.EventSignup.CheckinDateTime == utcNow))); }
public async Task PutCheckinReturnsHttpNotFoundWhenUnableToFindEventByEventId() { var sut = new EventApiController(Mock.Of <IMediator>()); var result = await sut.PutCheckin(It.IsAny <int>()); Assert.IsType <HttpNotFoundResult>(result); }
public async Task PutCheckinSendsEventByEventIdQueryWithCorrectEventId() { const int eventId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EventByIdQuery>())).Returns(new Event()); var sut = new EventApiController(mediator.Object); await sut.PutCheckin(eventId); mediator.Verify(x => x.Send(It.Is <EventByIdQuery>(y => y.EventId == eventId)), Times.Once); }