public void DefaultStorageAccountWithHttp()
        {
            var cred = new SharedKeyCredentials(TestConfigurations.DefaultTargetTenant.AccountName, TestConfigurations.DefaultTargetTenant.AccountKey);
            var conn = new StorageConnectionString(cred, false);

            Assert.AreEqual(conn.BlobEndpoint,
                            new Uri(String.Format("http://{0}.blob.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.QueueEndpoint,
                            new Uri(String.Format("http://{0}.queue.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.TableEndpoint,
                            new Uri(String.Format("http://{0}.table.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.FileEndpoint,
                            new Uri(String.Format("http://{0}.file.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.BlobStorageUri.SecondaryUri,
                            new Uri(String.Format("http://{0}-secondary.blob.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.QueueStorageUri.SecondaryUri,
                            new Uri(String.Format("http://{0}-secondary.queue.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.TableStorageUri.SecondaryUri,
                            new Uri(String.Format("http://{0}-secondary.table.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            Assert.AreEqual(conn.FileStorageUri.SecondaryUri,
                            new Uri(String.Format("http://{0}-secondary.file.core.windows.net", TestConfigurations.DefaultTargetTenant.AccountName)));
            _ = conn.ToString();
            var storageConnectionStringToStringWithSecrets = conn.ToString(true);
            var testAccount = StorageConnectionString.Parse(storageConnectionStringToStringWithSecrets);

            this.AccountsAreEqual(testAccount, conn);
        }
        public void DevelopmentStorageAccount()
        {
            StorageConnectionString devstoreAccount = StorageConnectionString.DevelopmentStorageAccount;

            Assert.AreEqual(new Uri("http://127.0.0.1:10000/devstoreaccount1"), devstoreAccount.BlobEndpoint);
            Assert.AreEqual(new Uri("http://127.0.0.1:10001/devstoreaccount1"), devstoreAccount.QueueEndpoint);
            Assert.AreEqual(new Uri("http://127.0.0.1:10002/devstoreaccount1"), devstoreAccount.TableEndpoint);
            Assert.AreEqual(new Uri("http://127.0.0.1:10000/devstoreaccount1"), devstoreAccount.BlobStorageUri.PrimaryUri);
            Assert.AreEqual(new Uri("http://127.0.0.1:10001/devstoreaccount1"), devstoreAccount.QueueStorageUri.PrimaryUri);
            Assert.AreEqual(new Uri("http://127.0.0.1:10002/devstoreaccount1"), devstoreAccount.TableStorageUri.PrimaryUri);
            Assert.AreEqual(new Uri("http://127.0.0.1:10000/devstoreaccount1-secondary"), devstoreAccount.BlobStorageUri.SecondaryUri);
            Assert.AreEqual(new Uri("http://127.0.0.1:10001/devstoreaccount1-secondary"), devstoreAccount.QueueStorageUri.SecondaryUri);
            Assert.AreEqual(new Uri("http://127.0.0.1:10002/devstoreaccount1-secondary"), devstoreAccount.TableStorageUri.SecondaryUri);
            Assert.IsNull(devstoreAccount.FileStorageUri.PrimaryUri);
            Assert.IsNull(devstoreAccount.FileStorageUri.SecondaryUri);

            var devstoreAccountToStringWithSecrets = devstoreAccount.ToString(true);
            var testAccount = StorageConnectionString.Parse(devstoreAccountToStringWithSecrets);

            AccountsAreEqual(testAccount, devstoreAccount);
            if (!StorageConnectionString.TryParse(devstoreAccountToStringWithSecrets, out _))
            {
                Assert.Fail("Expected TryParse success.");
            }
        }
        public void Build_with_parameter_map()
        {
            var cs = new StorageConnectionString("aws.s3");

            cs.Parameters["key1"] = "value1";
            cs.Parameters["key2"] = "value2";

            Assert.Equal("aws.s3://key1=value1;key2=value2", cs.ToString());
        }
        private void AccountsAreEqual(StorageConnectionString a, StorageConnectionString b)
        {
            // endpoints are the same
            Assert.AreEqual(a.BlobEndpoint, b.BlobEndpoint);
            Assert.AreEqual(a.QueueEndpoint, b.QueueEndpoint);
            Assert.AreEqual(a.TableEndpoint, b.TableEndpoint);
            Assert.AreEqual(a.FileEndpoint, b.FileEndpoint);

            // storage uris are the same
            Assert.AreEqual(a.BlobStorageUri, b.BlobStorageUri);
            Assert.AreEqual(a.QueueStorageUri, b.QueueStorageUri);
            Assert.AreEqual(a.TableStorageUri, b.TableStorageUri);
            Assert.AreEqual(a.FileStorageUri, b.FileStorageUri);

            // seralized representatons are the same.
            var aToStringNoSecrets   = a.ToString();
            var aToStringWithSecrets = a.ToString(true);
            var bToStringNoSecrets   = b.ToString(false);
            var bToStringWithSecrets = b.ToString(true);

            Assert.AreEqual(aToStringNoSecrets, bToStringNoSecrets);
            Assert.AreEqual(aToStringWithSecrets, bToStringWithSecrets);

            // credentials are the same
            if (a.Credentials != null && b.Credentials != null)
            {
                Assert.AreEqual(a.GetType(), b.GetType());

                // make sure
                if (a.Credentials != StorageConnectionString.DevelopmentStorageAccount.Credentials &&
                    b.Credentials != StorageConnectionString.DevelopmentStorageAccount.Credentials)
                {
                    StringAssert.AreNotEqualIgnoringCase(aToStringWithSecrets, bToStringNoSecrets);
                }
            }
            else if (a.Credentials == null && b.Credentials == null)
            {
                return;
            }
            else
            {
                Assert.Fail("credentials mismatch");
            }
        }
        public void AnonymousRoundtrip()
        {
            var accountString = "BlobEndpoint=http://blobs/";

            Assert.AreEqual(accountString, StorageConnectionString.Parse(accountString).ToString(true));

            var account = new StorageConnectionString(null, new Uri("http://blobs/"), null, null, null);

            this.AccountsAreEqual(account, StorageConnectionString.Parse(account.ToString(true)));
        }
        public void Handles_special_characters(string valueToSave)
        {
            var cs = new StorageConnectionString("local://");

            cs["key"] = valueToSave;

            string css = cs.ToString();

            cs = new StorageConnectionString(css);
            Assert.Equal(valueToSave, cs["key"]);
        }
示例#7
0
        public override async Task <Exception> TestAndGetErrorAsync(string accountId, StorageConnectionString connectionString)
        {
            try
            {
                IBlobStorage bs = StorageFactory.Blobs.FromConnectionString(connectionString.ToString());
                await bs.ListAsync(maxResults : 1, recurse : false);

                return(null);
            }
            catch (Exception ex)
            {
                return(ex);
            }
        }
示例#8
0
        public override async Task <Exception> TestAndGetErrorAsync(string accountId, StorageConnectionString connectionString)
        {
            try
            {
                var vm = new RedisViewModel(new ConnectedAccount(connectionString.ToString()));

                vm.Mx.GetEndPoints();
            }
            catch (Exception ex)
            {
                return(ex);
            }

            return(null);
        }
        public void Native_Parsed()
        {
            const string native = "t=6;iiiifldjfljd fla dfj;;df";

            var cs = new StorageConnectionString("local://native=" + native);

            Assert.Equal("local", cs.Prefix);
            Assert.Single(cs.Parameters);
            Assert.True(cs.IsNative);
            Assert.Equal(native, cs.Native);
            Assert.Equal(native, cs.Parameters["native"]);

            //convert back to string
            string css = cs.ToString();

            Assert.Equal("local://native=" + native, css);
        }
        public void StorageCredentialsEmptyKeyValue()
        {
            var accountName = TestConfigurations.DefaultTargetTenant.AccountName;

            _ = TestConfigurations.DefaultTargetTenant.AccountKey;
            var emptyKeyValueAsString    = String.Empty;
            var emptyKeyConnectionString = String.Format(CultureInfo.InvariantCulture, "DefaultEndpointsProtocol=https;AccountName={0};AccountKey=", accountName);

            var credentials1 = new SharedKeyCredentials(accountName, emptyKeyValueAsString);

            var conn1 = new StorageConnectionString(credentials1, true);

            Assert.AreEqual(emptyKeyConnectionString, conn1.ToString(true));
            Assert.IsNotNull(conn1.Credentials);
            Assert.IsInstanceOf(typeof(SharedKeyCredentials), conn1.Credentials);
            Assert.AreEqual(accountName, ((SharedKeyCredentials)conn1.Credentials).AccountName);
            Assert.AreEqual(emptyKeyValueAsString, ((SharedKeyCredentials)conn1.Credentials).ExportBase64EncodedKey());

            var account2 = StorageConnectionString.Parse(emptyKeyConnectionString);

            Assert.AreEqual(emptyKeyConnectionString, account2.ToString(true));
            Assert.IsNotNull(account2.Credentials);
            Assert.IsInstanceOf(typeof(SharedKeyCredentials), account2.Credentials);
            Assert.AreEqual(accountName, ((SharedKeyCredentials)account2.Credentials).AccountName);
            Assert.AreEqual(emptyKeyValueAsString, ((SharedKeyCredentials)account2.Credentials).ExportBase64EncodedKey());

            var isValidAccount3 = StorageConnectionString.TryParse(emptyKeyConnectionString, out var account3);

            Assert.IsTrue(isValidAccount3);
            Assert.IsNotNull(account3);
            Assert.AreEqual(emptyKeyConnectionString, account3.ToString(true));
            Assert.IsNotNull(account3.Credentials);
            Assert.IsInstanceOf(typeof(SharedKeyCredentials), account3.Credentials);
            Assert.AreEqual(accountName, ((SharedKeyCredentials)account3.Credentials).AccountName);
            Assert.AreEqual(emptyKeyValueAsString, ((SharedKeyCredentials)account3.Credentials).ExportBase64EncodedKey());
        }
示例#11
0
        public override async Task <Exception> TestAndGetErrorAsync(string accountId, StorageConnectionString connectionString)
        {
            IMessenger messenger = StorageFactory.Messages.MessengerFromConnectionString(connectionString.ToString());

            //todo: how to validate?

            return(null);
        }