4
4
import com .uid2 .shared .auth .ClientKey ;
5
5
import com .uid2 .shared .auth .OperatorKey ;
6
6
import com .uid2 .shared .middleware .AuthMiddleware ;
7
+ import com .uid2 .shared .model .Site ;
8
+ import com .uid2 .shared .store .ISiteStore ;
7
9
import io .micrometer .core .instrument .Metrics ;
8
10
import io .micrometer .core .instrument .simple .SimpleMeterRegistry ;
9
11
import io .vertx .core .Handler ;
14
16
import io .vertx .ext .web .client .WebClient ;
15
17
import io .vertx .junit5 .VertxExtension ;
16
18
import io .vertx .junit5 .VertxTestContext ;
19
+ import org .assertj .core .condition .AnyOf ;
17
20
import org .junit .jupiter .api .Assertions ;
18
21
import org .junit .jupiter .api .BeforeEach ;
19
22
import org .junit .jupiter .api .Test ;
20
23
import org .junit .jupiter .api .extension .ExtendWith ;
21
24
import org .junit .jupiter .params .ParameterizedTest ;
22
25
import org .junit .jupiter .params .provider .Arguments ;
23
26
import org .junit .jupiter .params .provider .MethodSource ;
27
+ import org .mockito .Mock ;
28
+ import org .mockito .Mockito ;
24
29
25
30
import java .time .Instant ;
31
+ import java .util .HashSet ;
26
32
import java .util .Set ;
27
33
import java .util .stream .Stream ;
28
34
35
+ import static org .mockito .ArgumentMatchers .anyInt ;
36
+ import static org .mockito .Mockito .when ;
37
+
29
38
@ ExtendWith (VertxExtension .class )
30
39
public class RequestCapturingHandlerTest {
31
40
private static final int Port = 8080 ;
32
41
private static final Handler <RoutingContext > dummyResponseHandler = routingContext -> {
33
42
routingContext .response ().setStatusCode (200 ).end ();
34
43
};
35
44
45
+ private ISiteStore siteStore ;
46
+
36
47
@ BeforeEach
37
48
public void before () {
38
49
Metrics .globalRegistry .forEachMeter (Metrics .globalRegistry ::remove );
39
50
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 );
40
57
}
41
58
42
59
@ Test
43
60
public void captureSimplePath (Vertx vertx , VertxTestContext testContext ) {
44
61
Router router = Router .router (vertx );
45
- router .route ().handler (new RequestCapturingHandler ());
62
+ router .route ().handler (new RequestCapturingHandler (siteStore ));
46
63
router .get ("/v1/token/generate" ).handler (dummyResponseHandler );
47
64
48
65
vertx .createHttpServer ().requestHandler (router ).listen (Port , testContext .succeeding (id -> {
@@ -112,7 +129,7 @@ public void captureStaticPath(Vertx vertx, VertxTestContext testContext) {
112
129
@ Test
113
130
public void captureUnknownPath (Vertx vertx , VertxTestContext testContext ) {
114
131
Router router = Router .router (vertx );
115
- router .route ().handler (new RequestCapturingHandler ());
132
+ router .route ().handler (new RequestCapturingHandler (siteStore ));
116
133
117
134
vertx .createHttpServer ().requestHandler (router ).listen (Port , testContext .succeeding (id -> {
118
135
WebClient client = WebClient .create (vertx );
@@ -132,9 +149,9 @@ public void captureUnknownPath(Vertx vertx, VertxTestContext testContext) {
132
149
133
150
@ ParameterizedTest
134
151
@ 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 ) {
136
153
Router router = Router .router (vertx );
137
- router .route ().handler (new RequestCapturingHandler ());
154
+ router .route ().handler (new RequestCapturingHandler (siteStore ));
138
155
router .get ("/test" ).handler (ctx -> {
139
156
if (key != null ) {
140
157
ctx .put (key , value );
@@ -149,6 +166,7 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
149
166
double actual = Metrics .globalRegistry
150
167
.get ("uid2.http_requests" )
151
168
.tag ("site_id" , siteId )
169
+ .tag ("site_name" , siteName )
152
170
.counter ()
153
171
.count ();
154
172
Assertions .assertEquals (1 , actual );
@@ -158,13 +176,13 @@ public void getSiteIdFromRoutingContextData(String key, Object value, String sit
158
176
}
159
177
160
178
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
162
180
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" )
168
186
);
169
187
}
170
188
}
0 commit comments