Ejemplo n.º 1
0
    public void Can_parse_sample_root_texts(string enrTreeRootText)
    {
        EnrTreeRoot root   = EnrTreeParser.ParseEnrRoot(enrTreeRootText);
        string      actual = root.ToString();

        Assert.AreEqual(enrTreeRootText, actual);
    }
Ejemplo n.º 2
0
    private async IAsyncEnumerable <string> SearchNode(IDnsClient client, string query, SearchContext searchContext)
    {
        if (!searchContext.VisitedRefs.Contains(query))
        {
            searchContext.VisitedRefs.Add(query);
            IEnumerable <string> lookupResult = await client.Lookup(query);

            foreach (string node in lookupResult)
            {
                EnrTreeNode treeNode = EnrTreeParser.ParseNode(node);
                foreach (string link in treeNode.Links)
                {
                    DnsClient linkedTreeLookup = new(link);
                    await foreach (string nodeRecordText in SearchTree(linkedTreeLookup, searchContext))
                    {
                        yield return(nodeRecordText);
                    }
                }

                foreach (string nodeRecordText in treeNode.Records)
                {
                    yield return(nodeRecordText);
                }

                foreach (string nodeRef in treeNode.Refs)
                {
                    searchContext.RefsToVisit.Enqueue(nodeRef);
                }
            }
        }
    }
Ejemplo n.º 3
0
    public void Can_parse_linked_tree(string enrBranchText, int hashCount)
    {
        EnrTreeBranch branch = EnrTreeParser.ParseBranch(enrBranchText);
        string        actual = branch.ToString();

        Assert.AreEqual(hashCount, branch.Hashes.Length);
        Assert.AreEqual(enrBranchText, actual);
    }