Пример #1
0
        public async Task Group_Convert_Confirm_WithValidationError()
        {
            var domainModel = new SearchGroupDocument {
                Name = "Group 1000", GroupUId = 1000, GroupTypeId = (int)eLookupGroupType.SingleacademyTrust
            };

            GetMock <IGroupsWriteService>().Setup(x => x.ConvertSAT2MAT(It.Is <int>(i => i == 1000), It.Is <bool>(b => b == true), It.IsAny <IPrincipal>())).ReturnsAsync(new ApiResponse <NumericResultDto>(false)
            {
                Errors = new [] { new ApiError {
                                      Code = "test", Message = "msg"
                                  } }
            });

            var vm = new ConvertSATViewModel
            {
                Token              = UriHelper.SerializeToUrlToken(domainModel),
                ActionName         = "confirm",
                CopyGovernanceInfo = true
            };
            var response = (ViewResult)await ObjectUnderTest.Convert(vm);

            response.ViewName.ShouldBe("");
            Assert.That(ObjectUnderTest.ModelState[""].Errors[0].ErrorMessage, Is.EqualTo("msg"));
            GetMock <IGroupsWriteService>().Verify(x => x.ConvertSAT2MAT(It.Is <int>(i => i == 1000), It.Is <bool>(b => b == true), It.IsAny <IPrincipal>()), Times.Once);
        }
Пример #2
0
        public async Task Group_Convert_FindValidGroup()
        {
            GetMock <ICachedLookupService>().Setup(x => x.GetNameAsync(It.IsAny <Expression <Func <int?> > >(), It.IsAny <string>())).ReturnsAsync("placeholder");
            GetMock <IGroupReadService>().Setup(x => x.SearchByIdsAsync(It.IsAny <string>(), It.Is <int?>(i => i == 1000), It.IsAny <string>(), It.IsAny <int?>(), It.IsAny <IPrincipal>())).ReturnsAsync(() => new ApiPagedResult <SearchGroupDocument>(1, new List <SearchGroupDocument>()
            {
                new SearchGroupDocument {
                    Name = "Group 1000", GroupUId = 1000, GroupTypeId = (int)eLookupGroupType.SingleacademyTrust
                }
            }));

            var vm = new ConvertSATViewModel
            {
                ActionName = "find",
                Text       = "1000"
            };
            var response = (ViewResult)await ObjectUnderTest.Convert(vm);

            vm.Details.Name.ShouldBe("Group 1000");
            vm.Details.GroupUId.ShouldBe(1000);
            vm.Details.GroupTypeId.ShouldBe((int)eLookupGroupType.SingleacademyTrust);
            vm.CountryName.ShouldBe("placeholder");
            vm.CountyName.ShouldBe("placeholder");
            vm.Token.ShouldNotBe(null);
            response.ViewName.ShouldBe("");
        }
Пример #3
0
        public async Task Group_Convert_Confirm_Success()
        {
            var domainModel = new SearchGroupDocument {
                Name = "Group 1000", GroupUId = 1000, GroupTypeId = (int)eLookupGroupType.SingleacademyTrust
            };

            GetMock <IGroupsWriteService>().Setup(x => x.ConvertSAT2MAT(It.Is <int>(i => i == 1000), It.Is <bool>(b => b == true), It.IsAny <IPrincipal>())).ReturnsAsync(new ApiResponse <NumericResultDto>(true)
            {
                Response = new NumericResultDto {
                    Value = 200
                }
            });

            var vm = new ConvertSATViewModel
            {
                Token              = UriHelper.SerializeToUrlToken(domainModel),
                ActionName         = "confirm",
                CopyGovernanceInfo = true
            };
            var response = (RedirectToRouteResult)await ObjectUnderTest.Convert(vm);

            response.RouteName.ShouldBe("GroupDetails");
            response.RouteValues["id"].ShouldBe(200);
            GetMock <IGroupsWriteService>().Verify(x => x.ConvertSAT2MAT(It.Is <int>(i => i == 1000), It.Is <bool>(b => b == true), It.IsAny <IPrincipal>()), Times.Once);
        }
Пример #4
0
        public async Task <ActionResult> Convert(ConvertSATViewModel viewModel)
        {
            if (viewModel.ActionName == "find" && ModelState.IsValid)
            {
                var result = (await _groupReadService.SearchByIdsAsync(viewModel.Text, viewModel.Text.ToInteger(), viewModel.Text, viewModel.Text.ToInteger(), User)).Items.FirstOrDefault();
                if (result == null)
                {
                    ModelState.AddModelError(nameof(viewModel.Text), "We were unable to find a single-academy trust matching those details");
                }
                else if (result.StatusId == ((int)GS.Closed))
                {
                    ModelState.AddModelError(nameof(viewModel.Text), "Closed single-academy trusts can not be converted");
                }
                else if (result.GroupTypeId != (int)GT.SingleacademyTrust)
                {
                    ModelState.AddModelError(nameof(viewModel.Text), "That's an invalid group because it's of the wrong type.");
                }
                else
                {
                    viewModel.Details     = result;
                    viewModel.CountryName = await _lookup.GetNameAsync(() => result.Address.CountryId);

                    viewModel.CountyName = await _lookup.GetNameAsync(() => result.Address.CountyId);

                    viewModel.Token = UriHelper.SerializeToUrlToken(result);
                }
            }
            else if (viewModel.ActionName == "confirm")
            {
                viewModel.Details = UriHelper.DeserializeUrlToken <SearchGroupDocument>(viewModel.Token);
                var apiResponse = await _groupWriteService.ConvertSAT2MAT(viewModel.Details.GroupUId, viewModel.CopyGovernanceInfo, User);

                if (apiResponse.HasErrors)
                {
                    apiResponse.Errors.ForEach(x => ModelState.AddModelError("", x.GetMessage()));
                }
                else
                {
                    TempData["ShowSaved"] = "saved";
                    return(RedirectToRoute("GroupDetails", new { id = apiResponse.GetResponse().Value }));
                }
            }

            return(View(viewModel));
        }