コード例 #1
0
    public void NameRegex()
    {
        var parser1 = A.Dummy <IParser>();

        A.CallTo(() => parser1.Name).Returns(string.Empty);
        A.CallTo(() => parser1.NameRegex).Returns(@"^[a-z]$");

        var parser2 = Helper.FakeParser <IParser>("abc");

        var sut = new ParserDictionary <IParser>();

        sut.Add(parser1);
        sut.Add(parser2);

        sut["a"].Should().Be(parser1);
        sut["b"].Should().Be(parser1);
        sut["c"].Should().Be(parser1);
        sut["z"].Should().Be(parser1);
        sut["abc"].Should().Be(parser2);
    }
コード例 #2
0
    public void DictionaryShouldBeCaseInsensitive(string lookFor)
    {
        var parser = Helper.FakeParser <INodeParser>("alpha");

        var sut = new ParserDictionary <INodeParser>();

        sut.Add(parser);

        sut[lookFor].Should().BeSameAs(parser);

        var result = sut.TryGet(lookFor, out var value);

        result.Should().BeTrue();
        value.Should().BeSameAs(parser);
    }
コード例 #3
0
    public NodeAggregation(params INodeParser[] nodeParsers)
    {
        if (nodeParsers is null)
        {
            throw new ArgumentNullException(nameof(nodeParsers));
        }

        var parsers = new ParserDictionary <INodeParser>();

        foreach (var nodeParser in nodeParsers)
        {
            parsers.Add(nodeParser);
        }

        ChildParsers = parsers;
    }
コード例 #4
0
 public static void Add(this ParserDictionary <IAttributeParser> dic, IAttributeParser parser)
 => dic.Add(parser.ElementName, parser);