コード例 #1
0
        public void ASpanAndCallOtherRegisteredEventHandlers()
        {
            var tracer         = new MockTracer();
            var clientSettings = MongoClientSettings.FromConnectionString(_fixture.TestMongoDb.ConnectionString);
            var testHandler    = new EventListenerTestDouble();

            clientSettings.ClusterConfigurator = builder =>
            {
                builder
                .Subscribe <CommandStartedEvent>(@event =>
                {
                    testHandler.StartEventHandler();
                });
            };
            var mongoClient        = new OpenTracing.Contrib.Mongo.TracingMongoClient(tracer, clientSettings);
            var doughnutCollection = mongoClient.GetDatabase(_fixture.DATABASE_NAME).GetCollection <Doughnut>(_fixture.COLLECTION_NAME);

            doughnutCollection.InsertOne(new Doughnut
            {
                Price = 1,
                Color = "red"
            });

            var finishedSpan = tracer.FinishedSpans().FirstOrDefault(span => span.OperationName.Equals("mongodb.insert"));

            finishedSpan.Should().NotBeNull();
            testHandler.Counter.Should().BeGreaterOrEqualTo(1);
        }