forked from lightstep/lightstep-tracer-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tracer_transport_options_test.go
53 lines (38 loc) · 987 Bytes
/
tracer_transport_options_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package lightstep_test
// Options
func toTestOptions(options []testOption) testOptions {
structuredOptions := testOptions{}
for _, option := range options {
option.apply(&structuredOptions)
}
return structuredOptions
}
type testOptions struct {
supportsBaggage bool
supportsReference bool
supportsTypedValues bool
}
type testOption interface {
apply(options *testOptions)
}
func thatSupportsBaggage() testOption {
return baggageOption{}
}
type baggageOption struct{}
func (baggageOption) apply(options *testOptions) {
options.supportsBaggage = true
}
func thatSupportsReference() testOption {
return supportsReferences{}
}
type supportsReferences struct{}
func (supportsReferences) apply(options *testOptions) {
options.supportsReference = true
}
func thatSupportsTypedValues() testOption {
return supportsTypedValues{}
}
type supportsTypedValues struct{}
func (supportsTypedValues) apply(options *testOptions) {
options.supportsTypedValues = true
}