Esempio n. 1
0
        public void ShouldDisableCacheIfTooManyConnectionStrings()
        {
            const string connectionStringTemplate = "Server=myServerName{0};Database=myDataBase;User Id=myUsername;Password=myPassword;";

            var spanContext = new SpanContext(Mock.Of <ISpanContext>(), Mock.Of <ITraceContext>(), "test");
            var span        = new Span(spanContext, null);

            // Fill-up the cache and test the logic with cache enabled
            for (int i = 0; i <= DbCommandCache.MaxConnectionStrings; i++)
            {
                var connectionString = string.Format(connectionStringTemplate, i);

                span.AddTagsFromDbCommand(CreateDbCommand(connectionString));

                Assert.NotNull(DbCommandCache.Cache);
                Assert.Equal("myServerName" + i, span.GetTag(Tags.OutHost));
            }

            // Test the logic with cache disabled
            for (int i = 0; i <= 10; i++)
            {
                var connectionString = string.Format(connectionStringTemplate, "NoCache" + i);

                span.AddTagsFromDbCommand(CreateDbCommand(connectionString));

                Assert.Null(DbCommandCache.Cache);
                Assert.Equal("myServerName" + "NoCache" + i, span.GetTag(Tags.OutHost));
            }
        }
Esempio n. 2
0
        public void SetSpanTypeToSql()
        {
            const string connectionString = "Server=myServerName;Database=myDataBase;User Id=myUsername;Password=myPassword;";
            const string commandText      = "SELECT * FROM Table ORDER BY id";

            var spanContext = new SpanContext(Mock.Of <ISpanContext>(), Mock.Of <ITraceContext>(), "test");
            var span        = new Span(spanContext, null);

            span.AddTagsFromDbCommand(CreateDbCommand(connectionString, commandText));

            Assert.Equal(SpanTypes.Sql, span.Type);
            Assert.Equal(commandText, span.ResourceName);
        }
        public void AddTagsFromDbCommandWithoutStatement()
        {
            var traceContext = new TraceContext(Tracer.Instance);
            var spanContext  = new SpanContext(null, traceContext, "UsesCommandText");
            var span         = new Span(spanContext, null);
            var command      = new Mock <IDbCommand>();

            command.Setup(cmd => cmd.Connection.ConnectionString).Returns("Provider=Some.Provider.1.0;Data Source=Source.mdb");
            command.Setup(cmd => cmd.CommandText).Returns(statement);
            span.AddTagsFromDbCommand(command.Object);

            Assert.Same(statement, span.Tags["db.statement"]);
            Assert.Contains("Field='123'", span.Tags["db.statement"]);
        }
Esempio n. 4
0
        public void ExtractProperTagsFromConnectionString(
            string connectionString,
            string expectedDbName,
            string expectedUserId,
            string expectedHost)
        {
            var spanContext = new SpanContext(Mock.Of <ISpanContext>(), Mock.Of <ITraceContext>(), "test");
            var span        = new Span(spanContext, null);

            span.AddTagsFromDbCommand(CreateDbCommand(connectionString));

            Assert.Equal(expectedDbName, span.GetTag(Tags.DbName));
            Assert.Equal(expectedUserId, span.GetTag(Tags.DbUser));
            Assert.Equal(expectedHost, span.GetTag(Tags.OutHost));
        }