From 3736dacf1e009ac7e457074eb5a666969bfe04da Mon Sep 17 00:00:00 2001 From: Kevin Wan Date: Sun, 12 Feb 2023 20:32:56 +0800 Subject: [PATCH] chore: add more tests (#2873) --- core/trace/message_test.go | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 core/trace/message_test.go diff --git a/core/trace/message_test.go b/core/trace/message_test.go new file mode 100644 index 00000000..039a5e76 --- /dev/null +++ b/core/trace/message_test.go @@ -0,0 +1,73 @@ +package trace + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/codes" + "go.opentelemetry.io/otel/trace" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/dynamicpb" +) + +func TestMessageType_Event(t *testing.T) { + var span mockSpan + ctx := trace.ContextWithSpan(context.Background(), &span) + MessageReceived.Event(ctx, 1, "foo") + assert.Equal(t, messageEvent, span.name) + assert.NotEmpty(t, span.options) +} + +func TestMessageType_EventProtoMessage(t *testing.T) { + var span mockSpan + var message mockMessage + ctx := trace.ContextWithSpan(context.Background(), &span) + MessageReceived.Event(ctx, 1, message) + assert.Equal(t, messageEvent, span.name) + assert.NotEmpty(t, span.options) +} + +type mockSpan struct { + name string + options []trace.EventOption +} + +func (m *mockSpan) End(options ...trace.SpanEndOption) { +} + +func (m *mockSpan) AddEvent(name string, options ...trace.EventOption) { + m.name = name + m.options = options +} + +func (m *mockSpan) IsRecording() bool { + return false +} + +func (m *mockSpan) RecordError(err error, options ...trace.EventOption) { +} + +func (m *mockSpan) SpanContext() trace.SpanContext { + panic("implement me") +} + +func (m *mockSpan) SetStatus(code codes.Code, description string) { +} + +func (m *mockSpan) SetName(name string) { +} + +func (m *mockSpan) SetAttributes(kv ...attribute.KeyValue) { +} + +func (m *mockSpan) TracerProvider() trace.TracerProvider { + return nil +} + +type mockMessage struct{} + +func (m mockMessage) ProtoReflect() protoreflect.Message { + return new(dynamicpb.Message) +}