-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcontext_propagator_test.go
54 lines (47 loc) · 1.58 KB
/
context_propagator_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
54
package hexa
import (
"context"
"encoding/json"
"testing"
"github.com/kamva/gutil"
"github.com/kamva/hexa/hlog"
"github.com/stretchr/testify/assert"
)
func assertImportedContextWithParams(ctx context.Context, t *testing.T, params *ContextParams) {
assert.Nil(t, CtxRequest(ctx))
assert.Equal(t, params.CorrelationId, CtxCorrelationId(ctx))
assert.Equal(t, params.Locale, CtxLocale(ctx))
assert.Equal(t, params.User, CtxUser(ctx))
assert.NotNil(t, CtxLogger(ctx))
assert.NotNil(t, CtxTranslator(ctx))
}
func TestDefaultContextPropagator_Extract(t *testing.T) {
context, params := newTestContext()
translator := &emptyTranslator{}
p := NewContextPropagator(hlog.GlobalLogger(), translator)
uBytes, err := json.Marshal(params.User.MetaData())
gutil.PanicErr(err)
result := map[string][]byte{
string(ctxKeyCorrelationId): []byte(params.CorrelationId),
string(ctxKeyLocale): []byte(params.Locale),
string(ctxKeyUser): uBytes,
}
m, err := p.Inject(context)
assert.Nil(t, err)
assert.Equal(t, result, m)
}
func TestDefaultContextPropagator_Inject(t *testing.T) {
_, params := newTestContext()
translator := &emptyTranslator{}
p := NewContextPropagator(hlog.GlobalLogger(), translator)
uBytes, err := json.Marshal(params.User.MetaData())
gutil.PanicErr(err)
payload := map[string][]byte{
string(ctxKeyCorrelationId): []byte(params.CorrelationId),
string(ctxKeyLocale): []byte(params.Locale),
string(ctxKeyUser): uBytes,
}
ctx, err := p.Extract(context.Background(), payload)
assert.Nil(t, err)
assertImportedContextWithParams(ctx, t, params)
}