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