Example #1
0
        public static async Task ThenSolutionDetailExist(Table table)
        {
            var expectedSolutionDetails = table.CreateSet <SolutionDetailTable>().Select(m => new
            {
                m.Solution,
                AboutUrl             = string.IsNullOrWhiteSpace(m.AboutUrl) ? null : m.AboutUrl,
                Features             = string.IsNullOrWhiteSpace(m.Features) ? null : m.Features,
                Summary              = string.IsNullOrWhiteSpace(m.SummaryDescription) ? null : m.SummaryDescription,
                FullDescription      = string.IsNullOrWhiteSpace(m.FullDescription) ? null : m.FullDescription,
                ClientApplication    = string.IsNullOrWhiteSpace(m.ClientApplication) ? null : JToken.Parse(m.ClientApplication).ToString(),
                Hosting              = string.IsNullOrWhiteSpace(m.Hosting) ? null : JToken.Parse(m.Hosting).ToString(),
                RoadMap              = string.IsNullOrWhiteSpace(m.RoadMap) ? null : m.RoadMap,
                IntegrationsUrl      = string.IsNullOrWhiteSpace(m.IntegrationsUrl) ? null : m.IntegrationsUrl,
                ImplementationDetail = string.IsNullOrWhiteSpace(m.ImplementationDetail) ? null : m.ImplementationDetail,
            });

            var solutionDetails = await SolutionDetailEntity.FetchAllAsync();

            solutionDetails.Select(m => new
            {
                Solution = m.SolutionId,
                m.AboutUrl,
                m.Features,
                m.Summary,
                m.FullDescription,
                m.RoadMap,
                m.IntegrationsUrl,
                m.ImplementationDetail,
                ClientApplication = string.IsNullOrWhiteSpace(m.ClientApplication) ? null : JToken.Parse(m.ClientApplication).ToString(),
                Hosting           = string.IsNullOrWhiteSpace(m.Hosting) ? null : JToken.Parse(m.Hosting).ToString()
            }).Should().BeEquivalentTo(expectedSolutionDetails);
        }
Example #2
0
 public SolutionDetailEntityBuilder()
 {
     // Default
     _solutionDetailEntity = new SolutionDetailEntity
     {
         SolutionId        = "Sln1",
         PublishedStatusId = 1
     };
 }
Example #3
0
        public async Task ShouldUpdateImplementationTimescales()
        {
            const string expectedResult = "some implementation timescales description";

            await CatalogueItemEntityBuilder
            .Create()
            .WithCatalogueItemId(_solution1Id)
            .WithName(_solution1Id)
            .WithPublishedStatusId((int)PublishedStatus.Published)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync();

            await SolutionEntityBuilder.Create()
            .WithId(_solution1Id)
            .Build()
            .InsertAsync();

            await SolutionDetailEntityBuilder.Create()
            .WithSolutionId(_solution1Id)
            .WithImplementationTimescales(expectedResult)
            .Build()
            .InsertAndSetCurrentForSolutionAsync();

            var mockRequest = new Mock <IUpdateImplementationTimescalesRequest>();

            mockRequest.Setup(m => m.SolutionId).Returns(_solution1Id);
            mockRequest.Setup(m => m.Description).Returns(expectedResult);

            await _solutionDetailRepository.UpdateImplementationTimescalesAsync(mockRequest.Object, new CancellationToken());

            var solution = await SolutionEntity.GetByIdAsync(_solution1Id);

            solution.Id.Should().Be(_solution1Id);

            var marketingData = await SolutionDetailEntity.GetBySolutionIdAsync(_solution1Id);

            marketingData.ImplementationDetail.Should().Be(expectedResult);

            (await marketingData.LastUpdated.SecondsFromNow()).Should().BeLessOrEqualTo(5);
        }
