Example #1
0
        public async Task RegisterEventReturnsHttpBadRequetWhenSignupModelIsNull()
        {
            var sut    = new EventApiController(null);
            var result = await sut.RegisterEvent(null);

            Assert.IsType <BadRequestResult>(result);
        }
Example #2
0
        public void RegisterEventHasValidateAntiForgeryTokenAttribute()
        {
            var sut       = new EventApiController(null);
            var attribute = (ValidateAntiForgeryTokenAttribute)sut.GetAttributesOn(x => x.RegisterEvent(It.IsAny <EventSignupViewModel>())).SingleOrDefault(x => x.GetType() == typeof(ValidateAntiForgeryTokenAttribute));

            Assert.NotNull(attribute);
        }
Example #3
0
        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());
        }
Example #4
0
        public void UnregisterEventHasAuthorizeAttribute()
        {
            var sut       = new EventApiController(null);
            var attribute = (AuthorizeAttribute)sut.GetAttributesOn(x => x.UnregisterEvent(It.IsAny <int>())).SingleOrDefault(x => x.GetType() == typeof(AuthorizeAttribute));

            Assert.NotNull(attribute);
        }
Example #5
0
        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 GetCheckinReturnsHttpNotFoundWhenUnableToFindEventByEventId()
        {
            var sut    = new EventApiController(Mock.Of <IMediator>());
            var result = await sut.GetCheckin(It.IsAny <int>());

            Assert.IsType <NotFoundResult>(result);
        }
        public void GetHasHttpGetAttribute()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.Get()).OfType <HttpGetAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
        }
Example #8
0
        public async Task RegisterEventReturnsSuccess()
        {
            var sut    = new EventApiController(Mock.Of <IMediator>());
            var result = await sut.RegisterEvent(new EventSignupViewModel());

            Assert.True(result.ToString().Contains("success"));
        }
Example #9
0
        public void PutCheckinHasHttpPutAttributeWithCorrectTemplate()
        {
            var sut       = new EventApiController(null);
            var attribute = (HttpPutAttribute)sut.GetAttributesOn(x => x.PutCheckin(It.IsAny <int>())).SingleOrDefault(x => x.GetType() == typeof(HttpPutAttribute));

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "{id}/checkin");
        }
        public async Task GetSendsEventsWithUnlockedCampaignsQuery()
        {
            var mediator = new Mock <IMediator>();
            var sut      = new EventApiController(mediator.Object);
            await sut.Get();

            mediator.Verify(x => x.SendAsync(It.IsAny <EventsWithUnlockedCampaignsQuery>()), Times.Once);
        }
Example #11
0
        public void UnregisterEventHasHttpDeleteAttributeWithCorrectTemplate()
        {
            var sut       = new EventApiController(null);
            var attribute = (HttpDeleteAttribute)sut.GetAttributesOn(x => x.UnregisterEvent(It.IsAny <int>())).SingleOrDefault(x => x.GetType() == typeof(HttpDeleteAttribute));

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "{id}/signup");
        }
        public void GetByIdHasHttpGetAttributeWithCorrectTemplate()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.Get(It.IsAny <int>())).OfType <HttpGetAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "{id}");
        }
Example #13
0
        public void RegisterEventHasHttpPostAttributeWithCorrectTemplate()
        {
            var sut       = new EventApiController(null);
            var attribute = (HttpPostAttribute)sut.GetAttributesOn(x => x.RegisterEvent(It.IsAny <EventSignupViewModel>())).SingleOrDefault(x => x.GetType() == typeof(HttpPostAttribute));

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "signup");
        }
        public void ControllerHasProducesAtttributeWithTheCorrectContentType()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributes().OfType <ProducesAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.ContentTypes.Select(x => x).First(), "application/json");
        }
        public void ControllerHasRouteAtttributeWithTheCorrectRoute()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributes().OfType <RouteAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "api/event");
        }
        public void GetEventsByDateRangeHasHttpGetAttributeWithCorrectTemplate()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.GetEventsByDateRange(It.IsAny <DateTimeOffset>(), It.IsAny <DateTimeOffset>())).OfType <HttpGetAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "{start}/{end}");
        }
        public void GetEventsByLocationHasRouteAttributeWithCorrectRoute()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.GetEventsByGeography(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <int>())).OfType <RouteAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "searchbylocation");
        }
        public void GetEventsByPostalCodeHasRouteAttributeWithRoute()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.GetEventsByPostalCode(It.IsAny <string>(), It.IsAny <int>())).OfType <RouteAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Template, "search");
        }
        public void GetEventsByDateRangeHasProducesAttribute()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.GetEventsByDateRange(It.IsAny <DateTimeOffset>(), It.IsAny <DateTimeOffset>())).OfType <ProducesAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.ContentTypes[0], "application/json");
            Assert.Equal(attribute.Type, typeof(EventViewModel));
        }
        public void GetByIdHasProducesAttributeWithCorrectContentTypes()
        {
            var sut       = new EventApiController(null);
            var attribute = sut.GetAttributesOn(x => x.Get(It.IsAny <int>())).OfType <ProducesAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal(attribute.Type, typeof(EventViewModel));
            Assert.Equal(attribute.ContentTypes.Select(x => x).First(), "application/json");
        }
