public void Should_Add_MetaData_For_Account() { var metaData = new Dictionary<string, string>(); metaData.Add("Test-Accountmetadata", "Test"); var provider = new CloudFilesProvider(); provider.UpdateAccountMetadata(metaData, identity: _testIdentity); var accountHeadersResponse = provider.GetAccountMetaData(identity: _testIdentity); Assert.IsNotNull(accountHeadersResponse); Assert.IsTrue(accountHeadersResponse.ContainsKey("Test-Accountmetadata")); Assert.AreEqual("Test", accountHeadersResponse.Where(x => x.Key.Equals("Test-Accountmetadata", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault().Value); }
public void TestUpdateAccountMetadata() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity); Dictionary<string, string> metadata = provider.GetAccountMetaData(); if (metadata.Any(i => i.Key.StartsWith(TestKeyPrefix, StringComparison.OrdinalIgnoreCase))) { Assert.Inconclusive("The account contains metadata from a previous unit test run. Run CleanupTestAccountMetadata and try again."); return; } // test add metadata TestGetAccountMetaData(); provider.UpdateAccountMetadata( new Dictionary<string, string> { { TestKeyPrefix + "1", "Value ij" }, { TestKeyPrefix + "2", "Value ²" }, }); TestGetAccountMetaData(); Dictionary<string, string> expected = new Dictionary<string, string> { { TestKeyPrefix + "1", "Value ij" }, { TestKeyPrefix + "2", "Value ²" }, }; CheckMetadataCollections(expected, GetAccountMetadataWithPrefix(provider, TestKeyPrefix)); // test update metadata provider.UpdateAccountMetadata( new Dictionary<string, string> { { TestKeyPrefix + "1", "Value 1" }, }); expected = new Dictionary<string, string> { { TestKeyPrefix + "1", "Value 1" }, { TestKeyPrefix + "2", "Value ²" }, }; CheckMetadataCollections(expected, GetAccountMetadataWithPrefix(provider, TestKeyPrefix)); // test remove metadata provider.UpdateAccountMetadata( new Dictionary<string, string> { { TestKeyPrefix + "1", null }, { TestKeyPrefix + "2", string.Empty }, }); expected = new Dictionary<string, string>(); CheckMetadataCollections(expected, GetAccountMetadataWithPrefix(provider, TestKeyPrefix)); }
public void TestAccountInvalidHeaderKeyCharacters() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity); List<char> validKeyCharList = new List<char>(); for (char i = MinHeaderKeyCharacter; i <= MaxHeaderKeyCharacter; i++) { if (!SeparatorCharacters.Contains(i) && !NotSupportedCharacters.Contains(i)) validKeyCharList.Add(i); } for (int i = char.MinValue; i <= char.MaxValue; i++) { if (validKeyCharList.BinarySearch((char)i) >= 0) continue; string invalidKey = new string((char)i, 1); try { provider.UpdateAccountMetadata( new Dictionary<string, string> { { invalidKey, "Value" } }); Assert.Fail("Should throw an exception for invalid keys."); } catch (ArgumentException) { if (i >= MinHeaderKeyCharacter && i <= MaxHeaderKeyCharacter) StringAssert.Contains(SeparatorCharacters, invalidKey); } catch (NotSupportedException) { StringAssert.Contains(NotSupportedCharacters, invalidKey); } } }
public void TestAccountHeaderKeyCharacters() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity); List<char> keyCharList = new List<char>(); for (char i = MinHeaderKeyCharacter; i <= MaxHeaderKeyCharacter; i++) { if (!SeparatorCharacters.Contains(i) && !NotSupportedCharacters.Contains(i)) keyCharList.Add(i); } string key = TestKeyPrefix + new string(keyCharList.ToArray()); Console.WriteLine("Expected key: {0}", key); provider.UpdateAccountMetadata( new Dictionary<string, string> { { key, "Value" } }); Dictionary<string, string> metadata = provider.GetAccountMetaData(); Assert.IsNotNull(metadata); string value; Assert.IsTrue(metadata.TryGetValue(key, out value)); Assert.AreEqual("Value", value); provider.UpdateAccountMetadata( new Dictionary<string, string> { { key, null } }); metadata = provider.GetAccountMetaData(); Assert.IsNotNull(metadata); Assert.IsFalse(metadata.TryGetValue(key, out value)); }
public void CleanupTestAccountMetadata() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity); Dictionary<string, string> metadata = GetAccountMetadataWithPrefix(provider, TestKeyPrefix); Dictionary<string, string> removedMetadata = metadata.ToDictionary(i => i.Key, i => string.Empty); provider.UpdateAccountMetadata(removedMetadata); }
public void Should_Update_Headers_For_Account() { var headers = new Dictionary<string, string>(); headers.Add("Test-Accountmetadata", "Test1"); var provider = new CloudFilesProvider(); provider.UpdateAccountMetadata(headers, identity: _testIdentity); var accountHeadersResponse = provider.GetAccountMetaData(identity: _testIdentity); Assert.IsNotNull(accountHeadersResponse); string value; Assert.IsTrue(accountHeadersResponse.TryGetValue("Test-Accountmetadata", out value)); Assert.AreEqual("Test1", value); }