@@ -48,51 +48,142 @@ func (s *callerInfoSuite) SetupTest() {
4848 s .Assertions = require .New (s .T ())
4949}
5050
51+ func (s * callerInfoSuite ) TestSetCallerName () {
52+ ctx := context .Background ()
53+ info := GetCallerInfo (ctx )
54+ s .Empty (info .CallerName )
55+
56+ ctx = SetCallerName (ctx , CallerNameSystem )
57+ info = GetCallerInfo (ctx )
58+ s .Equal (CallerNameSystem , info .CallerName )
59+
60+ ctx = SetCallerName (ctx , "" )
61+ info = GetCallerInfo (ctx )
62+ s .Equal (CallerNameSystem , info .CallerName )
63+
64+ newCallerName := "new caller name"
65+ ctx = SetCallerName (ctx , newCallerName )
66+ info = GetCallerInfo (ctx )
67+ s .Equal (newCallerName , info .CallerName )
68+ }
69+
70+ func (s * callerInfoSuite ) TestSetCallerType () {
71+ ctx := context .Background ()
72+ info := GetCallerInfo (ctx )
73+ s .Empty (info .CallerType )
74+
75+ ctx = SetCallerType (ctx , CallerTypeBackground )
76+ info = GetCallerInfo (ctx )
77+ s .Equal (CallerTypeBackground , info .CallerType )
78+
79+ ctx = SetCallerName (ctx , "" )
80+ info = GetCallerInfo (ctx )
81+ s .Equal (CallerTypeBackground , info .CallerType )
82+
83+ ctx = SetCallerType (ctx , CallerTypeAPI )
84+ info = GetCallerInfo (ctx )
85+ s .Equal (CallerTypeAPI , info .CallerType )
86+ }
87+
88+ func (s * callerInfoSuite ) TestSetCallOrigin () {
89+ ctx := context .Background ()
90+ info := GetCallerInfo (ctx )
91+ s .Empty (info .CallOrigin )
92+
93+ initiation := "method name"
94+ ctx = SetOrigin (ctx , initiation )
95+ info = GetCallerInfo (ctx )
96+ s .Equal (initiation , info .CallOrigin )
97+
98+ ctx = SetOrigin (ctx , "" )
99+ info = GetCallerInfo (ctx )
100+ s .Equal (initiation , info .CallOrigin )
101+
102+ newCallOrigin := "another method name"
103+ ctx = SetOrigin (ctx , newCallOrigin )
104+ info = GetCallerInfo (ctx )
105+ s .Equal (newCallOrigin , info .CallOrigin )
106+ }
107+
51108func (s * callerInfoSuite ) TestSetCallerInfo_PreserveOtherValues () {
52109 existingKey := "key"
53110 existingValue := "value"
111+ callerName := "callerName"
54112 callerType := CallerTypeAPI
113+ callOrigin := "methodName"
55114
56115 ctx := metadata .NewIncomingContext (
57116 context .Background (),
58117 metadata .Pairs (existingKey , existingValue ),
59118 )
60119
61- ctx = SetCallerInfo (ctx , NewCallerInfo (callerType ))
120+ ctx = SetCallerInfo (ctx , NewCallerInfo (callerName , callerType , callOrigin ))
62121
63122 md , ok := metadata .FromIncomingContext (ctx )
64123 s .True (ok )
65124 s .Equal (existingValue , md .Get (existingKey )[0 ])
125+ s .Equal (callerName , md .Get (callerNameHeaderName )[0 ])
66126 s .Equal (callerType , md .Get (callerTypeHeaderName )[0 ])
67- s .Len (md , 2 )
127+ s .Equal (callOrigin , md .Get (callOriginHeaderName )[0 ])
128+ s .Len (md , 4 )
68129}
69130
70131func (s * callerInfoSuite ) TestSetCallerInfo_NoExistingCallerInfo () {
132+ callerName := CallerNameSystem
71133 callerType := CallerTypeAPI
134+ callOrigin := "methodName"
72135
73136 ctx := SetCallerInfo (context .Background (), CallerInfo {
137+ CallerName : callerName ,
74138 CallerType : callerType ,
139+ CallOrigin : callOrigin ,
75140 })
76141
77142 md , ok := metadata .FromIncomingContext (ctx )
78143 s .True (ok )
144+ s .Equal (callerName , md .Get (callerNameHeaderName )[0 ])
79145 s .Equal (callerType , md .Get (callerTypeHeaderName )[0 ])
80- s .Len (md , 1 )
146+ s .Equal (callOrigin , md .Get (callOriginHeaderName )[0 ])
147+ s .Len (md , 3 )
81148}
82149
83150func (s * callerInfoSuite ) TestSetCallerInfo_WithExistingCallerInfo () {
84- callerType := CallerTypeAPI
151+ callerName := CallerNameSystem
152+ callerType := CallerTypeBackground
153+ callOrigin := "methodName"
85154
86- ctx := SetCallerInfo (context .Background (), CallerInfo {
155+ ctx := SetCallerName (context .Background (), callerName )
156+ ctx = SetCallerType (ctx , CallerTypeAPI )
157+ ctx = SetOrigin (ctx , callOrigin )
158+
159+ ctx = SetCallerInfo (ctx , CallerInfo {
160+ CallerName : "" ,
87161 CallerType : callerType ,
162+ CallOrigin : "" ,
88163 })
89164
165+ md , ok := metadata .FromIncomingContext (ctx )
166+ s .True (ok )
167+ s .Equal (callerName , md .Get (callerNameHeaderName )[0 ])
168+ s .Equal (callerType , md .Get (callerTypeHeaderName )[0 ])
169+ s .Equal (callOrigin , md .Get (callOriginHeaderName )[0 ])
170+ s .Len (md , 3 )
171+ }
172+
173+ func (s * callerInfoSuite ) TestSetCallerInfo_WithPartialCallerInfo () {
174+ callerName := CallerNameSystem
175+ callerType := CallerTypeAPI
176+
177+ ctx := SetCallerType (context .Background (), callerType )
178+
90179 ctx = SetCallerInfo (ctx , CallerInfo {
91- CallerType : CallerTypeBackground ,
180+ CallerName : callerName ,
92181 })
93182
94183 md , ok := metadata .FromIncomingContext (ctx )
95184 s .True (ok )
185+ s .Equal (callerName , md .Get (callerNameHeaderName )[0 ])
96186 s .Equal (callerType , md .Get (callerTypeHeaderName )[0 ])
97- s .Len (md , 1 )
187+ s .Empty (md .Get (callOriginHeaderName ))
188+ s .Len (md , 2 )
98189}
0 commit comments