11
11
*/
12
12
namespace HyperfTest \RpcMultiplex \Cases ;
13
13
14
+ use Hyperf \Rpc \Context ;
14
15
use Hyperf \RpcMultiplex \HttpMessageBuilder ;
15
16
use Hyperf \RpcMultiplex \Packer \JsonPacker ;
16
17
use Hyperf \Support \Reflection \ClassInvoker ;
@@ -24,12 +25,34 @@ class HttpMessageBuilderTest extends AbstractTestCase
24
25
{
25
26
public function testBuildUri ()
26
27
{
27
- $ invoker = new ClassInvoker (new HttpMessageBuilder (new JsonPacker ()));
28
+ $ invoker = new ClassInvoker (new HttpMessageBuilder (new JsonPacker (), new Context () ));
28
29
/** @var UriInterface $uri */
29
30
$ uri = $ invoker ->buildUri ('/ ' , $ host = uniqid (), 8806 );
30
31
$ this ->assertSame ('http ' , $ uri ->getScheme ());
31
32
$ this ->assertSame ('/ ' , $ uri ->getPath ());
32
33
$ this ->assertSame ($ host , $ uri ->getHost ());
33
34
$ this ->assertSame (8806 , $ uri ->getPort ());
34
35
}
36
+
37
+ public function testStoreContext ()
38
+ {
39
+ $ builder = new HttpMessageBuilder (new JsonPacker (), $ context = new Context ());
40
+
41
+ $ request = $ builder ->buildRequest ([
42
+ 'path ' => '/ ' ,
43
+ 'data ' => ['id ' => 1 ],
44
+ ]);
45
+
46
+ $ this ->assertSame (['id ' => 1 ], $ request ->getParsedBody ());
47
+ $ this ->assertSame ([], $ context ->getData ());
48
+
49
+ $ request = $ builder ->buildRequest ([
50
+ 'path ' => '/ ' ,
51
+ 'data ' => ['id ' => 1 ],
52
+ 'context ' => ['trace_id ' => $ id = uniqid ()],
53
+ ]);
54
+
55
+ $ this ->assertSame (['id ' => 1 ], $ request ->getParsedBody ());
56
+ $ this ->assertSame (['trace_id ' => $ id ], $ context ->getData ());
57
+ }
35
58
}
0 commit comments