72 lines
2.3 KiB
Go
72 lines
2.3 KiB
Go
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
opentracing "github.com/opentracing/opentracing-go"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/uber/jaeger-lib/metrics"
|
|
|
|
"github.com/uber/jaeger-client-go"
|
|
)
|
|
|
|
func TestApplyOptions(t *testing.T) {
|
|
metricsFactory := metrics.NewLocalFactory(0)
|
|
observer := fakeObserver{}
|
|
contribObserver := fakeContribObserver{}
|
|
opts := applyOptions(
|
|
Metrics(metricsFactory),
|
|
Logger(jaeger.StdLogger),
|
|
Observer(observer),
|
|
ContribObserver(contribObserver),
|
|
Gen128Bit(true),
|
|
ZipkinSharedRPCSpan(true),
|
|
)
|
|
assert.Equal(t, jaeger.StdLogger, opts.logger)
|
|
assert.Equal(t, metricsFactory, opts.metrics)
|
|
assert.Equal(t, []jaeger.Observer{observer}, opts.observers)
|
|
assert.Equal(t, []jaeger.ContribObserver{contribObserver}, opts.contribObservers)
|
|
assert.True(t, opts.gen128Bit)
|
|
assert.True(t, opts.zipkinSharedRPCSpan)
|
|
}
|
|
|
|
func TestTraceTagOption(t *testing.T) {
|
|
c := Configuration{}
|
|
tracer, closer, err := c.New("test-service", Tag("tag-key", "tag-value"))
|
|
require.NoError(t, err)
|
|
defer closer.Close()
|
|
assert.Equal(t, opentracing.Tag{Key: "tag-key", Value: "tag-value"}, tracer.(*jaeger.Tracer).Tags()[0])
|
|
}
|
|
|
|
func TestApplyOptionsDefaults(t *testing.T) {
|
|
opts := applyOptions()
|
|
assert.Equal(t, jaeger.NullLogger, opts.logger)
|
|
assert.Equal(t, metrics.NullFactory, opts.metrics)
|
|
}
|
|
|
|
type fakeObserver struct{}
|
|
|
|
func (o fakeObserver) OnStartSpan(operationName string, options opentracing.StartSpanOptions) jaeger.SpanObserver {
|
|
return nil
|
|
}
|
|
|
|
type fakeContribObserver struct{}
|
|
|
|
func (o fakeContribObserver) OnStartSpan(span opentracing.Span, operationName string, options opentracing.StartSpanOptions) (jaeger.ContribSpanObserver, bool) {
|
|
return nil, false
|
|
}
|