public void GivenEmptyMapWhenTwoItemsAddedToSameKeyThenBothItemsAreInSetForThatKey() { IMultiValueMap <string, int> multiValueMap = new MultiValueMapImpl <string, int>(); string key = "bob"; Assert.IsFalse(multiValueMap.ContainsKey(key), string.Format( "Given: expected test to start with empty map entry for key {0}, but map appears to contain value for that key." , key)); const int value1 = 1; multiValueMap.Add(key, value1); const int value2 = 2; multiValueMap.Add(key, value2); Assert.AreEqual(multiValueMap[key], new int[] { value1, value2 }); }
public void GivenMap_WhenTransform_ThenResultIsOfCorrectLengthAndContainsExpectedMappings() { IMultiValueMap <int, string> testMap = new MultiValueMapImpl <int, string>(); testMap.Add(1, "Unity"); testMap.Add(1, "One"); testMap.Add(2, "Two"); //Intentionally add a value that'll map to the same as another value testMap.Add(2, "Dha"); testMap.Add(3, "Three"); IMultiValueMap <int, int> transformedMap = testMap.TransformValues(s => s.Length); Assert.AreEqual(3, transformedMap.Count, "Transformed map should be the same length as original"); Assert.IsTrue(new HashSet <int>(new int[] { 5, 3 }).SetEquals(transformedMap[1])); Assert.IsTrue(new HashSet <int>(new int[] { 3 }).SetEquals(transformedMap[2])); Assert.IsTrue(new HashSet <int>(new int[] { 5 }).SetEquals(transformedMap[3])); }