Skip to content

Integration Oracle Extension

Aryeh Citron edited this page Apr 29, 2026 · 5 revisions

The TestTrackingDiagrams.Extensions.Oracle package adds Oracle operation tracking to your test diagrams using a DbConnection wrapping decorator pattern.

Why wrapping? Like SQLite, Oracle.ManagedDataAccess.Core does not emit DiagnosticSource events. This extension wraps OracleConnection with TrackingOracleConnection, which intercepts all command executions and transaction operations.


How It Works

TrackingOracleConnection wraps a real OracleConnection and returns TrackingOracleCommand instances that intercept all 6 execution methods (ExecuteReader/NonQuery/Scalar × sync/async). TrackingOracleTransaction intercepts Begin/Commit/Rollback. All intercepted operations are classified by UnifiedSqlClassifier and logged to RequestResponseLogger.


Install

dotnet add package TestTrackingDiagrams.Extensions.Oracle

Setup

Option A — Dependency Injection

services.AddOracleTestTracking(options =>
{
    options.Verbosity = SqlTrackingVerbosityLevel.Detailed;
});

This decorates all DbConnection registrations with a type-check guard — only OracleConnection instances are wrapped; others pass through unchanged.

Option B — Manual Wrapping (No DI)

var inner = new OracleConnection("...");
var tracked = inner.WithTestTracking(new OracleTrackingOptions
{
    Verbosity = SqlTrackingVerbosityLevel.Detailed
});

await tracked.OpenAsync();
// Use tracked as your DbConnection...

Configuration

Property Default Description
ServiceName "Oracle" Participant name in diagrams
Verbosity Detailed Raw, Detailed, or Summarised
LogSqlText false Include full SQL text in Detailed mode
LogParameters false Include parameter values
DependencyCategory "Oracle" Controls participant shape/colour
UriScheme "oracle" URI scheme in diagram URIs

All options inherit from SqlTrackingOptionsBase.


Verbosity Levels

Level Arrow label URI
Raw Full SQL text oracle://host/database
Detailed SELECT FROM Users oracle://host/database/Users
Summarised SELECT oracle:///database/Users

Transaction Tracking

TrackingOracleTransaction logs BEGIN TRANSACTION, COMMIT, and ROLLBACK operations automatically. These appear as separate arrows in the sequence diagram.

Home


Demo


Getting Started

Common Tasks

Integration Guides

Extensions

Configuration

Features

Reference

Clone this wiki locally