2022-05-11 22:58:33 +02:00
|
|
|
package tracer
|
|
|
|
|
|
|
|
import (
|
2023-08-30 23:04:35 +02:00
|
|
|
"sync"
|
2022-05-11 22:58:33 +02:00
|
|
|
"testing"
|
2023-08-30 23:04:35 +02:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2022-05-11 22:58:33 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestInit(t *testing.T) {
|
|
|
|
mockStrategy := func(event Event) {}
|
|
|
|
|
|
|
|
tracer := Init(mockStrategy)
|
|
|
|
|
|
|
|
assert.NotNil(t, tracer.strategy)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTraceEvent(t *testing.T) {
|
|
|
|
eventCalled := Event{}
|
2023-08-30 23:04:35 +02:00
|
|
|
var wg sync.WaitGroup
|
2022-05-11 22:58:33 +02:00
|
|
|
|
|
|
|
mockStrategy := func(event Event) {
|
2023-08-30 23:04:35 +02:00
|
|
|
defer wg.Done()
|
|
|
|
|
2022-05-11 22:58:33 +02:00
|
|
|
eventCalled = event
|
|
|
|
}
|
|
|
|
|
|
|
|
tracer := Init(mockStrategy)
|
|
|
|
|
2023-08-30 23:04:35 +02:00
|
|
|
wg.Add(1)
|
|
|
|
tracer.TraceEvent(Event{
|
|
|
|
ID: "mockID",
|
|
|
|
Protocol: HTTP.String(),
|
|
|
|
Status: Stateless.String(),
|
|
|
|
})
|
|
|
|
wg.Wait()
|
|
|
|
|
|
|
|
assert.NotNil(t, eventCalled.ID)
|
|
|
|
assert.Equal(t, "mockID", eventCalled.ID)
|
|
|
|
assert.Equal(t, HTTP.String(), eventCalled.Protocol)
|
|
|
|
assert.Equal(t, Stateless.String(), eventCalled.Status)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSetStrategy(t *testing.T) {
|
|
|
|
eventCalled := Event{}
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
|
|
|
|
mockStrategy := func(event Event) {
|
|
|
|
defer wg.Done()
|
|
|
|
|
|
|
|
eventCalled = event
|
|
|
|
}
|
|
|
|
|
|
|
|
tracer := Init(mockStrategy)
|
|
|
|
|
|
|
|
tracer.setStrategy(mockStrategy)
|
|
|
|
|
|
|
|
wg.Add(1)
|
2022-05-11 22:58:33 +02:00
|
|
|
tracer.TraceEvent(Event{
|
|
|
|
ID: "mockID",
|
2022-05-17 23:36:06 +02:00
|
|
|
Protocol: HTTP.String(),
|
|
|
|
Status: Stateless.String(),
|
2022-05-11 22:58:33 +02:00
|
|
|
})
|
2023-08-30 23:04:35 +02:00
|
|
|
wg.Wait()
|
2022-05-11 22:58:33 +02:00
|
|
|
|
|
|
|
assert.NotNil(t, eventCalled.ID)
|
2023-08-30 23:04:35 +02:00
|
|
|
assert.Equal(t, "mockID", eventCalled.ID)
|
|
|
|
assert.Equal(t, HTTP.String(), eventCalled.Protocol)
|
|
|
|
assert.Equal(t, Stateless.String(), eventCalled.Status)
|
2022-05-11 22:58:33 +02:00
|
|
|
}
|
2022-05-14 16:51:00 +02:00
|
|
|
|
|
|
|
func TestStringStatus(t *testing.T) {
|
|
|
|
assert.Equal(t, Start.String(), "Start")
|
|
|
|
assert.Equal(t, End.String(), "End")
|
|
|
|
assert.Equal(t, Stateless.String(), "Stateless")
|
|
|
|
assert.Equal(t, Interaction.String(), "Interaction")
|
|
|
|
}
|