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); } }