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"); } }