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