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));
        }
Пример #2
0
        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>));
        }
Пример #4
0
        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());
        }