public async Task UploadBatchDelegatesToPublishingEndPoint()
        {
            Mock <IFormFile> file = new Mock <IFormFile>();

            byte[]       contents = { 3, 63, 8, 100 };
            MemoryStream ms       = new MemoryStream();
            StreamWriter writer   = new StreamWriter(ms);

            writer.Write(File.Create("blah blah"));
            await writer.FlushAsync();

            ms.Position = 0;
            file.Setup(_ => _.CopyToAsync(It.IsAny <Stream>(), It.IsAny <CancellationToken>()))
            .Returns((Stream stream, CancellationToken token) => ms.CopyToAsync(stream))
            .Verifiable();
            file.SetupGet(x => x.Length).Returns(contents.Length);
            BatchUploadResponse expectedResponse = new BatchUploadResponse {
                BatchId = Guid.NewGuid().ToString(), Url = "http:whatever"
            };

            _publishingApiClient
            .UploadBatch(Arg.Any <BatchUploadRequest>())
            .Returns(new ApiResponse <BatchUploadResponse>(HttpStatusCode.OK, expectedResponse));

            OkObjectResult result = await _publishController.UploadBatch(file.Object) as OkObjectResult;

            result.Should().NotBeNull();
            result?
            .Value
            .Should()
            .BeSameAs(expectedResponse);
        }