Example #4
0
        public async Task ShouldUpdateFeatures()
        {
            await CatalogueItemEntityBuilder
            .Create()
            .WithCatalogueItemId(_solution1Id)
            .WithName(_solution1Id)
            .WithPublishedStatusId((int)PublishedStatus.Published)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync();

            await SolutionEntityBuilder.Create()
            .WithId(_solution1Id)
            .Build()
            .InsertAsync();

            await SolutionDetailEntityBuilder.Create()
            .WithSolutionId(_solution1Id)
            .WithAboutUrl("AboutUrl")
            .WithFeatures("Features")
            .Build()
            .InsertAndSetCurrentForSolutionAsync();

            var mockUpdateSolutionFeaturesRequest = new Mock <IUpdateSolutionFeaturesRequest>();

            mockUpdateSolutionFeaturesRequest.Setup(m => m.SolutionId).Returns(_solution1Id);
            mockUpdateSolutionFeaturesRequest.Setup(m => m.Features).Returns("Features4");

            await _solutionDetailRepository.UpdateFeaturesAsync(mockUpdateSolutionFeaturesRequest.Object, new CancellationToken());

            var solution = await SolutionEntity.GetByIdAsync(_solution1Id);

            solution.Id.Should().Be(_solution1Id);

            var marketingData = await SolutionDetailEntity.GetBySolutionIdAsync(_solution1Id);

            marketingData.AboutUrl.Should().Be("AboutUrl");
            marketingData.Features.Should().Be("Features4");

            (await marketingData.LastUpdated.SecondsFromNow()).Should().BeLessOrEqualTo(5);
        }
