예제 #1
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenPublishedProvidersForReleaseRequest_ReturnsCreateVersionRequestWithReleaseVersionSet()
        {
            //Arrange
            const int majorVersion = 1;
            const int minorVersion = 0;

            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        MajorVersion = majorVersion,
                        MinorVersion = minorVersion
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(
                publishedProviders, new Reference("id1", "Joe Bloggs"), PublishedProviderStatus.Released);

            //Assert
            results
            .Should()
            .HaveCount(1);

            results.First().PublishedProvider.Released.Should().NotBeNull();
        }
예제 #2
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenPublishedProviders_ReturnsCreateVersionRequestWithPublishStatus(
            PublishedProviderStatus currentStatus, PublishedProviderStatus givenPublishedProviderStatus, PublishStatus expectedPublishStatus)
        {
            //Arrange
            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status = currentStatus
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(
                publishedProviders, new Reference("id1", "Joe Bloggs"), givenPublishedProviderStatus);

            //Assert
            results
            .Should()
            .HaveCount(1);

            results.First().NewVersion.PublishStatus.Should().Be(expectedPublishStatus);
        }
예제 #3
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenTwoPublishedProvidersButStatusHasntChangedForOne_ReturnsListWithTwoCreatedVersionRequest_WhenForceUpdated()
        {
            //Arrange
            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status = PublishedProviderStatus.Approved
                    }
                },
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status = PublishedProviderStatus.Updated
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(publishedProviders, new Reference(), PublishedProviderStatus.Approved, force: true);

            //Assert
            results
            .Should()
            .HaveCount(2);
        }
예제 #4
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenApprovedPublishedProvidersForUpdateRequest_ReturnsCreateVersionRequestWithVersionUpgrade()
        {
            //Arrange
            const int majorVersion = 1;
            const int minorVersion = 0;

            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status       = PublishedProviderStatus.Approved,
                        MajorVersion = majorVersion,
                        MinorVersion = minorVersion
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(
                publishedProviders, new Reference("id1", "Joe Bloggs"), PublishedProviderStatus.Updated);

            //Assert
            results
            .Should()
            .HaveCount(1);

            results.First().NewVersion.MajorVersion.Should().Be(majorVersion);
            results.First().NewVersion.MinorVersion.Should().Be(minorVersion + 1);
        }
예제 #5
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenNullPublishedProviders_ThrowsArgumentException()
        {
            //Arrange
            IEnumerable <PublishedProvider> publishedProviders = null;

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            Action test = () => service.AssemblePublishedProviderCreateVersionRequests(publishedProviders, null, PublishedProviderStatus.Approved);

            //Assert
            test
            .Should()
            .ThrowExactly <ArgumentNullException>();
        }
예제 #6
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenPublishedProvidersButNoCurrentObject_ThrowsArgumentException()
        {
            //Arrange
            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider()
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            Action test = () => service.AssemblePublishedProviderCreateVersionRequests(publishedProviders, new Reference(), PublishedProviderStatus.Approved);

            //Assert
            test
            .Should()
            .ThrowExactly <ArgumentNullException>();
        }
예제 #7
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenPublishedProviders_EnsuresAssembled()
        {
            //Arrange
            const string providerId      = "123";
            const string fundingPeriodId = "456";
            const string fundingStreamId = "789";

            string partitionKey = $"publishedprovider-{providerId}-{fundingPeriodId}-{fundingStreamId}";

            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status          = PublishedProviderStatus.Updated,
                        ProviderId      = providerId,
                        FundingPeriodId = fundingPeriodId,
                        FundingStreamId = fundingStreamId
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(
                publishedProviders, new Reference("id1", "Joe Bloggs"), PublishedProviderStatus.Approved);

            //Assert
            results
            .Should()
            .HaveCount(1);

            results.First().NewVersion.FundingPeriodId.Should().Be(fundingPeriodId);
            results.First().NewVersion.FundingStreamId.Should().Be(fundingStreamId);
            results.First().NewVersion.ProviderId.Should().Be(providerId);
            results.First().NewVersion.PartitionKey.Should().Be(partitionKey);
            results.First().NewVersion.Status.Should().Be(PublishedProviderStatus.Approved);
            results.First().NewVersion.Author.Id.Should().Be("id1");
            results.First().NewVersion.Author.Name.Should().Be("Joe Bloggs");
        }
예제 #8
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenOnePublishedProvidersButStatusHasntChanged_ReturnsEmptyCreateVersionrequests()
        {
            //Arrange
            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status = PublishedProviderStatus.Approved
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(publishedProviders, new Reference(), PublishedProviderStatus.Approved);

            //Assert
            results
            .Should()
            .BeEmpty();
        }
예제 #9
0
        public void AssemblePublishedProviderCreateVersionRequests_GivenPublishedProvidersWithJobIdandCorrelationId_PopulatesCreateVersionRequestsWithJobIdandCorrelationId()
        {
            //Arrange
            const string providerId      = "123";
            const string fundingPeriodId = "456";
            const string fundingStreamId = "789";
            const string jobId           = "JobId-abc-133";
            const string correlationId   = "CorrelationId-xyz-123";

            string partitionKey = $"publishedprovider-{providerId}-{fundingPeriodId}-{fundingStreamId}";

            IEnumerable <PublishedProvider> publishedProviders = new[]
            {
                new PublishedProvider
                {
                    Current = new PublishedProviderVersion
                    {
                        Status          = PublishedProviderStatus.Updated,
                        ProviderId      = providerId,
                        FundingPeriodId = fundingPeriodId,
                        FundingStreamId = fundingStreamId
                    }
                }
            };

            PublishedProviderVersioningService service = CreateVersioningService();

            //Act
            IEnumerable <PublishedProviderCreateVersionRequest> results = service.AssemblePublishedProviderCreateVersionRequests(
                publishedProviders, new Reference("id1", "Joe Bloggs"), PublishedProviderStatus.Approved, jobId, correlationId);

            IEnumerable <PublishedProviderCreateVersionRequest> expectedproviders = new List <PublishedProviderCreateVersionRequest>()
            {
                new PublishedProviderCreateVersionRequest()
                {
                    NewVersion = new PublishedProviderVersion()
                    {
                        FundingPeriodId = fundingPeriodId,
                        FundingStreamId = fundingStreamId,
                        ProviderId      = providerId,
                        Status          = PublishedProviderStatus.Approved,
                        PublishStatus   = PublishStatus.Approved,
                        Author          = new Reference()
                        {
                            Id   = "id1",
                            Name = "Joe Bloggs"
                        },
                        JobId         = jobId,
                        CorrelationId = correlationId
                    },
                    PublishedProvider = new PublishedProvider()
                    {
                        Current = new PublishedProviderVersion()
                        {
                            FundingPeriodId = fundingPeriodId,
                            FundingStreamId = fundingStreamId,
                            ProviderId      = providerId,
                            Status          = PublishedProviderStatus.Updated,
                            PublishStatus   = PublishStatus.Draft
                        }
                    }
                }
            };


            //Assert
            results
            .Should()
            .HaveCount(1);


            results
            .Select(_ => _.NewVersion.Id)
            .Should()
            .BeEquivalentTo(expectedproviders.Select(_ => _.NewVersion.Id));
        }