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()); }
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)); }
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()); }
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)); } }