Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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)));
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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)));
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
        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);
        }