public async Task Group_EditDetails_Post_Success()
        {
            GetMock <IGroupsWriteService>().Setup(x => x.ValidateAsync(It.IsAny <SaveGroupDto>(), It.IsAny <IPrincipal>())).ReturnsAsync(new ValidationEnvelopeDto());
            GetMock <IGroupReadService>().Setup(x => x.ExistsAsync(It.IsAny <IPrincipal>(), It.IsAny <CompaniesHouseNumber?>(), It.IsAny <string>(), It.IsAny <int?>(), It.IsAny <string>(), It.IsAny <int?>())).ReturnsAsync(false);
            GetMock <IGroupReadService>().Setup(x => x.GetModelChangesAsync(It.IsAny <GroupModel>(), It.IsAny <IPrincipal>())).ReturnsAsync(new List <ChangeDescriptorDto>());
            GetMock <ISecurityService>().Setup(x => x.CreateAnonymousPrincipal()).Returns(new GenericPrincipal(new GenericIdentity(""), new string[0]));
            GetMock <IGroupsWriteService>().Setup(x => x.SaveAsync(It.IsAny <SaveGroupDto>(), It.IsAny <IPrincipal>())).ReturnsAsync(new ApiResponse(true));
            GetMock <IGroupReadService>().Setup(x =>
                                                x.GetEstablishmentGroupsAsync(It.IsAny <int>(), It.IsAny <IPrincipal>(), It.IsAny <bool>())).ReturnsAsync(new List <EstablishmentGroupModel>());
            InjectBasicLAsAndGroupTypes();

            var viewModel = new GroupEditorViewModel
            {
                GroupUId    = 123,
                GroupName   = "This is a test",
                Action      = ActionSave,
                GroupTypeId = (int)eLookupGroupType.Federation
            };
            var result = (RedirectToRouteResult)await ObjectUnderTest.EditDetails(viewModel);

            Assert.That(result.RouteValues["action"], Is.EqualTo("Details"));
            Assert.That(result.RouteValues["id"], Is.EqualTo(123));

            GetMock <IGroupsWriteService>().Verify(x => x.SaveAsync(It.Is <SaveGroupDto>(v => v.LinkedEstablishments == null && v.GroupUId == 123 && v.Group != null), It.IsAny <IPrincipal>()), Times.Once);
        }
        public async Task Estab_EditDetails()
        {
            var establishment = new EstablishmentModel
            {
                Urn       = 100000,
                IEBTModel = new IEBTModel()
            };

            var editEstabModel = new EditEstablishmentModel
            {
                Urn = 100000,
                Address_CityOrTown = "cityOrTown",
                Address_CountryId  = 1,
                Address_CountyId   = 2,
                Address_Line1      = "line1",
                Address_Locality   = "locality",
                Address_Line3      = "line3",
                Address_PostCode   = "postcode",
                Address_UPRN       = "uprn",
                Northing           = 3,
                Easting            = 4,
                ChairOfProprietor  = new ProprietorViewModel()
            };

            var replacementAddress = new AddOrReplaceAddressViewModel
            {
                Target       = "main",
                Town         = "replacementTown",
                CountryId    = 5,
                CountyId     = 8,
                Street       = "replacementStreet",
                Locality     = "replacementLocality",
                Address3     = "replacementAddress3",
                PostCode     = "replacementPostcode",
                SelectedUPRN = "1234",
                Northing     = 7,
                Easting      = 5
            };

            var address = UriHelper.SerializeToUrlToken(replacementAddress);

            GetMock <IGroupReadService>().Setup(x => x.GetAllByEstablishmentUrnAsync(It.IsAny <int>(), It.IsAny <IPrincipal>())).ReturnsAsync(new[] { new GroupModel {
                                                                                                                                                          Name = "Group 1", GroupUId = 1000
                                                                                                                                                      } });
            GetMock <IEstablishmentReadService>().Setup(e => e.GetAsync(It.IsAny <int>(), It.IsAny <IPrincipal>())).ReturnsAsync(() => new ServiceResultDto <EstablishmentModel>(establishment));
            GetMock <IMapper>().Setup(m => m.Map <EditEstablishmentModel>(establishment)).Returns(editEstabModel);
            GetMock <IMapper>().Setup(m => m.Map(It.IsAny <IEBTModel>(), editEstabModel)).Returns(editEstabModel);
            GetMock <IEstablishmentReadService>().Setup(e => e.GetEditPolicyAsync(establishment, It.IsAny <IPrincipal>())).ReturnsAsync(() => new EstablishmentEditPolicyEnvelope {
                EditPolicy = new EstablishmentDisplayEditPolicy {
                    IEBTDetail = new IEBTDetailDisplayEditPolicy()
                }
            });
            GetMock <IPrincipal>().Setup(p => p.IsInRole(It.IsAny <string>())).Returns(true);
            GetMock <ICSCPService>().Setup(x => x.CheckExists(It.IsAny <int>(), It.IsAny <string>())).ReturnsAsync(true);
            GetMock <ICSCPService>().Setup(x => x.SchoolURL(It.IsAny <int>(), It.IsAny <string>())).Returns("https://cscp.azurewebsites.net/school/123456");
            GetMock <IFBService>().Setup(x => x.CheckExists(It.IsAny <int>())).ReturnsAsync(true);
            GetMock <IFBService>().Setup(x => x.SchoolURL(It.IsAny <int>())).Returns("https://sfb.azurewebsites.net/school/detail?urn=123456");

            SetupCachedLookupService();

            var response = await ObjectUnderTest.EditDetails(4, address);

            Assert.That(response is ViewResult);
            var viewResult = (ViewResult)response;

            Assert.That(viewResult.Model is EditEstablishmentModel);
            var model = (EditEstablishmentModel)viewResult.Model;

            Assert.That(model.Address_CityOrTown == replacementAddress.Town);
            Assert.That(model.Address_CountryId == replacementAddress.CountryId);
            Assert.That(model.Address_CountyId == replacementAddress.CountyId);
            Assert.That(model.Address_Line1 == replacementAddress.Street);
            Assert.That(model.Address_Locality == replacementAddress.Locality);
            Assert.That(model.Address_Line3 == replacementAddress.Address3);
            Assert.That(model.Address_PostCode == replacementAddress.PostCode);
            Assert.That(model.Address_UPRN == replacementAddress.SelectedUPRN);
            Assert.That(model.Northing == replacementAddress.Northing);
            Assert.That(model.Easting == replacementAddress.Easting);
        }
        public async Task Estab_EditDetails_Null_Id()
        {
            var response = await ObjectUnderTest.EditDetails(null, null);

            Assert.IsTrue(response is HttpNotFoundResult);
        }
        public async Task Estab_EditDetails_Id_NotFound()
        {
            GetMock <IEstablishmentReadService>().Setup(e => e.GetAsync(It.IsAny <int>(), It.IsAny <IPrincipal>())).ReturnsAsync(() => new ServiceResultDto <EstablishmentModel>(eServiceResultStatus.NotFound));

            Assert.That(async() => await ObjectUnderTest.EditDetails(4, null), Throws.TypeOf <EntityNotFoundException>(), "Expected exception of type EntityNotFoundException");
        }
