message_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package trace
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "go.opentelemetry.io/otel/attribute"
  7. "go.opentelemetry.io/otel/codes"
  8. "go.opentelemetry.io/otel/trace"
  9. "google.golang.org/protobuf/reflect/protoreflect"
  10. "google.golang.org/protobuf/types/dynamicpb"
  11. )
  12. func TestMessageType_Event(t *testing.T) {
  13. var span mockSpan
  14. ctx := trace.ContextWithSpan(context.Background(), &span)
  15. MessageReceived.Event(ctx, 1, "foo")
  16. assert.Equal(t, messageEvent, span.name)
  17. assert.NotEmpty(t, span.options)
  18. }
  19. func TestMessageType_EventProtoMessage(t *testing.T) {
  20. var span mockSpan
  21. var message mockMessage
  22. ctx := trace.ContextWithSpan(context.Background(), &span)
  23. MessageReceived.Event(ctx, 1, message)
  24. assert.Equal(t, messageEvent, span.name)
  25. assert.NotEmpty(t, span.options)
  26. }
  27. type mockSpan struct {
  28. name string
  29. options []trace.EventOption
  30. }
  31. func (m *mockSpan) End(options ...trace.SpanEndOption) {
  32. }
  33. func (m *mockSpan) AddEvent(name string, options ...trace.EventOption) {
  34. m.name = name
  35. m.options = options
  36. }
  37. func (m *mockSpan) IsRecording() bool {
  38. return false
  39. }
  40. func (m *mockSpan) RecordError(err error, options ...trace.EventOption) {
  41. }
  42. func (m *mockSpan) SpanContext() trace.SpanContext {
  43. panic("implement me")
  44. }
  45. func (m *mockSpan) SetStatus(code codes.Code, description string) {
  46. }
  47. func (m *mockSpan) SetName(name string) {
  48. }
  49. func (m *mockSpan) SetAttributes(kv ...attribute.KeyValue) {
  50. }
  51. func (m *mockSpan) TracerProvider() trace.TracerProvider {
  52. return nil
  53. }
  54. type mockMessage struct{}
  55. func (m mockMessage) ProtoReflect() protoreflect.Message {
  56. return new(dynamicpb.Message)
  57. }