public void CheckComparisonWithNullLiteralWithParenthesis() { var sql = @"select * from tbl1 where ((data='test') and (name=null))"; var visitor = new NullComparisonVisitor(); RunTSqlFragmentVisitor.AnalyzeFragmentVisitorBase(sql, sql.ComputeHash(), visitor); Assert.IsTrue(visitor.IsSuspected); }
public void CheckComparisonWithNullVariable() { var sql = @"select * from tbl1 where data='test' and name=@x"; var visitor = new NullComparisonVisitor(); visitor.NullVariableNames.Add("@x"); RunTSqlFragmentVisitor.AnalyzeFragmentVisitorBase(sql, sql.ComputeHash(), visitor); Assert.IsTrue(visitor.IsSuspected); }
public void CheckComparisonNullWithNullVariable() { var sql = @"SELECT [Extent1].[Id] AS [Id], [Extent1].[Name] AS [Name], [Extent1].[Title] AS [Title] FROM [dbo].[Categories] AS [Extent1] WHERE ([Extent1].[Title] = @p__linq__0) -- this shouldn't be here OR (([Extent1].[Title] IS NULL) AND (@p__linq__0 IS NULL));"; var visitor = new NullComparisonVisitor(); visitor.NullVariableNames.Add("@p__linq__0"); RunTSqlFragmentVisitor.AnalyzeFragmentVisitorBase(sql, sql.ComputeHash(), visitor); Assert.IsTrue(visitor.IsSuspected); }
private void Commands_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: foreach (Command command in e.NewItems) { var visitor = new NullComparisonVisitor(); foreach (var parameter in command.Parameters.Where(parameter => parameter.Value == "null")) { visitor.NullVariableNames.Add(parameter.Name); } _callbacksManager.RunAnalysisVisitorOnCommand(visitor, command); } break; } }