public void Can_parse_sample_root_texts(string enrTreeRootText) { EnrTreeRoot root = EnrTreeParser.ParseEnrRoot(enrTreeRootText); string actual = root.ToString(); Assert.AreEqual(enrTreeRootText, actual); }
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); } } } }
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); }