Example #5
0
        public async Task ShouldUpdateHosting()
        {
            const string expectedResult = "{ 'SomethingElse': [] }";

            await CatalogueItemEntityBuilder
            .Create()
            .WithCatalogueItemId(_solution1Id)
            .WithName(_solution1Id)
            .WithPublishedStatusId((int)PublishedStatus.Published)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync();

            await SolutionEntityBuilder.Create()
            .WithId(_solution1Id)
            .Build()
            .InsertAsync();

            await SolutionDetailEntityBuilder.Create()
            .WithSolutionId(_solution1Id)
            .WithHosting("{ 'Something': [] }")
            .Build()
            .InsertAndSetCurrentForSolutionAsync();

            var mockUpdateHostingRequest = new Mock <IUpdateSolutionHostingRequest>();

            mockUpdateHostingRequest.Setup(m => m.SolutionId).Returns(_solution1Id);
            mockUpdateHostingRequest.Setup(m => m.Hosting).Returns(expectedResult);

            await _solutionDetailRepository.UpdateHostingAsync(mockUpdateHostingRequest.Object, new CancellationToken());

            var solution = await SolutionEntity.GetByIdAsync(_solution1Id);

            solution.Id.Should().Be(_solution1Id);

            var marketingData = await SolutionDetailEntity.GetBySolutionIdAsync(_solution1Id);

            marketingData.Hosting.Should().Be(expectedResult);

            (await marketingData.LastUpdated.SecondsFromNow()).Should().BeLessOrEqualTo(5);
        }
        public async Task ShouldUpdateClientApplicationType()
        {
            await SolutionEntityBuilder.Create()
            .WithName("Solution1")
            .WithId(_solution1Id)
            .WithOrganisationId(_org1Id)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync()
            .ConfigureAwait(false);

            await SolutionDetailEntityBuilder.Create()
            .WithSolutionId(_solution1Id)
            .WithAboutUrl("AboutUrl")
            .WithClientApplication("Browser-based")
            .Build()
            .InsertAndSetCurrentForSolutionAsync()
            .ConfigureAwait(false);

            var mockUpdateSolutionClientApplicationRequest = new Mock <IUpdateSolutionClientApplicationRequest>();

            mockUpdateSolutionClientApplicationRequest.Setup(m => m.SolutionId).Returns(_solution1Id);
            mockUpdateSolutionClientApplicationRequest.Setup(m => m.ClientApplication).Returns("Browser-based");

            await _solutionDetailRepository.UpdateClientApplicationAsync(mockUpdateSolutionClientApplicationRequest.Object, new CancellationToken())
            .ConfigureAwait(false);

            var solution = await SolutionEntity.GetByIdAsync(_solution1Id)
                           .ConfigureAwait(false);

            solution.Id.Should().Be(_solution1Id);

            var marketingData = await SolutionDetailEntity.GetBySolutionIdAsync(_solution1Id)
                                .ConfigureAwait(false);

            marketingData.AboutUrl.Should().Be("AboutUrl");
            marketingData.ClientApplication.Should().Be("Browser-based");

            (await marketingData.LastUpdated.SecondsFromNow().ConfigureAwait(false)).Should().BeLessOrEqualTo(5);
        }
        public static async Task ThenSolutionDetailExist(Table table)
        {
            var expectedSolutionDetails = table.CreateSet <SolutionDetailTable>().Select(m => new
            {
                m.Solution,
                AboutUrl          = string.IsNullOrWhiteSpace(m.AboutUrl) ? null : m.AboutUrl,
                Features          = string.IsNullOrWhiteSpace(m.Features) ? null : m.Features,
                Summary           = string.IsNullOrWhiteSpace(m.SummaryDescription) ? null : m.SummaryDescription,
                FullDescription   = string.IsNullOrWhiteSpace(m.FullDescription) ? null : m.FullDescription,
                ClientApplication = string.IsNullOrWhiteSpace(m.ClientApplication) ? null : JToken.Parse(m.ClientApplication).ToString()
            });
            var solutionDetails = await SolutionDetailEntity.FetchAllAsync().ConfigureAwait(false);

            solutionDetails.Select(m => new
            {
                Solution = m.SolutionId,
                m.AboutUrl,
                m.Features,
                m.Summary,
                m.FullDescription,
                ClientApplication = string.IsNullOrWhiteSpace(m.ClientApplication) ? null : JToken.Parse(m.ClientApplication).ToString()
            }).Should().BeEquivalentTo(expectedSolutionDetails);
        }
        public static async Task LastUpdatedHasUpdatedOnSolutionDetail(string solutionId)
        {
            var solutionDetail = await SolutionDetailEntity.GetBySolutionIdAsync(solutionId).ConfigureAwait(false);

            (await solutionDetail.LastUpdated.SecondsFromNow().ConfigureAwait(false)).Should().BeLessOrEqualTo(5);
        }
        public static async Task GivenASolutionDetailDoesNotExist(string solutionId)
        {
            var solutionDetailList = await SolutionDetailEntity.FetchAllAsync().ConfigureAwait(false);

            solutionDetailList.Select(x => x.SolutionId).Should().NotContain(solutionId);
        }
        public async Task ShouldUpdateSummary()
        {
            await SolutionEntityBuilder.Create()
            .WithName("Solution1")
            .WithId(_solution1Id)
            .WithOrganisationId(_org1Id)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync()
            .ConfigureAwait(false);

            await SolutionEntityBuilder.Create()
            .WithName("Solution2")
            .WithId(_solution2Id)
            .WithOrganisationId(_org1Id)
            .WithSupplierId(_supplierId)
            .Build()
            .InsertAsync()
            .ConfigureAwait(false);

            await SolutionDetailEntityBuilder.Create()
            .WithSolutionId(_solution1Id)
            .WithAboutUrl("AboutUrl1")
            .WithFeatures("Features")
            .WithClientApplication("Browser-based")
            .Build()
            .InsertAndSetCurrentForSolutionAsync()
            .ConfigureAwait(false);

            var mockUpdateSolutionSummaryRequest = new Mock <IUpdateSolutionSummaryRequest>();

            mockUpdateSolutionSummaryRequest.Setup(m => m.SolutionId).Returns(_solution1Id);
            mockUpdateSolutionSummaryRequest.Setup(m => m.Summary).Returns("Sln4Summary");
            mockUpdateSolutionSummaryRequest.Setup(m => m.Description).Returns("Sln4Description");
            mockUpdateSolutionSummaryRequest.Setup(m => m.AboutUrl).Returns("AboutUrl4");

            await _solutionDetailRepository.UpdateSummaryAsync(mockUpdateSolutionSummaryRequest.Object, new CancellationToken())
            .ConfigureAwait(false);

            var solution = await SolutionEntity.GetByIdAsync(_solution1Id)
                           .ConfigureAwait(false);

            solution.Id.Should().Be(_solution1Id);
            solution.Name.Should().Be("Solution1");

            solution = await SolutionEntity.GetByIdAsync(_solution2Id)
                       .ConfigureAwait(false);

            solution.Id.Should().Be(_solution2Id);
            solution.Name.Should().Be("Solution2");

            var solutionDetail = await SolutionDetailEntity.GetBySolutionIdAsync(_solution1Id)
                                 .ConfigureAwait(false);

            solutionDetail.Summary.Should().Be("Sln4Summary");
            solutionDetail.FullDescription.Should().Be("Sln4Description");
            solutionDetail.AboutUrl.Should().Be("AboutUrl4");
            solutionDetail.Features.Should().Be("Features");
            solutionDetail.ClientApplication.Should().Be("Browser-based");
            (await solutionDetail.LastUpdated.SecondsFromNow().ConfigureAwait(false)).Should().BeLessOrEqualTo(5);
        }