44import com .uid2 .shared .auth .ClientKey ;
55import com .uid2 .shared .auth .OperatorKey ;
66import com .uid2 .shared .middleware .AuthMiddleware ;
7+ import com .uid2 .shared .model .Site ;
8+ import com .uid2 .shared .store .ISiteStore ;
79import io .micrometer .core .instrument .Metrics ;
810import io .micrometer .core .instrument .simple .SimpleMeterRegistry ;
911import io .vertx .core .Handler ;
1416import io .vertx .ext .web .client .WebClient ;
1517import io .vertx .junit5 .VertxExtension ;
1618import io .vertx .junit5 .VertxTestContext ;
19+ import org .assertj .core .condition .AnyOf ;
1720import org .junit .jupiter .api .Assertions ;
1821import org .junit .jupiter .api .BeforeEach ;
1922import org .junit .jupiter .api .Test ;
2023import org .junit .jupiter .api .extension .ExtendWith ;
2124import org .junit .jupiter .params .ParameterizedTest ;
2225import org .junit .jupiter .params .provider .Arguments ;
2326import org .junit .jupiter .params .provider .MethodSource ;
27+ import org .mockito .Mock ;
28+ import org .mockito .Mockito ;
2429
2530import java .time .Instant ;
31+ import java .util .HashSet ;
2632import java .util .Set ;
2733import java .util .stream .Stream ;
2834
35+ import static org .mockito .ArgumentMatchers .anyInt ;
36+ import static org .mockito .Mockito .when ;
37+
2938@ ExtendWith (VertxExtension .class )
3039public class RequestCapturingHandlerTest {
3140 private static final int Port = 8080 ;
3241 private static final Handler <RoutingContext > dummyResponseHandler = routingContext -> {
3342 routingContext .response ().setStatusCode (200 ).end ();
3443 };
3544
45+ private ISiteStore siteStore ;
46+
3647 @ BeforeEach
3748 public void before () {
3849 Metrics .globalRegistry .forEachMeter (Metrics .globalRegistry ::remove );
3950 Metrics .globalRegistry .add (new SimpleMeterRegistry ());
51+
52+ Site site100 = new Site (100 , "test-100" , true );
53+ Site site200 = new Site (200 , "test-200" , true );
54+ siteStore = Mockito .mock (ISiteStore .class );
55+ when (siteStore .getSite (100 )).thenReturn (site100 );
56+ when (siteStore .getSite (200 )).thenReturn (site200 );
4057 }
4158
4259 @ Test
4360 public void captureSimplePath (Vertx vertx , VertxTestContext testContext ) {
4461 Router router = Router .router (vertx );
45- router .route ().handler (new RequestCapturingHandler ());
62+ router .route ().handler (new RequestCapturingHandler (siteStore ));
4663 router .get ("/v1/token/generate" ).handler (dummyResponseHandler );
4764
4865 vertx .createHttpServer ().requestHandler (router ).listen (Port , testContext .succeeding (id -> {
@@ -112,7 +129,7 @@ public void captureStaticPath(Vertx vertx, VertxTestContext testContext) {
112129 @ Test
113130 public void captureUnknownPath (Vertx vertx , VertxTestContext testContext ) {
114131 Router router = Router .router (vertx );
115- router .route ().handler (new RequestCapturingHandler ());
132+ router .route ().handler (new RequestCapturingHandler (siteStore ));
116133
117134 vertx .createHttpServer ().requestHandler (router ).listen (Port , testContext .succeeding (id -> {
118135 WebClient client = WebClient .create (vertx );
@@ -132,9 +149,9 @@ public void captureUnknownPath(Vertx vertx, VertxTestContext testContext) {
132149
133150 @ ParameterizedTest
134151 @ MethodSource ("siteIdRoutingContextData" )
135- public void getSiteIdFromRoutingContextData (String key , Object value , String siteId , Vertx vertx , VertxTestContext testContext ) {
152+ public void getSiteIdFromRoutingContextData (String key , Object value , String siteId , String siteName , Vertx vertx , VertxTestContext testContext ) {
136153 Router router = Router .router (vertx );
137- router .route ().handler (new RequestCapturingHandler ());
154+ router .route ().handler (new RequestCapturingHandler (siteStore ));
138155 router .get ("/test" ).handler (ctx -> {
139156 if (key != null ) {
140157 ctx .put (key , value );
@@ -149,6 +166,7 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
149166 double actual = Metrics .globalRegistry
150167 .get ("uid2.http_requests" )
151168 .tag ("site_id" , siteId )
169+ .tag ("site_name" , siteName )
152170 .counter ()
153171 .count ();
154172 Assertions .assertEquals (1 , actual );
@@ -158,13 +176,13 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
158176 }
159177
160178 private static Stream <Arguments > siteIdRoutingContextData () {
161- // Arguments are: routing context data key, routing context data value, site ID tag.
179+ // Arguments are: routing context data key, routing context data value, site ID tag, site Name
162180 return Stream .of (
163- Arguments .of (Const .RoutingContextData .SiteId , 100 , "100" ),
164- Arguments .of (AuthMiddleware .API_CLIENT_PROP , new ClientKey ("keyHash" , "keySalt" , "secret" , "" , Instant .MIN , Set .of (), 200 , "test-key-id-1" ), "200" ),
165- Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" , "name" , "contact" , "protocol" , 0 , false , "test-key-id-2" ), "null" ),
166- Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" , "name" , "contact" , "protocol" , 0 , false , 300 , "test-key-id-3" ), "300" ),
167- Arguments .of (null , null , "null" )
181+ Arguments .of (Const .RoutingContextData .SiteId , 100 , "100" , "test-100" ),
182+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new ClientKey ("keyHash" , "keySalt" , "secret" , "" , Instant .MIN , Set .of (), 200 , "test-key-id-1" ), "200" , "test-200" ),
183+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" , "name" , "contact" , "protocol" , 0 , false , "test-key-id-2" ), "null" , "unknown" ),
184+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" , "name" , "contact" , "protocol" , 0 , false , 300 , "test-key-id-3" ), "300" , "unknown" ),
185+ Arguments .of (null , null , "null" , "unknown" )
168186 );
169187 }
170188}
0 commit comments