public async Task UploadsSuppliedStreamToBlobStoreWithANewBatchIdAndRespondsWithSaasUrlAndBatchId() { byte[] expectedUpload = NewRandomBytes(); string expectedSaasUrl = NewRandomString(); string expectedBatchId = NewRandomString(); DateTimeOffset utcNow = NewRandomDate(); BatchUploadBlobName blobName = new BatchUploadBlobName(expectedBatchId); GivenTheNewBatchId(expectedBatchId); AndTheBlobIsCreated(blobName); AndTheCurrentDateTime(utcNow); AndTheSaasUrl(blobName, utcNow, expectedSaasUrl); OkObjectResult result = await WhenTheBatchIsUploaded(NewBatchUploadRequest(_ => _.WithStream(expectedUpload))) as OkObjectResult; result? .Value .Should() .BeEquivalentTo(new BatchUploadResponse { Url = expectedSaasUrl, BatchId = expectedBatchId }); AndTheStreamWasUploaded(expectedUpload); }
private void GivenTheUploadedExcelFile(string batchId, Stream stream) { BatchUploadBlobName blobName = new BatchUploadBlobName(batchId); Mock <ICloudBlob> blob = new Mock <ICloudBlob>(); _blobClient.Setup(_ => _.GetBlobReferenceFromServerAsync(blobName, "batchuploads")) .ReturnsAsync(blob.Object); _blobClient.Setup(_ => _.DownloadToStreamAsync(blob.Object)) .ReturnsAsync(stream); }
public void ProcessFailsIfAnyUkprnsAreMissingForTheFundingStreamAndPeriodInTheSuppliedBatchDetails() { string batchId = NewRandomString(); string fundingStreamId = NewRandomString(); string fundingPeriodId = NewRandomString(); string ukprn1 = NewRandomString(); string ukprn2 = NewRandomString(); string ukprn3 = NewRandomString(); string ukprn4 = NewRandomString(); string ukprn5 = NewRandomString(); string ukprn6 = NewRandomString(); string publishedProviderId3 = NewRandomString(); BatchUploadBlobName uploadedBlobName = new BatchUploadBlobName(batchId); GivenThePagesOfUkprns(uploadedBlobName, AsArray(ukprn1, ukprn2), AsArray(ukprn3), AsArray(ukprn4, ukprn5), AsArray(ukprn6)); AndThePublisherProviderIds(fundingStreamId, fundingPeriodId, AsArray(ukprn3), (ukprn3, publishedProviderId3)); Action invocation = () => WhenTheBatchUploadIsValidated(NewMessage(_ => _.WithUserProperty(BatchId, batchId) .WithUserProperty(FundingStreamId, fundingStreamId) .WithUserProperty(FundingPeriodId, fundingPeriodId) .WithUserProperty(SpecificationId, NewRandomString()))) .GetAwaiter() .GetResult(); string outcome = $"Did not locate the following ukprns for {fundingStreamId} and {fundingPeriodId}:\n{ukprn1},{ukprn2},{ukprn4},{ukprn5},{ukprn6}"; invocation .Should() .Throw <NonRetriableException>() .WithMessage(outcome); _batchUploadReader.VerifyAll(); }