Example #1
0
        public async Task TestUploadBlob()
        {
            var blobContainerClient = mockRepository.Create <BlobContainerClient>();
            var blobClient          = mockRepository.Create <BlobClient>();
            var blobProperties      = mockRepository.Create <BlobProperties>();

            blobContainerClient.Setup(x => x.GetBlobClient("Prefix/wibble"))
            .Returns(blobClient.Object);

            blobClient.Setup(x => x.GenerateSasUri(BlobSasPermissions.Write, It.IsAny <DateTimeOffset>()))
            .Returns(new Uri("https://www.example.com/"));

            var adapter = new AzureBlobAdapter(blobContainerClient.Object, new AzureBlobAdapterConfig
            {
                ContainerName = "gitlfs",
                KeyPrefix     = "Prefix/"
            });

            var blob = await adapter.UriForUpload("wibble", 10, CancellationToken.None);

            Assert.Null(blob.ErrorCode);
            Assert.Null(blob.ErrorMessage);
            Assert.Equal("https://www.example.com/", blob.Uri.ToString());
            Assert.Contains("x-ms-blob-type", blob.Headers);
        }
Example #2
0
        public async Task TestDownloadBlobFound()
        {
            var blobContainerClient = mockRepository.Create <BlobContainerClient>();
            var blobClient          = mockRepository.Create <BlobClient>();
            var blobProperties      = mockRepository.Create <BlobProperties>();

            blobContainerClient.Setup(x => x.GetBlobClient("Prefix/wibble"))
            .Returns(blobClient.Object);

            blobClient.Setup(x => x.GenerateSasUri(BlobSasPermissions.Read, It.IsAny <DateTimeOffset>()))
            .Returns(new Uri("https://www.example.com/"));

            blobClient.Setup(x => x.GetPropertiesAsync(null, It.IsAny <CancellationToken>()))
            .ReturnsAsync(Response.FromValue(blobProperties.Object, null));

            var adapter = new AzureBlobAdapter(blobContainerClient.Object, new AzureBlobAdapterConfig {
                ContainerName = "gitlfs", KeyPrefix = "Prefix/"
            });

            var blob = await adapter.UriForDownload("wibble", CancellationToken.None);

            Assert.Null(blob.ErrorCode);
            Assert.Null(blob.ErrorMessage);
            Assert.Equal("https://www.example.com/", blob.Uri.ToString());
        }
        public void BlobTextFileCreateReadDeleteTest()
        {
            var blobFilename     = @"d:\temptest\randomfile.tmp";
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);
            var azureFile        = azureBlobAdapter.File;

            var contentsWrite = System.IO.File.ReadAllText(localPermFileName);

            azureFile.WriteAllText(blobFilename, contentsWrite);

            string[] lines = { "line1", "line2" };
            azureFile.AppendAllLines(blobFilename, lines);

            var modifiedData = contentsWrite;

            foreach (var item in lines)
            {
                modifiedData += item + Environment.NewLine;
            }

            var readDataSB = new StringBuilder();

            string[] readLines = azureFile.ReadAllLines(blobFilename);
            foreach (var line in readLines)
            {
                readDataSB.Append(line).Append(Environment.NewLine);
            }
            Assert.Equal(modifiedData, readDataSB.ToString());

            azureFile.Delete(blobFilename);

            var ExistsResult = azureFile.Exists(blobFilename);

            Assert.False(ExistsResult);
        }
        public void BlobCopyMoveTests()
        {
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);
            var azureFile        = azureBlobAdapter.File;
            var localContent     = System.IO.File.ReadAllText(localPermFileName);

            var copiedBlobFilename = @"\\hostname\shared\newtop\newsub\copied.json";

            azureFile.Copy(blobFileName, copiedBlobFilename, true);
            var copiedData = azureFile.ReadAllText(copiedBlobFilename);

            Assert.Equal(localContent, copiedData);

            var movedBlobFilename = @"\\hostname\shared\movedtop\movedsub\moved.json";

            azureFile.Move(copiedBlobFilename, movedBlobFilename);
            var movedData = azureFile.ReadAllText(movedBlobFilename);

            Assert.Equal(localContent, movedData);

            var ExistsResult = azureFile.Exists(copiedBlobFilename);

            Assert.False(ExistsResult);

            //clean up so next time unit test will run
            azureFile.Delete(movedBlobFilename);
        }
        public void BlobFileGetLastWriteTimeTest()
        {
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);
            var azureFile        = azureBlobAdapter.File;
            var actualData       = azureFile.GetLastWriteTime(blobFileName);

            var expectedData = DateTime.Parse("31-07-2020 10:34:59");

            Assert.Equal(actualData, actualData);
        }
        public void BlobFileExistsTest()
        {
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);
            var azureFile        = azureBlobAdapter.File;
            //var notExistsResult = azureFile.Exists(new Guid().ToString()); //not exists already covered in delete test
            //Assert.False(notExistsResult);

            var existsResult = azureFile.Exists(blobFileName);

            Assert.True(existsResult);
        }
        public void BlobDriveTests()
        {
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);

            var driveInfos = azureBlobAdapter.DriveInfo.GetDrives();

            Assert.True(driveInfos[0].IsReady); //always true

            Assert.Equal(azureBlobAdapter, driveInfos[0].FileSystem);

            //GetDrives
            Assert.Equal(driveInfos.Count(), azureBlobSettings.MountPoints.Length);
        }
Example #8
0
        public async Task TestDownloadBlobNotFound()
        {
            var blobContainerClient = mockRepository.Create <BlobContainerClient>();

            blobContainerClient.Setup(x => x.GetBlobClient("Prefix/non-existing"))
            .Throws(new RequestFailedException(404, "Status: 404 (The specified blob does not exist.)"));

            var adapter = new AzureBlobAdapter(blobContainerClient.Object, new AzureBlobAdapterConfig
            {
                ContainerName = "gitlfs",
                KeyPrefix     = "Prefix/"
            });

            var blob = await adapter.UriForDownload("non-existing", CancellationToken.None);

            Assert.Equal(404, blob.ErrorCode);
            Assert.Contains("Status: 404 (The specified blob does not exist.)", blob.ErrorMessage);
        }
        public void BlobBinaryFileCreateReadDeleteTest()
        {
            var blobFilename     = @"d:\top1\sub1\temptest\multipage_tiff_example.tif";
            var localFileName    = @"TestData/multipage_tiff_example.tif";
            var azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);
            var azureFile        = azureBlobAdapter.File;

            var contentsWrite = System.IO.File.ReadAllBytes(localFileName);

            azureFile.WriteAllBytes(blobFilename, contentsWrite);

            var readData = azureFile.ReadAllBytes(blobFilename);

            Assert.Equal(contentsWrite, readData);

            azureFile.Delete(blobFilename);

            var ExistsResult = azureFile.Exists(blobFilename);

            Assert.False(ExistsResult);
        }
        public void BlobAdapterTest()
        {
            AzureBlobAdapter azureBlobAdapter = new AzureBlobAdapter(azureBlobSettings);

            Assert.True(!string.IsNullOrEmpty(azureBlobAdapter.BlobServicePropertiesObject.Logging.Version));
        }