예제 #1
0
        public async Task TestPostCreateItineraryAsync_InvalidModel()
        {
            controller.ModelState.AddModelError("key", "error");
            var model     = new AddedItineraryBindingModel();
            var projectId = 1;
            var response  = await controller.PostCreateItineraryAsync(projectId, model);

            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult));
        }
예제 #2
0
        public async Task TestPostCreateItineraryAsync()
        {
            var debugUser    = new DebugWebApiUser();
            var businessUser = new User(1);

            userProvider.Setup(x => x.GetCurrentUser()).Returns(debugUser);
            userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(businessUser);

            service.Setup(x => x.CreateAsync(It.IsAny <AddedEcaItinerary>())).ReturnsAsync(new Itinerary());
            service.Setup(x => x.GetItineraryByIdAsync(It.IsAny <int>(), It.IsAny <int>())).ReturnsAsync(new ItineraryDTO());

            var model     = new AddedItineraryBindingModel();
            var projectId = 1;
            var response  = await controller.PostCreateItineraryAsync(projectId, model);

            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <ItineraryDTO>));

            userProvider.Verify(x => x.GetCurrentUser(), Times.Once());
            userProvider.Verify(x => x.GetBusinessUser(It.IsAny <IWebApiUser>()), Times.Once());
            service.Verify(x => x.CreateAsync(It.IsAny <AddedEcaItinerary>()), Times.Once());
            service.Verify(x => x.SaveChangesAsync(), Times.Once());
            service.Verify(x => x.GetItineraryByIdAsync(It.IsAny <int>(), It.IsAny <int>()), Times.Once());
        }
        public void TestToAddedEcaItinerary()
        {
            var model = new AddedItineraryBindingModel();

            model.ArrivalLocationId   = 1;
            model.DepartureLocationId = 2;
            model.EndDate             = DateTimeOffset.Now.AddDays(1.0);
            model.Name      = "name";
            model.StartDate = DateTimeOffset.Now.AddDays(10.0);

            var projectId = 10;
            var userId    = 20;
            var user      = new User(userId);

            var instance = model.ToAddedEcaItinerary(projectId, user);

            Assert.IsTrue(Object.ReferenceEquals(user, instance.Audit.User));
            Assert.AreEqual(projectId, instance.ProjectId);
            Assert.AreEqual(model.ArrivalLocationId, instance.ArrivalLocationId);
            Assert.AreEqual(model.DepartureLocationId, instance.DepartureLocationId);
            Assert.AreEqual(model.EndDate, instance.EndDate);
            Assert.AreEqual(model.Name, instance.Name);
            Assert.AreEqual(model.StartDate, instance.StartDate);
        }
예제 #4
0
        public async Task <IHttpActionResult> PostCreateItineraryAsync([FromUri] int id, [FromBody] AddedItineraryBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var user         = this.userProvider.GetCurrentUser();
                var businessUser = this.userProvider.GetBusinessUser(user);
                var itinerary    = await this.itineraryService.CreateAsync(model.ToAddedEcaItinerary(id, businessUser));

                await this.itineraryService.SaveChangesAsync();

                var dto = await this.itineraryService.GetItineraryByIdAsync(id, itinerary.ItineraryId);

                return(Ok(dto));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }