Пример #1
0
        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();
        }