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"));
        }
Пример #3
0
        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
            })));
        }
Пример #5
0
        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);
        }