public IPathResolver Resolve(TestContext ctx, TestNode node) { Resolve(ctx); if (innerNode != null) { innerNode.Resolve(ctx); if (!TestNodeInternal.Matches(innerNode.Tree.Host, node)) { throw new InternalErrorException(); } if (node.ParameterValue != null) { return(innerNode.Parameterize(node.ParameterValue)); } return(innerNode); } if (node.ParameterValue == null) { throw new InternalErrorException(); } foreach (var child in children) { if (!TestNodeInternal.Matches(child.Node, node)) { throw new InternalErrorException(); } if (!node.ParameterValue.Equals(child.Node.Parameter.Value)) { continue; } return(child); } throw new InternalErrorException(); }