public async Task AddTeamMemberCommandHandlerAsyncPublishesItineraryVolunteerListUpdatedWhenMatchedOnTaskSignupId()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId  = 1,
                TaskSignupId = 1
            };

            var potentialTaskSignups = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Text  = "[email protected] : Test TaskName",
                    Value = query.TaskSignupId.ToString()
                }
            };

            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(x => x.SendAsync(It.IsAny <PotentialItineraryTeamMembersQuery>())).ReturnsAsync(potentialTaskSignups);

            var handler = new AddTeamMemberCommandHandlerAsync(Context, mockMediator.Object);
            await handler.Handle(query);

            mockMediator.Verify(x => x.PublishAsync(It.Is <IntineraryVolunteerListUpdated>(y => y.TaskSignupId == query.TaskSignupId && y.ItineraryId == query.ItineraryId && y.UpdateType == UpdateType.VolunteerAssigned)), Times.Once);
        }
        public async Task AddTeamMemberCommandHandlerAsyncReturnsTrueWhenItineraryExists()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId  = 1,
                TaskSignupId = 1
            };

            var handler = new AddTeamMemberCommandHandlerAsync(Context, Mock.Of <IMediator>());
            var result  = await handler.Handle(query);

            Assert.Equal(true, result);
        }
        public async Task AddTeamMemberCommandHandlerAsyncReturnsFalseWhenItineraryDoesNotExist()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId  = 0,
                TaskSignupId = 1
            };

            var handler = new AddTeamMemberCommandHandlerAsync(Context, null);
            var result  = await handler.Handle(query);

            Assert.Equal(false, result);
        }
        public async Task AddTeamMemberCommandHandlerAsyncReturnsTrueWhenItineraryExists()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId = 1,
                TaskSignupId = 1
            };

            var handler = new AddTeamMemberCommandHandlerAsync(Context, Mock.Of<IMediator>());
            var result = await handler.Handle(query);

            Assert.Equal(true, result);
        }
        public async Task AddTeamMemberCommandHandlerAsyncReturnsFalseWhenItineraryDoesNotExist()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId = 0, 
                TaskSignupId = 1
            };

            var handler = new AddTeamMemberCommandHandlerAsync(Context, null);
            var result = await handler.Handle(query);

            Assert.Equal(false, result);
        }
        public async Task AddTeamMemberCommandHandlerAsyncSendsPotentialItineraryTeamMemberQueryWithCorrectEventId()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId  = 1,
                TaskSignupId = 1
            };

            var mockMediator = new Mock <IMediator>();
            var handler      = new AddTeamMemberCommandHandlerAsync(Context, mockMediator.Object);

            await handler.Handle(query);

            mockMediator.Verify(x => x.SendAsync(It.Is <PotentialItineraryTeamMembersQuery>(y => y.EventId == 1)), Times.Once);
        }
        public async Task AddTeamMemberCommandHandlerAsyncSendsPotentialItineraryTeamMemberQueryWithCorrectEventId()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId = 1,
                TaskSignupId = 1
            };

            var mockMediator = new Mock<IMediator>();
            var handler = new AddTeamMemberCommandHandlerAsync(Context, mockMediator.Object);

            await handler.Handle(query);

            mockMediator.Verify(x => x.SendAsync(It.Is<PotentialItineraryTeamMembersQuery>(y => y.EventId == 1)), Times.Once);
        }
        public async Task AddTeamMemberCommandHandlerAsyncPublishesItineraryVolunteerListUpdatedWhenMatchedOnTaskSignupId()
        {
            var query = new AddTeamMemberCommand
            {
                ItineraryId = 1,
                TaskSignupId = 1
            };

            var potentialTaskSignups = new List<SelectListItem>
            {
                new SelectListItem
                {
                    Text = "[email protected] : Test TaskName",
                    Value = query.TaskSignupId.ToString()
                }
            };

            var mockMediator = new Mock<IMediator>();
            mockMediator.Setup(x => x.SendAsync(It.IsAny<PotentialItineraryTeamMembersQuery>())).ReturnsAsync(potentialTaskSignups);

            var handler = new AddTeamMemberCommandHandlerAsync(Context, mockMediator.Object);
            await handler.Handle(query);

            mockMediator.Verify(x => x.PublishAsync(It.Is<IntineraryVolunteerListUpdated>(y => y.TaskSignupId == query.TaskSignupId && y.ItineraryId == query.ItineraryId && y.UpdateType == UpdateType.VolunteerAssigned)), Times.Once);
        }