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 -> {
@@ -90,7 +107,7 @@ public void captureSubRouterPath(Vertx vertx, VertxTestContext testContext) {
90107 @ Test
91108 public void captureStaticPath (Vertx vertx , VertxTestContext testContext ) {
92109 Router router = Router .router (vertx );
93- router .route ().handler (new RequestCapturingHandler ());
110+ router .route ().handler (new RequestCapturingHandler (siteStore ));
94111 router .get ("/static/*" ).handler (dummyResponseHandler );
95112
96113 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,10 @@ 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 ,
153+ Vertx vertx , VertxTestContext testContext ) {
136154 Router router = Router .router (vertx );
137- router .route ().handler (new RequestCapturingHandler ());
155+ router .route ().handler (new RequestCapturingHandler (siteStore ));
138156 router .get ("/test" ).handler (ctx -> {
139157 if (key != null ) {
140158 ctx .put (key , value );
@@ -149,6 +167,7 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
149167 double actual = Metrics .globalRegistry
150168 .get ("uid2.http_requests" )
151169 .tag ("site_id" , siteId )
170+ .tag ("site_name" , siteName )
152171 .counter ()
153172 .count ();
154173 Assertions .assertEquals (1 , actual );
@@ -160,11 +179,14 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
160179 private static Stream <Arguments > siteIdRoutingContextData () {
161180 // Arguments are: routing context data key, routing context data value, site ID tag.
162181 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" )
182+ Arguments .of (Const .RoutingContextData .SiteId , 100 , "100" , "test-100" ),
183+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new ClientKey ("keyHash" , "keySalt" ,
184+ "secret" , "" , Instant .MIN , Set .of (), 200 , "test-key-id-1" ), "200" , "test-200" ),
185+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" ,
186+ "name" , "contact" , "protocol" , 0 , false , "test-key-id-2" ), "null" , "unknown" ),
187+ Arguments .of (AuthMiddleware .API_CLIENT_PROP , new OperatorKey ("test-keyHash" , "test-keySalt" ,
188+ "name" , "contact" , "protocol" , 0 , false , 300 , "test-key-id-3" ), "300" , "unknown" ),
189+ Arguments .of (null , null , "null" , "unknown" )
168190 );
169191 }
170192}
0 commit comments