示例#1
0
        public void ParameterlessConstructorShouldInitializeEmptyCollection()
        {
            var pairs = new ArgKeyValuePairs();

            pairs.Count.Should().Be(0);
            pairs.Any().Should().BeFalse();
        }
        private static TElement CreateElement(ArgKeyValuePairs pairs, PropertyOptionPairs properties)
        {
            var element = new TElement();

            foreach (var pair in pairs)
            {
                if (!properties.TryFindByOption(pair.Key, out var property))
                {
                    throw new UnboundTokenException(pair.Key);
                }

                var parsedValue = pair.Value.Parse(property.PropertyType);
                property.SetValue(element, parsedValue);
            }

            return(element);
        }
示例#3
0
        public void CollectionConstructorShouldInitializeWithGivenCollection(string[] keys, string[] values)
        {
            var collection = new List <ArgKeyValuePair>();

            for (var i = 0; i < keys.Length; i++)
            {
                collection.Add(new ArgKeyValuePair(keys[i], values[i]));
            }

            var pairs = new ArgKeyValuePairs(collection);

            pairs.Count.Should().Be(collection.Count);
            pairs.Any().Should().BeTrue();

            for (var i = 0; i < pairs.Count; i++)
            {
                var pair = pairs[i];
                pair.Key.Should().Be(keys[i]);
                pair.Value.Should().Be(values[i]);
                pair.Should().BeSameAs(collection[i]);
            }
        }