public async Task Get_ProviderHasAlias_RendersChangeDisplayNameLink(ProviderDisplayNameSource displayNameSource) { // Arrange var provider = await TestData.CreateProvider( providerName : "My Provider", alias : "My Trading Name", displayNameSource : displayNameSource); var request = new HttpRequestMessage(HttpMethod.Get, $"providers?providerId={provider.ProviderId}"); // Act var response = await HttpClient.SendAsync(request); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var doc = await response.GetDocument(); Assert.NotNull(doc.GetElementByTestId("ChangeDisplayName")); }
public async Task Get_ProviderHasAlias_RendersCorrectDisplayName( ProviderDisplayNameSource displayNameSource, string expectedDisplayName) { // Arrange var provider = await TestData.CreateProvider( providerName : "My Provider", alias : "My Trading Name", displayNameSource : displayNameSource); var request = new HttpRequestMessage(HttpMethod.Get, $"providers?providerId={provider.ProviderId}"); // Act var response = await HttpClient.SendAsync(request); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var doc = await response.GetDocument(); Assert.Equal(expectedDisplayName, doc.GetSummaryListValueWithKey("Display name")); }
public async Task Get_ValidRequest_RendersExpectedOutput( ProviderDisplayNameSource displayNameSource, string expectedCheckedElementId) { // Arrange var provider = await TestData.CreateProvider( providerName : "Provider name", alias : "Trading name", displayNameSource : displayNameSource); var request = new HttpRequestMessage( HttpMethod.Get, $"providers/display-name?providerId={provider.ProviderId}"); // Act var response = await HttpClient.SendAsync(request); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var doc = await response.GetDocument(); Assert.Equal("checked", doc.GetElementById(expectedCheckedElementId).GetAttribute("checked")); }
public async Task <Provider> CreateProvider( string providerName = "Test Provider", ProviderType providerType = ProviderType.FE | ProviderType.Apprenticeships, string providerStatus = "Active", ApprenticeshipQAStatus?apprenticeshipQAStatus = ApprenticeshipQAStatus.Passed, string marketingInformation = "", string courseDirectoryName = "", string alias = "", ProviderDisplayNameSource displayNameSource = default, IEnumerable <CreateProviderContact> contacts = null, IReadOnlyCollection <Guid> tLevelDefinitionIds = null, bool?bulkUploadInProgress = null, ProviderStatus status = ProviderStatus.Onboarded) { if (!providerType.HasFlag(ProviderType.TLevels) && (tLevelDefinitionIds?.Count ?? 0) != 0) { throw new ArgumentException( $"{nameof(tLevelDefinitionIds)} can only be specified for T Level providers.", nameof(tLevelDefinitionIds)); } var providerId = Guid.NewGuid(); var ukprn = _uniqueIdHelper.GenerateProviderUkprn(); var result = await _cosmosDbQueryDispatcher.ExecuteQuery(new CreateProvider() { ProviderId = providerId, Ukprn = ukprn, ProviderType = providerType, ProviderName = providerName, ProviderStatus = providerStatus, MarketingInformation = marketingInformation, CourseDirectoryName = courseDirectoryName, Alias = alias, BulkUploadInProgress = bulkUploadInProgress, ProviderContact = contacts?.Select(c => new ProviderContact() { ContactAddress = new ProviderContactAddress() { Items = c.AddressItems, Locality = c.AddressLocality, PAON = new ProviderContactAddressPAON() { Description = c.AddressPaonDescription }, SAON = new ProviderContactAddressSAON() { Description = c.AddressSaonDescription }, PostTown = c.AddressPostTown, County = c.AddressCounty, PostCode = c.AddressPostCode, StreetDescription = c.AddressStreetDescription }, ContactPersonalDetails = new ProviderContactPersonalDetails() { PersonGivenName = new[] { c.PersonalDetailsGivenName }, PersonFamilyName = c.PersonalDetailsFamilyName }, ContactEmail = c.ContactEmail, ContactTelephone1 = c.ContactTelephone1, ContactType = c.ContactType, ContactWebsiteAddress = c.ContactWebsiteAddress, LastUpdated = _clock.UtcNow }), DateUpdated = _clock.UtcNow, UpdatedBy = "TestData", Status = status }); Assert.Equal(CreateProviderResult.Ok, result); var provider = await _cosmosDbQueryDispatcher.ExecuteQuery( new Core.DataStore.CosmosDb.Queries.GetProviderById() { ProviderId = providerId }); await _sqlDataSync.SyncProvider(provider); if (apprenticeshipQAStatus.HasValue) { await WithSqlQueryDispatcher( dispatcher => dispatcher.ExecuteQuery(new SetProviderApprenticeshipQAStatus() { ProviderId = providerId, ApprenticeshipQAStatus = apprenticeshipQAStatus.Value })); } if (displayNameSource != default) { await WithSqlQueryDispatcher( dispatcher => dispatcher.ExecuteQuery(new SetProviderDisplayNameSource() { ProviderId = providerId, DisplayNameSource = displayNameSource })); } if ((tLevelDefinitionIds?.Count ?? 0) != 0) { await SetProviderTLevelDefinitions(providerId, tLevelDefinitionIds); } return(await WithSqlQueryDispatcher( dispatcher => dispatcher.ExecuteQuery(new GetProviderById() { ProviderId = providerId }))); }
public async Task <Guid> CreateProvider( int ukprn = 12345, string providerName = "Test Provider", ProviderType providerType = ProviderType.FE | ProviderType.Apprenticeships, string providerStatus = "Active", ApprenticeshipQAStatus?apprenticeshipQAStatus = ApprenticeshipQAStatus.Passed, string marketingInformation = "", string courseDirectoryName = "", string alias = "", ProviderDisplayNameSource displayNameSource = default, IEnumerable <CreateProviderContact> contacts = null) { var providerId = Guid.NewGuid(); var result = await _cosmosDbQueryDispatcher.ExecuteQuery(new CreateProvider() { ProviderId = providerId, Ukprn = ukprn, ProviderType = providerType, ProviderName = providerName, ProviderStatus = providerStatus, MarketingInformation = marketingInformation, CourseDirectoryName = courseDirectoryName, Alias = alias, ProviderContact = contacts?.Select(c => new ProviderContact() { ContactAddress = new ProviderContactAddress() { Items = c.AddressItems, Locality = c.AddressLocality, PAON = new ProviderContactAddressPAON() { Description = c.AddressPaonDescription }, SAON = new ProviderContactAddressSAON() { Description = c.AddressSaonDescription }, PostTown = c.AddressPostTown, PostCode = c.AddressPostCode, StreetDescription = c.AddressStreetDescription }, ContactPersonalDetails = new ProviderContactPersonalDetails() { PersonGivenName = new[] { c.PersonalDetailsGivenName }, PersonFamilyName = c.PersonalDetailsFamilyName }, ContactEmail = c.ContactEmail, ContactTelephone1 = c.ContactTelephone1, ContactType = c.ContactType, ContactWebsiteAddress = c.ContactWebsiteAddress, LastUpdated = _clock.UtcNow }), DateUpdated = _clock.UtcNow, UpdatedBy = "TestData" }); Assert.Equal(CreateProviderResult.Ok, result); var provider = await _cosmosDbQueryDispatcher.ExecuteQuery( new Core.DataStore.CosmosDb.Queries.GetProviderById() { ProviderId = providerId }); await _sqlDataSync.SyncProvider(provider); if (apprenticeshipQAStatus.HasValue) { await WithSqlQueryDispatcher( dispatcher => dispatcher.ExecuteQuery(new SetProviderApprenticeshipQAStatus() { ProviderId = providerId, ApprenticeshipQAStatus = apprenticeshipQAStatus.Value })); } if (displayNameSource != default) { await WithSqlQueryDispatcher( dispatcher => dispatcher.ExecuteQuery(new SetProviderDisplayNameSource() { ProviderId = providerId, DisplayNameSource = displayNameSource })); } return(providerId); }