TestSetGetValue5() { // Add N keys for each of N MetadataProvider objects, ask for same keys // in reverse order. // Create an array of keys. const Int32 Keys = 10; String [] asKeys = new String[Keys]; for (Int32 i = 0; i < Keys; i++) { asKeys[i] = Guid.NewGuid().ToString(); } // Create an array of MetadataProvider objects. const Int32 MetadataProviderObjects = 10000; MetadataProvider [] aoMetadataProvider = new MetadataProvider[MetadataProviderObjects]; for (Int32 j = 0; j < MetadataProviderObjects; j++) { aoMetadataProvider[j] = new MetadataProvider(); } // Add a value for each key. The value is just the key with appended // indexes. for (Int32 j = 0; j < MetadataProviderObjects; j++) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; for (Int32 i = 0; i < Keys; i++) { String sKey = asKeys[i]; oMetadataProvider.SetValue( sKey, sKey + i.ToString() + j.ToString() ); } } // Retrieve the values. Boolean bContainsKey; for (Int32 j = MetadataProviderObjects - 1; j >= 0; j--) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; for (Int32 i = Keys - 1; i >= 0; i--) { String sKey = asKeys[i]; bContainsKey = oMetadataProvider.ContainsKey(sKey); Assert.IsTrue(bContainsKey); Object oValue; Assert.IsTrue( oMetadataProvider.TryGetValue( sKey, out oValue) ); Assert.IsTrue(oValue is String); Assert.AreEqual(sKey + i.ToString() + j.ToString(), (String)oValue); } // Ask for a non-existent value. bContainsKey = oMetadataProvider.ContainsKey("nHnHn"); Assert.IsFalse(bContainsKey); } // Create another MetadataProvider object and verify that it contains // no keys. MetadataProvider oMetadataProviderNoKeys = new MetadataProvider(); for (Int32 i = 0; i < Keys; i++) { String sKey = asKeys[i]; bContainsKey = oMetadataProviderNoKeys.ContainsKey(sKey); Assert.IsFalse(bContainsKey); Object oValue; Assert.IsFalse( m_oMetadataProvider.TryGetValue( sKey, out oValue) ); } }
TestRemoveKey5() { // Create N objects, set metadata on each object, remove keys one by // one in backwards order. const Int32 Objects = 10; const Int32 Keys = 5; MetadataProvider [] aoMetadataProvider = new MetadataProvider[Objects]; // Set values on each object. for (Int32 i = 0; i < Objects; i++) { MetadataProvider oMetadataProvider = aoMetadataProvider[i] = new MetadataProvider(); for (Int32 j = 0; j < Keys; j++) { oMetadataProvider.SetValue(j.ToString(), "string"); } } // Remove the keys from each object. for (Int32 i = Objects - 1; i >= 0; i--) { MetadataProvider oMetadataProvider = aoMetadataProvider[i]; for (Int32 j = Keys - 1; j >= 0; j--) { Boolean bRemovedKey = oMetadataProvider.RemoveKey(j.ToString()); Assert.IsTrue(bRemovedKey); // Check the status of all the keys. for (Int32 I = 0; I < Objects; I++) { MetadataProvider oMetadataProvider2 = aoMetadataProvider[I]; for (Int32 J = 0; J < Keys; J++) { Boolean bContainsKey = oMetadataProvider2.ContainsKey(J.ToString()); if (I < i) { Assert.IsTrue(bContainsKey); } else if (I == i) { if (J < j) { Assert.IsTrue(bContainsKey); } else { Assert.IsFalse(bContainsKey); } } else { Assert.IsFalse(bContainsKey); } } } } } }
TestClearMetadata() { // Add tags and N keys for each of N MetadataProvider objects, ask // for same tags and keys, clear metadata for each object. // Create an array of keys. const Int32 Keys = 10; String [] asKeys = new String[Keys]; for (Int32 i = 0; i < Keys; i++) { asKeys[i] = Guid.NewGuid().ToString(); } // Create an array of MetadataProvider objects. const Int32 MetadataProviderObjects = 100; MetadataProvider [] aoMetadataProvider = new MetadataProvider[MetadataProviderObjects]; for (Int32 j = 0; j < MetadataProviderObjects; j++) { aoMetadataProvider[j] = new MetadataProvider(); } // Add a Tag and a value for each key. The value is just the key with // appended indexes. for (Int32 j = 0; j < MetadataProviderObjects; j++) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; oMetadataProvider.Tag = j.ToString() + "Tag"; for (Int32 i = 0; i < Keys; i++) { String sKey = asKeys[i]; oMetadataProvider.SetValue( sKey, sKey + i.ToString() + j.ToString()); } } // Retrieve the values. Boolean bContainsKey; for (Int32 j = 0; j < MetadataProviderObjects; j++) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; Assert.AreEqual( j.ToString() + "Tag", oMetadataProvider.Tag ); for (Int32 i = Keys - 1; i >= 0; i--) { String sKey = asKeys[i]; bContainsKey = oMetadataProvider.ContainsKey(sKey); Assert.IsTrue(bContainsKey); Object oValue; Assert.IsTrue(oMetadataProvider.TryGetValue( sKey, out oValue)); Assert.IsTrue(oValue is String); Assert.AreEqual(sKey + i.ToString() + j.ToString(), (String)oValue); } // Ask for a non-existent value. bContainsKey = oMetadataProvider.ContainsKey("nHnHn"); Assert.IsFalse(bContainsKey); } // Remove metadata for each object. for (Int32 k = 0; k < MetadataProviderObjects; k++) { aoMetadataProvider[k].ClearMetadata(); // Check all the objects, some of which will have no metadata. for (Int32 j = 0; j < MetadataProviderObjects; j++) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; if (j > k) { Assert.AreEqual( j.ToString() + "Tag", oMetadataProvider.Tag ); } else { Assert.IsNull(oMetadataProvider.Tag); } for (Int32 i = Keys - 1; i >= 0; i--) { String sKey = asKeys[i]; bContainsKey = oMetadataProvider.ContainsKey(sKey); if (j > k) { Assert.IsTrue(bContainsKey); Object oValue; Assert.IsTrue(oMetadataProvider.TryGetValue( sKey, out oValue)); Assert.IsTrue(oValue is String); Assert.AreEqual(sKey + i.ToString() + j.ToString(), (String)oValue); } else { Assert.IsFalse(bContainsKey); } } } } }
TestSetGetValue5() { // Add N keys for each of N MetadataProvider objects, ask for same keys // in reverse order. // Create an array of keys. const Int32 Keys = 10; String [] asKeys = new String[Keys]; for (Int32 i = 0; i < Keys; i++) { asKeys[i] = Guid.NewGuid().ToString(); } // Create an array of MetadataProvider objects. const Int32 MetadataProviderObjects = 10000; MetadataProvider [] aoMetadataProvider = new MetadataProvider[MetadataProviderObjects]; for (Int32 j = 0; j < MetadataProviderObjects; j++) { aoMetadataProvider[j] = new MetadataProvider(); } // Add a value for each key. The value is just the key with appended // indexes. for (Int32 j = 0; j < MetadataProviderObjects; j++) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; for (Int32 i = 0; i < Keys; i++) { String sKey = asKeys[i]; oMetadataProvider.SetValue( sKey, sKey + i.ToString() + j.ToString()); } } // Retrieve the values. Boolean bContainsKey; for (Int32 j = MetadataProviderObjects - 1; j >= 0; j--) { MetadataProvider oMetadataProvider = aoMetadataProvider[j]; for (Int32 i = Keys - 1; i >= 0; i--) { String sKey = asKeys[i]; bContainsKey = oMetadataProvider.ContainsKey(sKey); Assert.IsTrue(bContainsKey); Object oValue; Assert.IsTrue(oMetadataProvider.TryGetValue( sKey, out oValue)); Assert.IsTrue(oValue is String); Assert.AreEqual(sKey + i.ToString() + j.ToString(), (String)oValue); } // Ask for a non-existent value. bContainsKey = oMetadataProvider.ContainsKey("nHnHn"); Assert.IsFalse(bContainsKey); } // Create another MetadataProvider object and verify that it contains // no keys. MetadataProvider oMetadataProviderNoKeys = new MetadataProvider(); for (Int32 i = 0; i < Keys; i++) { String sKey = asKeys[i]; bContainsKey = oMetadataProviderNoKeys.ContainsKey(sKey); Assert.IsFalse(bContainsKey); Object oValue; Assert.IsFalse(m_oMetadataProvider.TryGetValue( sKey, out oValue)); } }