コード例 #1
0
        public void ContainsPrefix_EmptyCollectionReturnsFalse()
        {
            // Arrange
            var container = new PrefixContainer(new string[0]);

            // Act & Assert
            Assert.False(container.ContainsPrefix(""));
        }
コード例 #2
0
        public void ContainsPrefix_ExactMatch()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "Hello" });

            // Act & Assert
            Assert.True(container.ContainsPrefix("Hello"));
        }
コード例 #3
0
        public void ContainsPrefix_GuardClauses()
        {
            // Arrange
            var container = new PrefixContainer(new string[0]);

            // Act & assert
            Assert.ThrowsArgumentNull(() => container.ContainsPrefix(null), "prefix");
        }
コード例 #4
0
        public void ContainsPrefix_MatchIsCaseInsensitive()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "Hello" });

            // Act & Assert
            Assert.True(container.ContainsPrefix("hello"));
        }
コード例 #5
0
        public void ContainsPrefix_MatchIsNotSimpleSubstringMatch()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "Hello" });

            // Act & Assert
            Assert.False(container.ContainsPrefix("He"));
        }
コード例 #6
0
        public void ContainsPrefix_NonEmptyCollectionReturnsTrueIfPrefixIsEmptyString()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "Hello" });

            // Act & Assert
            Assert.True(container.ContainsPrefix(""));
        }
コード例 #7
0
            /// <inheritdoc />
            public override bool ContainsPrefix(string key)
            {
                if (_prefixContainer == null)
                {
                    _prefixContainer = new PrefixContainer(values.Keys);
                }

                return(_prefixContainer.ContainsPrefix(key));
            }
コード例 #8
0
        public void ContainsPrefix_PrefixBoundaries()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "Hello.There[0]" });

            // Act & Assert
            Assert.True(container.ContainsPrefix("hello"));
            Assert.True(container.ContainsPrefix("hello.there"));
            Assert.True(container.ContainsPrefix("hello.there[0]"));
            Assert.False(container.ContainsPrefix("hello.there.0"));
        }
コード例 #9
0
    public void ContainsPrefix_ReturnsFalse_IfPrefixDoesNotMatch(string prefix)
    {
        // Arrange
        var keys      = new string[] { "a.b", "a.bc", "a.b[c]", "a.b[0]" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(prefix);

        // Assert
        Assert.False(result);
    }
コード例 #10
0
    public void ContainsPrefix_HasEntries_PrefixMatch_WithDot(string prefix)
    {
        // Arrange
        var keys      = new string[] { "a.x", "b.xy", "c.x.y", "d.x.z[0]" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(prefix);

        // Assert
        Assert.True(result);
    }
コード例 #11
0
    public void ContainsPrefix_EmptyCollection_EmptyString_False()
    {
        // Arrange
        var keys      = new string[] { };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(string.Empty);

        // Assert
        Assert.False(result);
    }
コード例 #12
0
    public void ContainsPrefix_HasEntries_NoMatch(string prefix)
    {
        // Arrange
        var keys      = new string[] { "ax", "bx", "cx", "dx" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(prefix);

        // Assert
        Assert.False(result);
    }
コード例 #13
0
    public void ContainsPrefix_ReturnsTrue_IfTheContainerHasAnExactMatch(string prefix)
    {
        // Arrange
        var keys      = new string[] { "bc", "a", "abc", "d" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(prefix);

        // Assert
        Assert.True(result);
    }
コード例 #14
0
    public void ContainsPrefix_HasEntries_EmptyString_True()
    {
        // Arrange
        var keys      = new string[] { "some.prefix" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(string.Empty);

        // Assert
        Assert.True(result);
    }
コード例 #15
0
    public void ContainsPrefix_HasEntries_PrefixMatch_WithSquareBrace(string prefix)
    {
        // Arrange
        var keys      = new string[] { "a[x]", "d[x].y", "e.a.b[foo].bar" };
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix(prefix);

        // Assert
        Assert.True(result);
    }
コード例 #16
0
    public void ContainsPrefix_HasEntries_PartialAndPrefixMatch_WithSquareBrace(int partialMatches)
    {
        // Arrange
        var keys = new string[partialMatches + 1];

        for (var i = 0; i < partialMatches; i++)
        {
            keys[i] = $"aa[{i}]";
        }
        keys[partialMatches] = "a[0]"; // Sorted after all "aa" keys.
        var container = new PrefixContainer(keys);

        // Act
        var result = container.ContainsPrefix("a");

        // Assert
        Assert.True(result);
    }
コード例 #17
0
 public virtual bool ContainsPrefix(string prefix)
 {
     return(PrefixContainer.ContainsPrefix(prefix));
 }
コード例 #18
0
        public void ContainsPrefix_ShouldIdentifyCollectionWhenNonCollectionPropertyDoesNotOccurOnBinarySearchBoundary()
        {
            // Arrange
            var container = new PrefixContainer(new[] { "foo.a", "foo.b", "foo.c", "foo.d", "foo.esSomethingElse", "foo.es[0].a", "foo.es[0].b", "foo.es[0].c" });

            // Act & Assert
            Assert.True(container.ContainsPrefix("foo.es"));
        }
コード例 #19
0
        public void ContainsPrefix_PositiveTests(string testValue)
        {
            // Arrange
            var container = new PrefixContainer(new[] { "a.b", "c.b.a", "a[d]", "a.c" });

            // Act & Assert
            Assert.True(container.ContainsPrefix(testValue));
        }
コード例 #20
0
ファイル: RouteValueProvider.cs プロジェクト: 5l1v3r1/Maze-1
 /// <inheritdoc />
 public bool ContainsPrefix(string key)
 {
     return(PrefixContainer.ContainsPrefix(key));
 }