public void CreateFromIEnumerableStringValuePair_CopiesValues()
        {
            // Arrange & Act
            var dict = new AdaptiveCapacityDictionary <string, string>(IEnumerableStringValuePairData, capacity: 3, StringComparer.OrdinalIgnoreCase);

            // Assert
            Assert.IsType <KeyValuePair <string, string>[]>(dict._arrayStorage);
            Assert.Collection(
                dict.OrderBy(kvp => kvp.Key),
                kvp => { Assert.Equal("First Name", kvp.Key); Assert.Equal("James", kvp.Value); },
                kvp => { Assert.Equal("Last Name", kvp.Key); Assert.Equal("Henrik", kvp.Value); },
                kvp => { Assert.Equal("Middle Name", kvp.Key); Assert.Equal("Bob", kvp.Value); });
        }
示例#2
0
        public void Add_KeyValuePair()
        {
            // Arrange
            var dict = new AdaptiveCapacityDictionary <string, object>()
            {
                { "age", 30 },
            };

            // Act
            ((ICollection <KeyValuePair <string, object?> >)dict).Add(new KeyValuePair <string, object?>("key", "value"));

            // Assert
            Assert.Collection(
                dict.OrderBy(kvp => kvp.Key),
                kvp => { Assert.Equal("age", kvp.Key); Assert.Equal(30, kvp.Value); },
                kvp => { Assert.Equal("key", kvp.Key); Assert.Equal("value", kvp.Value); });
            Assert.IsType <KeyValuePair <string, object?>[]>(dict._arrayStorage);
        }
示例#3
0
        public void IndexSet_ListStorage_NoMatch_AddsValue()
        {
            // Arrange
            var dict = new AdaptiveCapacityDictionary <string, object>()
            {
                { "age", 30 },
            };

            // Act
            dict["key"] = "value";

            // Assert
            Assert.Collection(
                dict.OrderBy(kvp => kvp.Key),
                kvp => { Assert.Equal("age", kvp.Key); Assert.Equal(30, kvp.Value); },
                kvp => { Assert.Equal("key", kvp.Key); Assert.Equal("value", kvp.Value); });
            Assert.IsType <KeyValuePair <string, object?>[]>(dict._arrayStorage);
        }
示例#4
0
        public void Add_DuplicateKey_CaseInsensitive()
        {
            // Arrange
            var dict = new AdaptiveCapacityDictionary <string, object>(StringComparer.OrdinalIgnoreCase)
            {
                { "key", "value" },
            };

            var message = $"An element with the key 'kEy' already exists in the {nameof(AdaptiveCapacityDictionary<string, string>)}";

            // Act & Assert
            ExceptionAssert.ThrowsArgument(() => dict.Add("kEy", "value2"), "key", message);

            // Assert
            Assert.Collection(
                dict.OrderBy(kvp => kvp.Key),
                kvp => { Assert.Equal("key", kvp.Key); Assert.Equal("value", kvp.Value); });
            Assert.IsType <KeyValuePair <string, object?>[]>(dict._arrayStorage);
        }
        public void CreateFromIEnumerableKeyValuePair_CopiesValues()
        {
            // Arrange & Act
            var dict = new AdaptiveCapacityDictionary <string, object?>(IEnumerableKeyValuePairData, capacity: IEnumerableKeyValuePairData.Length, EqualityComparer <string> .Default);

            // Assert
            Assert.IsType <KeyValuePair <string, object?>[]>(dict._arrayStorage);
            Assert.Collection(
                dict.OrderBy(kvp => kvp.Key),
                kvp =>
            {
                Assert.Equal("Address", kvp.Key);
                var address = Assert.IsType <Address>(kvp.Value);
                Assert.Equal("Redmond", address.City);
                Assert.Equal("WA", address.State);
            },
                kvp => { Assert.Equal("Age", kvp.Key); Assert.Equal(30, kvp.Value); },
                kvp => { Assert.Equal("Name", kvp.Key); Assert.Equal("James", kvp.Value); });
        }