public async Task TestPutProgramAsync_InvalidModel() { var model = new ProgramBindingModel(); controller.ModelState.AddModelError("key", "error"); var response = await controller.PutProgramAsync(model); Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult)); }
public void TestToEcaProgram() { var rowVersion = new byte[1] { (byte)0 }; var model = new ProgramBindingModel(); model.Id = 100; model.ProgramStatusId = ProgramStatus.Active.Id; model.Description = "desc"; model.EndDate = DateTimeOffset.UtcNow; model.Goals = new List <int> { 1 }; model.Name = "name"; model.OwnerOrganizationId = 2; model.ParentProgramId = 3; model.Contacts = new List <int> { 2 }; model.StartDate = DateTimeOffset.UtcNow; model.Themes = new List <int> { 3 }; model.Regions = new List <int> { 4 }; model.Websites = new List <WebsiteBindingModel> { new WebsiteBindingModel { Id = null, Value = "http://google.com" } }; model.RowVersion = Convert.ToBase64String(rowVersion); var user = new User(1); var ecaProgram = model.ToEcaProgram(user); Assert.AreEqual(model.Description, ecaProgram.Description); Assert.AreEqual(model.EndDate, ecaProgram.EndDate); Assert.AreEqual(model.Name, ecaProgram.Name); Assert.AreEqual(model.OwnerOrganizationId, ecaProgram.OwnerOrganizationId); Assert.AreEqual(model.ParentProgramId, ecaProgram.ParentProgramId); Assert.AreEqual(model.Id, ecaProgram.Id); Assert.AreEqual(model.ProgramStatusId, ecaProgram.ProgramStatusId); Assert.AreEqual(model.StartDate, ecaProgram.StartDate); CollectionAssert.AreEqual(model.Goals, ecaProgram.GoalIds); CollectionAssert.AreEqual(model.Contacts, ecaProgram.ContactIds); CollectionAssert.AreEqual(model.Themes, ecaProgram.ThemeIds); CollectionAssert.AreEqual(model.Regions, ecaProgram.RegionIds); CollectionAssert.AreEqual(rowVersion, ecaProgram.RowVersion); CollectionAssert.AreEqual(model.Websites.Select(x => x.Value).ToList(), ecaProgram.Websites.Select(x => x.Value).ToList()); Assert.AreEqual(user.Id, ecaProgram.Audit.User.Id); }
public async Task TestPostProgramAsync() { userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(new Business.Service.User(0)); var model = new ProgramBindingModel { Name = "name", Description = "desc", ProgramStatusId = ProgramStatus.Active.Id, }; var response = await controller.PostProgramAsync(model); service.Verify(x => x.CreateAsync(It.IsAny <DraftProgram>()), Times.Once()); service.Verify(x => x.SaveChangesAsync(), Times.Once()); service.Verify(x => x.GetProgramByIdAsync(It.IsAny <int>()), Times.Once()); Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <ProgramViewModel>)); }
public async Task <IHttpActionResult> PutProgramAsync(ProgramBindingModel model) { if (ModelState.IsValid) { var currentUser = userProvider.GetCurrentUser(); var businessUser = userProvider.GetBusinessUser(currentUser); await programService.UpdateAsync(model.ToEcaProgram(businessUser)); await programService.SaveChangesAsync(); var dto = await programService.GetProgramByIdAsync(model.Id); return(Ok(new ProgramViewModel(dto))); } else { return(BadRequest(ModelState)); } }
public async Task TestPutProgramAsync() { var user = SetDebugUser(); var model = new ProgramBindingModel { Name = "name", Description = "desc", ProgramStatusId = ProgramStatus.Active.Id, RowVersion = Convert.ToBase64String(new byte[0]), }; model.ProgramStatusId = ProgramStatus.Active.Id; userProvider.Setup(x => x.GetCurrentUser()).Returns(user); userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(new Business.Service.User(1)); var response = await controller.PutProgramAsync(model); Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <ProgramViewModel>)); service.Verify(x => x.UpdateAsync(It.IsAny <EcaProgram>()), Times.Once()); service.Verify(x => x.SaveChangesAsync(), Times.Once()); service.Verify(x => x.GetProgramByIdAsync(It.IsAny <int>()), Times.Once()); }