Example #21
0
        public void GetSendsEventsWithUnlockedCampaignsQuery()
        {
            var mediator = new Mock <IMediator>();
            var sut      = new EventApiController(mediator.Object, null);

            sut.Get();

            mediator.Verify(x => x.Send(It.IsAny <EventsWithUnlockedCampaignsQuery>()), Times.Once);
        }
Example #22
0
        public async Task UnregisterEventReturnsHttpNotFoundWhenUnableToGetEventSignupByEventSignupIdAndUserId()
        {
            var controller = new EventApiController(Mock.Of <IMediator>());

            controller.SetDefaultHttpContext();

            var result = await controller.UnregisterEvent(It.IsAny <int>());

            Assert.IsType <HttpNotFoundResult>(result);
        }
Example #23
0
        public async Task RegisterEventSendsEventSignupCommandAsyncWithCorrectData()
        {
            var model    = new EventSignupViewModel();
            var mediator = new Mock <IMediator>();

            var sut = new EventApiController(mediator.Object);
            await sut.RegisterEvent(model);

            mediator.Verify(x => x.SendAsync(It.Is <EventSignupCommand>(command => command.EventSignup.Equals(model))));
        }
        public void GetReturnsCorrectModel()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <EventsWithUnlockedCampaignsQuery>())).Returns(new List <EventViewModel>());

            var sut     = new EventApiController(mediator.Object);
            var results = sut.Get();

            Assert.IsType <List <EventViewModel> >(results);
        }
Example #25
0
        public void GetEventsByPostalCodeReturnsCorrectViewModel()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <EventsByPostalCodeQuery>())).Returns(new List <Event>());

            var sut    = new EventApiController(mediator.Object, null);
            var result = sut.GetEventsByPostalCode(It.IsAny <string>(), It.IsAny <int>());

            Assert.IsType <List <EventViewModel> >(result);
        }
        public void GetEventsByGeographyReturnsCorrectViewModel()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <EventsByGeographyQuery>())).Returns(new List <Event>());

            var sut    = new EventApiController(mediator.Object);
            var result = sut.GetEventsByGeography(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <int>());

            Assert.IsType <List <EventViewModel> >(result);
        }
        public async Task GetEventsByDateRangeSendsEventByDateRangeQueryWithCorrectDates()
        {
            var may      = new DateTimeOffset(2016, 5, 1, 0, 0, 0, new TimeSpan());
            var june     = new DateTimeOffset(2016, 6, 1, 0, 0, 0, new TimeSpan());
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventByDateRangeQuery>())).ReturnsAsync(new List <EventViewModel>());

            var sut = new EventApiController(mediator.Object);
            await sut.GetEventsByDateRange(may, june);

            mediator.Verify(x => x.SendAsync(It.Is <EventByDateRangeQuery>(y => y.StartDate == may && y.EndDate == june)), Times.Once);
        }
Example #28
0
        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);
        }
        public void GetEventsByDateRangeReturnsJsonWhenEventsIsNotNull()
        {
            var may      = new DateTimeOffset(2016, 5, 1, 0, 0, 0, new TimeSpan());
            var june     = new DateTimeOffset(2016, 6, 1, 0, 0, 0, new TimeSpan());
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <EventByDateRangeQuery>())).Returns(new List <EventViewModel>());

            var sut    = new EventApiController(mediator.Object);
            var result = sut.GetEventsByDateRange(may, june);

            Assert.IsType <JsonResult>(result);
        }
        public async Task GetEventsByDateRangeReturnsNoContentWhenEventsIsNull()
        {
            var may      = new DateTimeOffset(2016, 5, 1, 0, 0, 0, new TimeSpan());
            var june     = new DateTimeOffset(2016, 6, 1, 0, 0, 0, new TimeSpan());
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EventByDateRangeQuery>())).ReturnsAsync((List <EventViewModel>)null);

            var sut    = new EventApiController(mediator.Object);
            var result = await sut.GetEventsByDateRange(may, june);

            Assert.IsType <NoContentResult>(result);
        }