public async Task SendShouldNotCreateInvite_WhenUserIsNotOrgAdminForCampaign() { // Arrange var mockMediator = new Mock <IMediator>(); var @event = new Event { Campaign = new Campaign() { ManagingOrganizationId = 1 } }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventByEventIdQuery>())).ReturnsAsync(@event); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "2"); var invite = new EventManagerInviteViewModel(); // Act IActionResult result = await sut.Send(eventId, invite); // Assert mockMediator.Verify(x => x.SendAsync(It.IsAny <CreateEventManagerInviteCommand>()), Times.Never); }
public async Task SendReturnsSendView_WhenUserIsOrgAdminForCampaign() { // Arrange var mockMediator = new Mock <IMediator>(); var viewModel = new EventManagerInviteViewModel { OrganizationId = 1 }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteQuery>())).ReturnsAsync(viewModel); var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(new ApplicationUser()); var sut = new EventManagerInviteController(mockMediator.Object, userManager.Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); // Act IActionResult result = await sut.Send(eventId); // Assert Assert.IsType <ViewResult>(result); ViewResult view = result as ViewResult; }
public async Task SendPassesCorrectViewModelToView() { // Arrange var mockMediator = new Mock <IMediator>(); var viewModel = new EventManagerInviteViewModel { EventId = eventId, EventName = "TestEvent", CampaignId = campaignId, CampaignName = "TestCampaign", OrganizationId = 1 }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteQuery>())).ReturnsAsync(viewModel); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); // Act IActionResult result = await sut.Send(eventId); // Assert ViewResult view = result as ViewResult; var model = Assert.IsType <EventManagerInviteViewModel>(view.ViewData.Model); Assert.Equal(eventId, model.EventId); Assert.Equal(campaignId, model.CampaignId); Assert.Equal("TestCampaign", model.CampaignName); Assert.Equal("TestEvent", model.EventName); }
public async Task InviteDeclinedCallsDeclineEventManagerInviteCommand() { // Arrange var mockMediator = new Mock <IMediator>(); var mockUserManager = UserManagerMockHelper.CreateUserManagerMock(); mockUserManager.Setup(mock => mock.GetUserAsync(It.IsAny <ClaimsPrincipal>())) .ReturnsAsync(new ApplicationUser { Email = "*****@*****.**" }); var sut = new EventManagerInviteController(mockMediator.Object, mockUserManager.Object); var viewModel = new AcceptDeclineEventManagerInviteViewModel { EventId = eventId, CampaignName = "My campaign", InviteeEmailAddress = "*****@*****.**", InviteId = inviteId }; // Act var result = await sut.InviteDeclined(viewModel); // Assert mockMediator.Verify(x => x.SendAsync(It.IsAny <DeclineEventManagerInviteCommand>()), Times.Once); }
public async Task SendShouldNotCreateInvite_WhenAnInviteAlreadyExistsForInviteeEmailAddress() { // Arrange var mockMediator = new Mock <IMediator>(); var @event = new Event { Campaign = new Campaign() { ManagingOrganizationId = 1 } }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventByEventIdQuery>())).ReturnsAsync(@event); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <UserHasEventManagerInviteQuery>())).ReturnsAsync(true); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); var invite = new EventManagerInviteViewModel { EventId = 1, InviteeEmailAddress = "*****@*****.**", CustomMessage = "test message" }; // Act IActionResult result = await sut.Send(invite.EventId, invite); // Assert mockMediator.Verify(x => x.SendAsync(It.Is <CreateEventManagerInviteCommand>(c => c.Invite == invite)), Times.Never); }
public async Task SendShouldCreateInvite_WhenUserIsOrgAdminForCampaign() { // Arrange var mockMediator = new Mock <IMediator>(); var @event = new Event { Campaign = new Campaign() { ManagingOrganizationId = 1 } }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventByEventIdQuery>())).ReturnsAsync(@event); var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(new ApplicationUser()); var sut = new EventManagerInviteController(mockMediator.Object, userManager.Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); var invite = new EventManagerInviteViewModel { EventId = 1, InviteeEmailAddress = "*****@*****.**", CustomMessage = "test message" }; // Act IActionResult result = await sut.Send(invite.EventId, invite); // Assert mockMediator.Verify(x => x.SendAsync(It.Is <CreateEventManagerInviteCommand>(c => c.Invite == invite)), Times.Once); }
public async Task SendPostReturnsUnauthorizedResult_WhenUserIsNotOrgAdminForCampaign() { // Arrange var mockMediator = new Mock <IMediator>(); var @event = new Event { Campaign = new Campaign() { ManagingOrganizationId = 1 } }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventByEventIdQuery>())).ReturnsAsync(@event); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "2"); var invite = new EventManagerInviteViewModel(); // Act IActionResult result = await sut.Send(eventId, invite); // Assert Assert.IsType <UnauthorizedResult>(result); }
public async Task SendShouldNotCreateInvite_WhenViewModelIsNull() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act IActionResult result = await sut.Send(eventId, null); // Assert mockMediator.Verify(x => x.SendAsync(It.IsAny <CreateEventManagerInviteCommand>()), Times.Never); }
public async Task SendReturnsBadRequestResult_WhenViewModelIsNull() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act IActionResult result = await sut.Send(eventId, null); // Assert Assert.IsType <BadRequestResult>(result); }
public async Task SendEventByEventIdQueryWithCorrectEventId() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act await sut.Send(eventId); // Assert mockMediator.Verify(mock => mock.SendAsync(It.Is <EventManagerInviteQuery>(e => e.EventId == eventId))); }
public async Task DeclineReturnsNotFoundIfNoInviteExistsForId() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act var result = await sut.Decline(inviteId); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task DetailsReturnsNotFoundResult_WhenNoInviteMatchesId() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act IActionResult result = await sut.Details(inviteId); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task DetailsSendsEventManagerInviteDetailQueryWithCorrectInviteId() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act await sut.Details(inviteId); // Assert mockMediator.Verify(mock => mock.SendAsync(It.Is <EventManagerInviteDetailQuery>(c => c.EventManagerInviteId == inviteId))); }
public async Task SendShouldNotCreateInvite_WhenModelStateIsNotValid() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.ModelState.AddModelError("Error", "Message"); // Act var result = await sut.Send(eventId, new EventManagerInviteViewModel()); // Assert mockMediator.Verify(x => x.SendAsync(It.IsAny <CreateEventManagerInviteCommand>()), Times.Never); }
public async Task SendReturnsNotFoundResult_WhenNoEventMatchesId() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteQuery>())).ReturnsAsync(null); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act IActionResult result = await sut.Send(eventId); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task InviteDeclinedReturnsUnAuthorisedIfUserDoesNotMatchInvitedUser() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act var result = await sut.InviteDeclined(new AcceptDeclineEventManagerInviteViewModel() { InviteeEmailAddress = "*****@*****.**" }); // Assert Assert.IsType <UnauthorizedResult>(result); }
public async Task SendReturnsSendView_WhenModelStateIsNotValid() { // Arrange var mockMediator = new Mock <IMediator>(); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.ModelState.AddModelError("Error", "Message"); // Act var result = await sut.Send(eventId, new EventManagerInviteViewModel()); // Assert var view = Assert.IsType <ViewResult>(result); Assert.Equal("Send", view.ViewName); }
public async Task DeclineReturnsUnAuthorisedIfUserDoesNotMatchInvitedUser() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <AcceptDeclineEventManagerInviteDetailQuery>())) .ReturnsAsync(new AcceptDeclineEventManagerInviteViewModel { InviteId = inviteId, InviteeEmailAddress = "*****@*****.**" }); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); // Act var result = await sut.Decline(inviteId); // Assert Assert.IsType <UnauthorizedResult>(result); }
public async Task DetailsReturnsUnauthorizedResult_WhenUserIsNotOrgAdmin() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteDetailQuery>())) .ReturnsAsync(new EventManagerInviteDetailsViewModel { Id = inviteId }); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserNotAnOrgAdmin(); // Act IActionResult result = await sut.Details(inviteId); // Assert Assert.IsType <UnauthorizedResult>(result); }
public async Task SendReturnsUnauthorizedResult_WhenUserIsNotOrgAdmin() { // Arrange var mockMediator = new Mock <IMediator>(); var viewModel = new EventManagerInviteViewModel() { OrganizationId = 1 }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteQuery>())).ReturnsAsync(viewModel); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserNotAnOrgAdmin(); // Act IActionResult result = await sut.Send(eventId); // Assert Assert.IsType <UnauthorizedResult>(result); }
public async Task DetailsReturnsView_WhenUserIsOrgAdminForCampaign() { // Arrange var mockMediator = new Mock <IMediator>(); var invite = new EventManagerInviteDetailsViewModel() { Id = inviteId, OrganizationId = 1 }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteDetailQuery>())).ReturnsAsync(invite); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); // Act IActionResult result = await sut.Details(inviteId); // Assert Assert.IsType <ViewResult>(result); }
public async Task DeclineReturnsViewWhenCorrectUserAndInviteIdSupplied() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny <AcceptDeclineEventManagerInviteDetailQuery>())) .ReturnsAsync(new AcceptDeclineEventManagerInviteViewModel { InviteId = inviteId, InviteeEmailAddress = "*****@*****.**", CampaignName = "My campaign", EventName = "My event", EventId = 200 }); var mockUserManager = UserManagerMockHelper.CreateUserManagerMock(); mockUserManager.Setup(mock => mock.GetUserAsync(It.IsAny <ClaimsPrincipal>())) .ReturnsAsync(new ApplicationUser { Email = "*****@*****.**" }); var sut = new EventManagerInviteController(mockMediator.Object, mockUserManager.Object); // Act var result = await sut.Decline(inviteId); // Assert ViewResult view = result as ViewResult; var model = Assert.IsType <AcceptDeclineEventManagerInviteViewModel>(view.ViewData.Model); Assert.Equal(inviteId, model.InviteId); Assert.Equal("*****@*****.**", model.InviteeEmailAddress); Assert.Equal("My campaign", model.CampaignName); Assert.Equal("My event", model.EventName); Assert.Equal(200, model.EventId); }
public async Task DetailsPassesCorrectViewModelToView() { // Arrange var mockMediator = new Mock <IMediator>(); var invite = new EventManagerInviteDetailsViewModel() { Id = inviteId, OrganizationId = 1 }; mockMediator.Setup(mock => mock.SendAsync(It.IsAny <EventManagerInviteDetailQuery>())).ReturnsAsync(invite); var sut = new EventManagerInviteController(mockMediator.Object, UserManagerMockHelper.CreateUserManagerMock().Object); sut.MakeUserAnOrgAdmin(organizationId: "1"); // Act IActionResult result = await sut.Details(inviteId); // Assert ViewResult view = result as ViewResult; var model = Assert.IsType <EventManagerInviteDetailsViewModel>(view.ViewData.Model); Assert.Equal(inviteId, model.Id); }