1// Copyright The OpenTelemetry Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package trace
16
17import (
18	"context"
19	"testing"
20
21	export "go.opentelemetry.io/otel/sdk/export/trace"
22)
23
24type basicSpanProcesor struct {
25	running bool
26}
27
28func (t *basicSpanProcesor) Shutdown(context.Context) error {
29	t.running = false
30	return nil
31}
32
33func (t *basicSpanProcesor) OnStart(parent context.Context, s *export.SpanData) {}
34func (t *basicSpanProcesor) OnEnd(s *export.SpanData)                           {}
35func (t *basicSpanProcesor) ForceFlush()                                        {}
36
37func TestShutdownTraceProvider(t *testing.T) {
38	stp := NewTracerProvider()
39	sp := &basicSpanProcesor{}
40	stp.RegisterSpanProcessor(sp)
41
42	sp.running = true
43
44	_ = stp.Shutdown(context.Background())
45
46	if sp.running != false {
47		t.Errorf("Error shutdown basicSpanProcesor\n")
48	}
49}
50