public void Ctor_throw_if_report_is_null()
 {
     Assert.Equal(Assert.Throws <ArgumentNullException>(() =>
     {
         new PerformanceCommandReport(DbCommandUtils.CreateCommand("Hi!"), null, PerformanceCommandReportCategory.Warning);
     }).Message, Error.ArgumentNull("message").Message);
 }
Exemplo n.º 2
0
        public void Analyze_return_null_if_execution_time_is_less_than_max_allowed_execution_time()
        {
            var analyzer = new ExecutionTimePerformanceAnalyzer();

            var report = analyzer.Analyze(DbCommandUtils.CreateCommand("Hi!"), TimeSpan.FromSeconds(0.5));

            Assert.Null(report);
        }
        public void Analyze_return_null_report_for_parametrized_queries()
        {
            var analyzer = new UnparametrizedWhereClausesPerformanceAnalyzer();
            var command  = DbCommandUtils.CreateCommand("SELECT * FROM Customers WHERE Id=@Id");

            var report = analyzer.Analyze(command, TimeSpan.FromSeconds(1));

            Assert.Null(report);
        }
Exemplo n.º 4
0
        public void Analyze_return_report_if_execution_time_exceeds_max_allowed_execution_time()
        {
            var analyzer = new ExecutionTimePerformanceAnalyzer();

            var report = analyzer.Analyze(DbCommandUtils.CreateCommand("Hi!"), TimeSpan.FromSeconds(1.5));

            Assert.NotNull(report);
            Assert.Equal(report.Message, Strings.ExceedsMaxExecutionTime(1.5, 1));
        }
        public void Analyze_return_report_if_exist_any_non_parametrized_parameter()
        {
            var commandText = "SELECT * FROM [dbo].Customers WHERE FirstName = @Unai AND LastName = 'Zorrilla'";
            var analyzer    = new UnparametrizedWhereClausesPerformanceAnalyzer();
            var command     = DbCommandUtils.CreateCommand(commandText);

            var report = analyzer.Analyze(command, TimeSpan.FromSeconds(1));

            Assert.NotNull(report);
            Assert.Equal(report.Message, Strings.UnparametrizedWhereClause(commandText));
        }
        public void Analyze_return_report_for_non_parametrized_queries_and_without_formated_whitespaces()
        {
            var commandText = "SELECT * FROM [dbo].Customers WHERE FirstName='Unai'";
            var analyzer    = new UnparametrizedWhereClausesPerformanceAnalyzer();
            var command     = DbCommandUtils.CreateCommand(commandText);

            var report = analyzer.Analyze(command, TimeSpan.FromSeconds(1));

            Assert.NotNull(report);
            Assert.Equal(report.Message, Strings.UnparametrizedWhereClause(commandText));
        }
        public void Analyze_return_report_for_query_with_values_without_quotes()
        {
            var commandText = "SELECT * FROM [dbo].Customers WHERE Age=  36";
            var analyzer    = new UnparametrizedWhereClausesPerformanceAnalyzer();
            var command     = DbCommandUtils.CreateCommand(commandText);

            var report = analyzer.Analyze(command, TimeSpan.FromSeconds(1));

            Assert.NotNull(report);
            Assert.Equal(report.Message, Strings.UnparametrizedWhereClause(commandText));
        }
Exemplo n.º 8
0
        public void Analyze_return_report_for_queries_with_unparametrized_skiportake()
        {
            var commandText = "SELECT TOP (20) [Extent1].[Id] AS [Id]"
                              + ", [Extent1].[FirstName] AS [FirstName] FROM ( SELECT [Extent1].[Id] AS [Id], [Extent1].[FirstName] AS [FirstName], "
                              + " row_number() OVER (ORDER BY [Extent1].[FirstName] ASC) AS [row_number]"
                              + "FROM [dbo].[Customers] AS [Extent1])  AS [Extent1] WHERE [Extent1].[row_number] > 10 ORDER BY [Extent1].[FirstName] ASC";

            var command = DbCommandUtils.CreateCommand(commandText);

            var analyzer = new UnparametrizedSkipTakeValuesPerformanceAnalyzer();
            var report   = analyzer.Analyze(command, TimeSpan.FromSeconds(1));

            Assert.NotNull(report);
            Assert.Equal(report.Message, Strings.UnparametrizedSkipOrTake(commandText));
        }
        public void ReaderExecuted_execute_configured_analyzers()
        {
            var command  = DbCommandUtils.CreateCommand("Hi!");
            var analyzer = new Mock <IPerformanceAnalyzer>();

            var analyzers = new List <IPerformanceAnalyzer>
            {
                analyzer.Object
            };

            var performanceInterceptor = new PerformanceInterceptor((report) => { }, analyzers);

            performanceInterceptor.ReaderExecuted(DbCommandUtils.CreateCommand("Hi!"), new DbCommandInterceptionContext <DbDataReader>());

            analyzer.Verify(a => a.Analyze(It.Is <DbCommand>(c => c.CommandText == "Hi!"), It.Is <TimeSpan>(t => t.TotalSeconds == 0)), Times.Once());
        }