Пример #1
0
        public void TestEnumeratorWithMultipleRoutes()
        {
            var trie = new TrieNode <string>();

            var path = "a/b/c";

            trie.AddValue(path, path);

            path = "a/b/d";
            trie.AddValue(path, path);

            path = "a/c/d";
            trie.AddValue(path, path);

            path = "b/c/d";
            trie.AddValue(path, path);

            Assert.That(trie.Count(), Is.EqualTo(4));
        }
Пример #2
0
        public void TestWithMultipleRoutesWithWildcardWithNonMatchingTopic()
        {
            var trie = new TrieNode <string>();

            var path  = "a/b/c";
            var value = "test";

            trie.AddValue(path, value);

            var path1  = "a/+/d";
            var value1 = "test1";

            trie.AddValue(path1, value1);

            var path2 = "a/b/d";

            Assert.That(trie.TryGetValue(path2, out var values));
            Assert.That(values, Contains.Item(value1));
        }
Пример #3
0
        public void TestEmptyPath()
        {
            var trie  = new TrieNode <string>();
            var path  = "";
            var value = "test";

            trie.AddValue(path, value);

            Assert.That(trie.TryGetValue(path, out var values));
            Assert.That(values, Contains.Item(value));
        }
Пример #4
0
        public void TestRouteWithThreeSubtopics()
        {
            var trie = new TrieNode <string>();
            var path = "a/b/c";

            var value = "test";

            trie.AddValue(path, value);

            Assert.That(trie.TryGetValue(path, out var values));
            Assert.That(values, Contains.Item(value));
        }
Пример #5
0
        public void TestWithMultipleRoute()
        {
            var trie = new TrieNode <string>();

            var path  = "a/b/c";
            var value = "test";

            trie.AddValue(path, value);

            var path1  = "a/b/d";
            var value1 = "test1";

            trie.AddValue(path1, value1);

            var path2  = "b/c/d";
            var value2 = "test2";

            trie.AddValue(path2, value2);

            Assert.That(trie.TryGetValue(path2, out var values));
            Assert.That(values, Contains.Item(value2));
        }
Пример #6
0
        public void TestRouteWithWildcard()
        {
            var trie = new TrieNode <string>();
            var path = "a/+/c";

            var value = "test";

            trie.AddValue(path, value);

            var path2 = new[] { "a", "b", "c" };

            Assert.That(trie.TryGetValue(path2, out var values));
            Assert.That(values, Contains.Item(value));
        }
Пример #7
0
 public void AddValue(string key, T item)
 {
     _root.AddValue(key, 0, item);
 }