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"]); }
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); } }
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()); }
public override async Task <Exception> TestAndGetErrorAsync(string accountId, StorageConnectionString connectionString) { IMessenger messenger = StorageFactory.Messages.MessengerFromConnectionString(connectionString.ToString()); //todo: how to validate? return(null); }