Exemplo n.º 1
0
        public void TestGetPathFilterDescendants()
        {
            var rootNestedQuery        = _rootNode[0, 0, 0];
            var commonTableExpressions = rootNestedQuery.GetPathFilterDescendants(n => n.Id != NonTerminals.NestedQuery, NonTerminals.CommonTableExpression).ToArray();

            commonTableExpressions.Length.ShouldBe(1);

            commonTableExpressions = _rootNode.GetDescendants(NonTerminals.CommonTableExpression).ToArray();
            commonTableExpressions.Length.ShouldBe(4);
        }
        protected override void Execute()
        {
            _columnList = CurrentNode.ParentNode.ChildNodes.SingleOrDefault(n => n.Id == NonTerminals.ParenthesisEnclosedPrefixedIdentifierList);
            var existingColumns =
                _columnList?.GetDescendants(Terminals.Identifier).Select(n => n.Token.Value.ToQuotedIdentifier())
                ?? Enumerable.Empty <string>();

            _existingColumns = existingColumns.ToHashSet();

            ConfigureSettings();

            if (!ExecutionContext.SettingsProvider.GetSettings())
            {
                return;
            }

            var segmentToReplace = GetSegmentToReplace();

            if (!segmentToReplace.Equals(TextSegment.Empty))
            {
                ExecutionContext.SegmentsToReplace.Add(segmentToReplace);
            }
        }