11package org .hypertrace .core .grpcutils .context ;
22
3+ import java .util .List ;
34import java .util .Map ;
45import java .util .Optional ;
5- import org .junit .jupiter .api .Assertions ;
6+
7+ import com .google .common .collect .ImmutableList ;
68import org .junit .jupiter .api .Test ;
79
10+ import static org .junit .jupiter .api .Assertions .assertEquals ;
11+
812/** Unit tests for {@link RequestContext} and utility methods in it. */
913public class RequestContextTest {
1014 private static final String TENANT_ID = "example-tenant-id" ;
1115 private static final String TEST_AUTH_HEADER = "Bearer sample-auth-header" ;
1216
1317 @ Test
14- public void testTenantId () {
18+ void testTenantId () {
1519 RequestContext requestContext = new RequestContext ();
1620 requestContext .add (RequestContextConstants .TENANT_ID_HEADER_KEY , TENANT_ID );
1721 Optional <String > tenantId = requestContext .getTenantId ();
18- Assertions . assertEquals (Optional .of (TENANT_ID ), tenantId );
22+ assertEquals (Optional .of (TENANT_ID ), tenantId );
1923
2024 requestContext = new RequestContext ();
2125 tenantId = requestContext .getTenantId ();
22- Assertions . assertEquals (Optional .empty (), tenantId );
26+ assertEquals (Optional .empty (), tenantId );
2327 }
2428
2529 @ Test
26- public void testGetRequestHeaders () {
30+ void testGetRequestHeaders () {
2731 RequestContext requestContext = new RequestContext ();
2832 requestContext .add (RequestContextConstants .AUTHORIZATION_HEADER , TEST_AUTH_HEADER );
2933 requestContext .add ("x-some-tenant-header" , "v1" );
3034
3135 Map <String , String > requestHeaders = requestContext .getRequestHeaders ();
3236
33- Assertions . assertEquals (
37+ assertEquals (
3438 Map .of (
3539 RequestContextConstants .AUTHORIZATION_HEADER ,
3640 TEST_AUTH_HEADER ,
@@ -40,12 +44,27 @@ public void testGetRequestHeaders() {
4044 }
4145
4246 @ Test
43- public void testCreateForTenantId () {
47+ void testCreateForTenantId () {
4448 RequestContext requestContext = RequestContext .forTenantId (TENANT_ID );
45- Assertions . assertEquals (Optional .of (TENANT_ID ), requestContext .getTenantId ());
46- Assertions . assertEquals (
49+ assertEquals (Optional .of (TENANT_ID ), requestContext .getTenantId ());
50+ assertEquals (
4751 Optional .of (TENANT_ID ), requestContext .get (RequestContextConstants .TENANT_ID_HEADER_KEY ));
48- Assertions . assertEquals (
52+ assertEquals (
4953 Map .of (RequestContextConstants .TENANT_ID_HEADER_KEY , TENANT_ID ), requestContext .getAll ());
5054 }
55+
56+ @ Test
57+ void testRolesArePropagatedInRequestContext () {
58+ List <String > expectedRoles = ImmutableList .of ("super_user" , "user" , "billing_admin" );
59+ String jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE2MjEzNjM1OTcsIm" +
60+ "V4cCI6MTY1Mjg5OTU5NywiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsIkdpdmVuTmFtZSI6Ik" +
61+ "pvaG5ueSIsIlN1cm5hbWUiOiJSb2NrZXQiLCJuYW1lIjoiSm9obm55IFJvY2tldCIsImVtYWlsIjoianJvY2tldEBleGFtcGxlLmNvbSIsIn" +
62+ "BpY3R1cmUiOiJ3d3cuZXhhbXBsZS5jb20iLCJyb2xlcyI6WyJzdXBlcl91c2VyIiwidXNlciIsImJpbGxpbmdfYWRtaW4iXX0.lEDjPPCjr-" +
63+ "Epv6pNslq-HK9vmxfstp1sY85GstlbU1I" ;
64+
65+ RequestContext requestContext = new RequestContext ();
66+ requestContext .add ("authorization" , "Bearer " + jwt );
67+ List <String > actualRoles = requestContext .getRoles ("roles" );
68+ assertEquals (expectedRoles , actualRoles );
69+ }
5170}
0 commit comments