@@ -7,9 +7,11 @@ import (
7
7
"context"
8
8
"testing"
9
9
10
+ "github.com/pace/bricks/http/middleware"
10
11
"github.com/pace/bricks/locale"
11
12
"github.com/pace/bricks/maintenance/log"
12
13
"github.com/stretchr/testify/assert"
14
+ "github.com/stretchr/testify/require"
13
15
"google.golang.org/grpc/metadata"
14
16
)
15
17
@@ -29,14 +31,14 @@ func TestPrepareContext(t *testing.T) {
29
31
30
32
// remote site is providing data using a bearer token
31
33
ctx = metadata .NewIncomingContext (ctx , metadata.MD {
32
- "req_id" : []string {"c690uu0ta2rv348epm8g" },
33
- "locale" : []string {"fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5|Europe/Paris" },
34
- "bearer_token" : []string {"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" },
34
+ MetadataKeyRequestID : []string {"c690uu0ta2rv348epm8g" },
35
+ MetadataKeyLocale : []string {"fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5|Europe/Paris" },
36
+ MetadataKeyBearerToken : []string {"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" },
35
37
})
36
38
37
39
ctx1 , md := prepareContext (ctx )
38
- assert .Len (t , md .Get ("req_id" ), 0 )
39
- assert .Len (t , md .Get ("bearer_token" ), 0 )
40
+ assert .Len (t , md .Get (MetadataKeyRequestID ), 0 )
41
+ assert .Len (t , md .Get (MetadataKeyBearerToken ), 0 )
40
42
assert .Equal (t , "c690uu0ta2rv348epm8g" , log .RequestIDFromContext (ctx1 ))
41
43
loc , ok := locale .FromCtx (ctx1 )
42
44
assert .True (t , ok )
@@ -51,13 +53,13 @@ func TestPrepareContext(t *testing.T) {
51
53
52
54
// remote site is providing data using a bearer token
53
55
ctx = metadata .NewIncomingContext (ctx , metadata.MD {
54
- "req_id" : []string {"c690uu0ta2rv348epm8g" },
55
- "bearer_token" : []string {"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" },
56
+ MetadataKeyRequestID : []string {"c690uu0ta2rv348epm8g" },
57
+ MetadataKeyBearerToken : []string {"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" },
56
58
})
57
59
58
60
ctx2 , md := prepareContext (ctx )
59
- assert .Len (t , md .Get ("req_id" ), 0 )
60
- assert .Len (t , md .Get ("bearer_token" ), 0 )
61
+ assert .Len (t , md .Get (MetadataKeyRequestID ), 0 )
62
+ assert .Len (t , md .Get (MetadataKeyBearerToken ), 0 )
61
63
assert .Equal (t , "c690uu0ta2rv348epm8g" , log .RequestIDFromContext (ctx1 ))
62
64
63
65
var buf2 bytes.Buffer
@@ -67,4 +69,24 @@ func TestPrepareContext(t *testing.T) {
67
69
assert .Contains (t , buf2 .String (), ",\" message\" :\" test\" }\n " )
68
70
_ , ok = locale .FromCtx (ctx2 )
69
71
assert .False (t , ok )
72
+
73
+ ctx = metadata .NewIncomingContext (ctx , metadata.MD {
74
+ MetadataKeyExternalDependencies : []string {"foo:60000,bar:1000" },
75
+ })
76
+
77
+ ctx3 , md := prepareContext (ctx )
78
+ assert .Len (t , md .Get (MetadataKeyExternalDependencies ), 0 )
79
+
80
+ externalDependencyContext := middleware .ExternalDependencyContextFromContext (ctx3 )
81
+ require .NotNil (t , externalDependencyContext )
82
+ assert .Equal (t , "foo:60000,bar:1000" , externalDependencyContext .String ())
83
+
84
+ ctx = metadata .NewIncomingContext (context .Background (), metadata.MD {})
85
+
86
+ ctx4 , md := prepareContext (ctx )
87
+ assert .Len (t , md .Get (MetadataKeyExternalDependencies ), 0 )
88
+
89
+ externalDependencyContext = middleware .ExternalDependencyContextFromContext (ctx4 )
90
+ require .NotNil (t , externalDependencyContext )
91
+ assert .Empty (t , externalDependencyContext .String ())
70
92
}
0 commit comments