mirror of https://github.com/jackc/pgx.git
116 lines
3.1 KiB
Go
116 lines
3.1 KiB
Go
package multitracer_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/jackc/pgx/v5/multitracer"
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type testFullTracer struct{}
|
|
|
|
func (tt *testFullTracer) TraceQueryStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceQueryEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceBatchStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceBatchQuery(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchQueryData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceBatchEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceCopyFromStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceCopyFromEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TracePrepareStart(ctx context.Context, conn *pgx.Conn, data pgx.TracePrepareStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TracePrepareEnd(ctx context.Context, conn *pgx.Conn, data pgx.TracePrepareEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceConnectStart(ctx context.Context, data pgx.TraceConnectStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceConnectEnd(ctx context.Context, data pgx.TraceConnectEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceAcquireStart(ctx context.Context, pool *pgxpool.Pool, data pgxpool.TraceAcquireStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceAcquireEnd(ctx context.Context, pool *pgxpool.Pool, data pgxpool.TraceAcquireEndData) {
|
|
}
|
|
|
|
func (tt *testFullTracer) TraceRelease(pool *pgxpool.Pool, data pgxpool.TraceReleaseData) {
|
|
}
|
|
|
|
type testCopyTracer struct{}
|
|
|
|
func (tt *testCopyTracer) TraceQueryStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testCopyTracer) TraceQueryEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryEndData) {
|
|
}
|
|
|
|
func (tt *testCopyTracer) TraceCopyFromStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromStartData) context.Context {
|
|
return ctx
|
|
}
|
|
|
|
func (tt *testCopyTracer) TraceCopyFromEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromEndData) {
|
|
}
|
|
|
|
func TestNew(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
fullTracer := &testFullTracer{}
|
|
copyTracer := &testCopyTracer{}
|
|
|
|
mt := multitracer.New(fullTracer, copyTracer)
|
|
require.Equal(
|
|
t,
|
|
&multitracer.Tracer{
|
|
QueryTracers: []pgx.QueryTracer{
|
|
fullTracer,
|
|
copyTracer,
|
|
},
|
|
BatchTracers: []pgx.BatchTracer{
|
|
fullTracer,
|
|
},
|
|
CopyFromTracers: []pgx.CopyFromTracer{
|
|
fullTracer,
|
|
copyTracer,
|
|
},
|
|
PrepareTracers: []pgx.PrepareTracer{
|
|
fullTracer,
|
|
},
|
|
ConnectTracers: []pgx.ConnectTracer{
|
|
fullTracer,
|
|
},
|
|
PoolAcquireTracers: []pgxpool.AcquireTracer{
|
|
fullTracer,
|
|
},
|
|
PoolReleaseTracers: []pgxpool.ReleaseTracer{
|
|
fullTracer,
|
|
},
|
|
},
|
|
mt,
|
|
)
|
|
}
|