Пример #5
0
        public async Task Group_EditDetails()
        {
            var grs       = GetMock <IGroupReadService>();
            var estabList = CreateEstabList();

            GetMock <IPrincipal>().Setup(x => x.IsInRole(It.IsAny <string>())).Returns(true);

            InjectBasicLAsAndGroupTypes();

            var domainModel = new GroupModel
            {
                Address = new AddressDto
                {
                    CityOrTown = Faker.Address.City(),
                    Line1      = Faker.Address.StreetAddress(),
                    Line2      = Faker.Address.SecondaryAddress(),
                    Line3      = Faker.Address.UkCounty(),
                    PostCode   = Faker.Address.UkPostCode()
                },
                ClosedDate           = DateTime.Now,
                CompaniesHouseNumber = "67829662",
                ConfirmationUpToDateGovernanceRequired = true,
                ConfirmationUpToDateGovernance_LastConfirmationDate = DateTime.Now,
                DelegationInformation = "delinf",
                GroupId             = "123",
                GroupTypeId         = (int)eLookupGroupType.Federation,
                GroupUId            = 123,
                HeadFirstName       = Faker.Name.First(),
                HeadLastName        = Faker.Name.Last(),
                HeadTitleId         = 1,
                LocalAuthorityId    = 1,
                ManagerEmailAddress = Faker.Internet.Email(),
                Name     = "I am Federation",
                OpenDate = DateTime.Now.Subtract(TimeSpan.FromDays(10)),
                StatusId = (int)eLookupGroupStatus.Open
            };

            grs.Setup(x => x.GetAsync(It.IsAny <int>(), It.IsAny <IPrincipal>())).ReturnsAsync(new ServiceResultDto <GroupModel>(domainModel));
            grs.Setup(x => x.GetEstablishmentGroupsAsync(It.IsAny <int>(), It.IsAny <IPrincipal>(), true)).ReturnsAsync(estabList);

            var response = (ViewResult)await ObjectUnderTest.EditDetails(123);

            var vm = (GroupEditorViewModel)response.Model;

            Assert.That(response.ViewName, Is.EqualTo("EditDetails"));
            Assert.That(vm.GroupName, Is.EqualTo("I am Federation"));
            Assert.That(vm.GroupId, Is.EqualTo("123"));
            Assert.That(vm.GroupType, Is.EqualTo(eLookupGroupType.Federation));
            Assert.That(vm.GroupTypeId, Is.EqualTo((int)eLookupGroupType.Federation));
            Assert.That(vm.GroupTypeMode, Is.EqualTo(eGroupTypeMode.Federation));
            Assert.That(vm.GroupTypeName, Is.EqualTo("placeholder"));
            Assert.That(vm.GroupUId, Is.EqualTo(123));
            Assert.That(vm.InEditMode, Is.True);
            Assert.That(vm.IsLocalAuthorityEditable, Is.False);
            Assert.That(vm.LinkedEstablishments.Establishments.Count, Is.EqualTo(10));
            Assert.That(vm.ListOfEstablishmentsPluralName, Is.EqualTo("Schools"));
            Assert.That(vm.LocalAuthorityId, Is.EqualTo(1));
            Assert.That(vm.LocalAuthorityName, Is.EqualTo("placeholder"));
            Assert.That(vm.ManagerEmailAddress, Is.EqualTo(domainModel.ManagerEmailAddress));
            Assert.That(vm.OpenDate.ToDateTime().GetValueOrDefault().Date, Is.EqualTo(domainModel.OpenDate.GetValueOrDefault().Date));
            Assert.That(vm.ClosedDate.ToDateTime().GetValueOrDefault().Date, Is.EqualTo(domainModel.ClosedDate.GetValueOrDefault().Date));
            Assert.That(vm.OpenDateLabel, Is.EqualTo("Open date"));
            Assert.That(vm.PageTitle, Is.EqualTo("Edit federation"));
            Assert.That(vm.StatusId, Is.EqualTo((int)eLookupGroupStatus.Open));
            Assert.That(vm.Address, Is.EqualTo(domainModel.Address.ToString()));
            Assert.That(vm.CanUserCloseAndMarkAsCreatedInError, Is.False);
            Assert.That(vm.CCLeadCentreUrn, Is.EqualTo(estabList.Single(x => x.CCIsLeadCentre == true).Urn));
        }