예제 #1
0
        public void Setup_NormalCase()
        {
            var inputConnectionString = $"DefaultEndpointsProtocol=https;AccountName=foo;AccountKey=dmVyeXZlcnlsb25nYmFzZTY0c3RyaW5ncw==;EndpointSuffix=core.windows.net";
            var fixture = new Fixture();
            var context = new StorageAccountContext(inputConnectionString, fixture.Logger);

            Assert.NotNull(context.BlobClient);
        }
예제 #2
0
        public void Get_Storage_Account_Name()
        {
            var expectedAccountName   = "foo";
            var inputConnectionString = $"DefaultEndpointsProtocol=https;AccountName={expectedAccountName};AccountKey=dmVyeXZlcnlsb25nYmFzZTY0c3RyaW5ncw==;EndpointSuffix=core.windows.net";
            var actualAccountName     = StorageAccountContext.GetStringAccountName(inputConnectionString);

            Assert.Equal(expectedAccountName, actualAccountName);
        }
예제 #3
0
 private static async Task InitProfileImageBlobsAsync(string blobName)
 {
     using (var fileStream = File.OpenRead(@"TestData\github.png"))
     {
         var settings    = ExportProvider.GetExportedValue <Common.Settings.Settings>();
         var blobContext = new StorageAccountContext(settings);
         await blobContext.UploadBlobAsync(blobName, fileStream, CancellationToken.None);
     }
 }
예제 #4
0
        public void Setup_WrongConnectionString()
        {
            var wrongConnectionString = $"DefaultEndpointsProtocol=https;AccountName=foo;EndpointSuffix=core.windows.net";
            var expectedErrorMessage  = $"Can not parse ConnectionString {wrongConnectionString}";

            var fixture = new Fixture();
            var ex      = Assert.Throws <ArgumentException>(
                () =>
            {
                var context = new StorageAccountContext(wrongConnectionString, fixture.Logger);
            }
                );

            Assert.Equal(expectedErrorMessage, ex.Message);
        }
예제 #5
0
        public void Sas_Query_Parameter()
        {
            var fixture            = new Fixture();
            var inputContainerName = "repository";

            fixture.SetUpForGetSasQueryParameters(inputContainerName);

            var context = new StorageAccountContext(fixture.BloBClient, "foo", fixture.Logger);

            var sasQueryParameter = context.GetSASQueryParameterForWrite(inputContainerName);

            fixture.VerifyGetSasQueryParameter();
            Assert.Equal(fixture.ExpectedSasQueryParameter, sasQueryParameter);

            // It is ok for 5 minutes 30 min
            Assert.InRange((DateTimeOffset)fixture.ActualSharedAccessBlobPolicy.SharedAccessExpiryTime,
                           DateTimeOffset.UtcNow.AddMinutes(25), DateTimeOffset.UtcNow.AddMinutes(35));
            AssertExtension.Include(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.Create);
            AssertExtension.NotInclude(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.Delete);
            AssertExtension.Include(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.Write);
            AssertExtension.NotInclude(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.List);
            AssertExtension.Include(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.Read);
            AssertExtension.NotInclude(fixture.ActualSharedAccessBlobPolicy.Permissions, SharedAccessBlobPermissions.Add);
        }
예제 #6
0
 public AppClientApiController(DatabaseContext database, Settings settings, StorageAccountContext storageContext)
     : base(database)
 {
     this.storageContext = storageContext;
 }