public async Task CreateCallsValidatorWithCorrectItineraryEditModelAndEventSummaryModel()
        {
            var model = new ItineraryEditModel
            {
                EventId = 1,
                Name    = "Test",
                Date    = new DateTime(2016, 06, 01)
            };

            var mediator = new Mock <IMediator>();

            var eventSummaryModel = new EventSummaryModel
            {
                Id = 1, Name = "Event", OrganizationId = 1, StartDateTime = new DateTimeOffset(new DateTime(2016, 01, 01)), EndDateTime = new DateTimeOffset(new DateTime(2016, 12, 31))
            };

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(eventSummaryModel);
            mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(1);

            var mockValidator = new Mock <IItineraryEditModelValidator>();

            mockValidator.Setup(mock => mock.Validate(model, eventSummaryModel)).Returns(new List <KeyValuePair <string, string> >()).Verifiable();

            var sut = new ItineraryController(mediator.Object, mockValidator.Object);

            sut.SetClaims(new List <Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()),
                new Claim(AllReady.Security.ClaimTypes.Organization, "1")
            });

            await sut.Create(model);

            mockValidator.Verify(x => x.Validate(model, eventSummaryModel), Times.Once);
        }
        public async Task CreateReturnsHttpBadRequestResultWhenEditItineraryReturnsZero()
        {
            var model = new ItineraryEditModel
            {
                EventId = 1,
                Name    = "Test",
                Date    = new DateTime(2016, 06, 01)
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryModel {
                Id = 1, Name = "Event", OrganizationId = 1, StartDateTime = new DateTimeOffset(new DateTime(2016, 01, 01)), EndDateTime = new DateTimeOffset(new DateTime(2016, 12, 31))
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(0);

            var mockValidator = new Mock <IItineraryEditModelValidator>();

            mockValidator.Setup(mock => mock.Validate(It.IsAny <ItineraryEditModel>(), It.IsAny <EventSummaryModel>())).Returns(new List <KeyValuePair <string, string> >()).Verifiable();

            var sut = new ItineraryController(mediator.Object, mockValidator.Object);

            sut.SetClaims(new List <Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()),
                new Claim(AllReady.Security.ClaimTypes.Organization, "1")
            });

            var result = await sut.Create(model);

            Assert.IsType <BadRequestResult>(result);
        }
        public async Task CreateReturnsHttpBadRequestIfEventNull()
        {
            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(null);

            var sut = new ItineraryController(mockMediator.Object, MockSuccessValidation().Object);

            Assert.IsType <BadRequestResult>(await sut.Create(It.IsAny <ItineraryEditModel>()).ConfigureAwait(false));
        }
예제 #4
0
        public async Task CreateReturnsHttpUnauthorizedResultWhenUserIsNotOrgAdminForEventOrg()
        {
            const int orgId = 1;

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel {
                OrganizationId = orgId
            });

            var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object);

            sut.MakeUserNotAnOrgAdmin();

            Assert.IsType <UnauthorizedResult>(await sut.Create(new ItineraryEditViewModel()));
        }
예제 #5
0
        public async Task CreateReturnsOkResultWhenUserIsOrgAdmin()
        {
            const int orgId = 1;

            //var sut = GetItineraryControllerWithEventSummaryQuery(UserType.OrgAdmin.ToString(), 1);
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel {
                OrganizationId = orgId
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(orgId);

            var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object);

            sut.MakeUserAnOrgAdmin(orgId.ToString());

            Assert.IsType <OkObjectResult>(await sut.Create(new ItineraryEditViewModel()));
        }
        public async Task CreateSendsEventSummaryQuery()
        {
            var model = new ItineraryEditModel
            {
                EventId = 1,
                Name    = "Test",
                Date    = new DateTime(2016, 06, 01)
            };

            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>()))
            .ReturnsAsync(It.IsAny <EventSummaryModel>()).Verifiable();

            var sut = new ItineraryController(mockMediator.Object, MockSuccessValidation().Object);
            await sut.Create(model);

            mockMediator.Verify(x => x.SendAsync(It.IsAny <EventSummaryQuery>()), Times.Once);
        }
예제 #7
0
        public async Task CreateReturnsHttpBadRequestResultWhenModelStateHasError()
        {
            const int orgId = 1;

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel {
                OrganizationId = orgId
            });

            var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object);

            sut.MakeUserAnOrgAdmin(orgId.ToString());
            sut.AddModelStateError();

            var result = await sut.Create(new ItineraryEditViewModel());

            Assert.IsType <BadRequestObjectResult>(result);
        }
예제 #8
0
        public async Task CreateReturnsOkResultWhenUserIsSiteAdmin_AndModelIsValid_AndSuccessfulAdd()
        {
            const int orgId = 1;

            //var sut = GetItineraryControllerWithEventSummaryQuery(UserType.SiteAdmin.ToString(), 0);
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel {
                OrganizationId = orgId
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(orgId);

            var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object);

            sut.SetClaims(new List <Claim>
            {
                new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()),
                new Claim(AllReady.Security.ClaimTypes.Organization, "0")
            });

            Assert.IsType <OkObjectResult>(await sut.Create(new ItineraryEditViewModel()));
        }
        public async Task CreateReturnsHttpBadRequestWhenModelIsNull()
        {
            var sut = new ItineraryController(Mock.Of <IMediator>(), MockSuccessValidation().Object);

            Assert.IsType <BadRequestResult>(await sut.Create(null).ConfigureAwait(false));
        }