Пример #1
0
        public void CanMergeTags()
        {
            // ARRANGE
            var tags1 = new TagCollection(3);

            tags1.Add("key1", "value1");
            tags1.Add("key2", "value2");
            tags1.Add("key0", "value0");

            var tags2 = new TagCollection(3);

            tags2.Add("key3", "value3");
            tags2.Add("key2", "value2");
            tags2.Add("key4", "value4");

            tags1 = tags1.AsReadOnly();
            tags2 = tags2.AsReadOnly();

            // ACT
            tags1.Merge(tags2);

            // ASSERT
            Assert.AreEqual(5, tags1.Count);
            for (int i = 0; i < 5; i++)
            {
                Assert.AreEqual("key" + i, tags1.KeyAt(i));
                Assert.AreEqual("value" + i, tags1.ValueAt(i));
            }
        }
Пример #2
0
        private static bool TryGetValueInternal(TagCollection tags, string key, out string value)
        {
            value = null;
            if (tags == null)
            {
                return(false);
            }

            var index = tags.IndexOf(key);

            if (index < 0)
            {
                return(false);
            }

            value = tags.ValueAt(index);
            return(true);
        }
Пример #3
0
        private bool IsArea(TagCollection tags)
        {
            //return tags != null && tags.Any(tag => AreaKeys.Contains(tag.Key) && !tags.IsFalse(tag.Key));
            if (tags == null)
            {
                return(false);
            }

            for (int i = 0; i < tags.Count; i++)
            {
                if (AreaKeys.Contains(tags.KeyAt(i)) && !BooleanFalseValues.Contains(tags.ValueAt(i)))
                {
                    return(true);
                }
            }

            return(false);
        }