示例#1
0
        public async Task TestPostSetItineraryParticipantsAsync()
        {
            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);

            var model       = new ItineraryParticipantsBindingModel();
            var projectId   = 1;
            var itineraryId = 2;
            Action <ItineraryParticipants> callback = (itineraryParicipants) =>
            {
                Assert.AreEqual(projectId, itineraryParicipants.ProjectId);
                Assert.AreEqual(itineraryId, itineraryParicipants.ItineraryId);
                Assert.IsNotNull(itineraryParicipants.Audit.User);
            };

            service.Setup(x => x.SetParticipantsAsync(It.IsAny <ItineraryParticipants>())).Returns(Task.FromResult <object>(null)).Callback(callback);

            var response = await controller.PostSetItineraryParticipantsAsync(itineraryId, projectId, model);

            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkResult));

            userProvider.Verify(x => x.GetCurrentUser(), Times.Once());
            userProvider.Verify(x => x.GetBusinessUser(It.IsAny <IWebApiUser>()), Times.Once());
            service.Verify(x => x.SetParticipantsAsync(It.IsAny <ItineraryParticipants>()), Times.Once());
            service.Verify(x => x.SaveChangesAsync(), Times.Once());
        }
示例#2
0
        public async Task TestTestPostSetItineraryParticipantsAsync_InvalidModel()
        {
            controller.ModelState.AddModelError("key", "error");
            var model       = new ItineraryParticipantsBindingModel();
            var projectId   = 1;
            var itineraryId = 2;
            var response    = await controller.PostSetItineraryParticipantsAsync(itineraryId, projectId, model);

            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult));
        }
示例#3
0
        public void TestToItineraryParticipants()
        {
            var user           = new User(1);
            var projectId      = 1;
            var itineraryId    = 2;
            var participantIds = new List <int> {
                1, 2
            };

            var model = new ItineraryParticipantsBindingModel();

            model.ParticipantIds = participantIds;
            var instance = model.ToItineraryParticipants(user, projectId, itineraryId);

            Assert.AreEqual(projectId, instance.ProjectId);
            Assert.AreEqual(itineraryId, instance.ItineraryId);
            CollectionAssert.AreEqual(instance.ParticipantIds.ToList(), participantIds.ToList());
        }
示例#4
0
        public async Task <IHttpActionResult> PostSetItineraryParticipantsAsync(int itineraryId, int projectId, [FromBody] ItineraryParticipantsBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var user         = this.userProvider.GetCurrentUser();
                var businessUser = this.userProvider.GetBusinessUser(user);
                await this.itineraryService.SetParticipantsAsync(model.ToItineraryParticipants(businessUser, projectId, itineraryId));

                await this.itineraryService.SaveChangesAsync();

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