@@ -58,10 +58,10 @@ public void testStandardActualAPI() {
5858 @ Test
5959 public void testCustomActualAPI () {
6060 APIFilter filter = new APIFilter .Builder (APIType .ACTUAL_API )
61- .includeClientApplications (false )
62- .includeClientOrganizations (false )
63- .includeQuotas (false )
64- .build ();
61+ .includeClientApplications (false )
62+ .includeClientOrganizations (false )
63+ .includeQuotas (false )
64+ .build ();
6565 assertFalse (filter .isIncludeClientApplications ());
6666 assertFalse (filter .isIncludeClientOrganizations ());
6767 assertFalse (filter .isIncludeQuotas ());
@@ -71,8 +71,8 @@ public void testCustomActualAPI() {
7171 @ Test
7272 public void filterWithId () {
7373 APIFilter filter = new APIFilter .Builder ()
74- .hasId ("9878973123" )
75- .build ();
74+ .hasId ("9878973123" )
75+ .build ();
7676 Assert .assertEquals (filter .getFilters ().size (), 0 );
7777 Assert .assertEquals (filter .getId (), "9878973123" );
7878 }
@@ -82,8 +82,8 @@ public void filterWithPath() {
8282 // For this test, we must simulate API-Manager version >7.7
8383 apiManagerAdapter .setApiManagerVersion ("7.7.20200130" );
8484 APIFilter filter = new APIFilter .Builder ()
85- .hasApiPath ("/v1/api" )
86- .build ();
85+ .hasApiPath ("/v1/api" )
86+ .build ();
8787 Assert .assertEquals (filter .getFilters ().size (), 3 );
8888 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "path" );
8989 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -94,8 +94,8 @@ public void filterWithPath() {
9494 @ Test
9595 public void filterWithName () {
9696 APIFilter filter = new APIFilter .Builder ()
97- .hasName ("The name I want" )
98- .build ();
97+ .hasName ("The name I want" )
98+ .build ();
9999 Assert .assertEquals (filter .getFilters ().size (), 3 );
100100 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "name" );
101101 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -105,16 +105,16 @@ public void filterWithName() {
105105 @ Test
106106 public void hasFullWildCardName () {
107107 APIFilter filter = new APIFilter .Builder ()
108- .hasName ("*" )
109- .build ();
108+ .hasName ("*" )
109+ .build ();
110110 Assert .assertEquals (filter .getFilters ().size (), 0 );
111111 }
112112
113113 @ Test
114114 public void filterWithBackendApiID () {
115115 APIFilter filter = new APIFilter .Builder ()
116- .hasApiId ("7868768768" )
117- .build ();
116+ .hasApiId ("7868768768" )
117+ .build ();
118118 Assert .assertEquals (filter .getFilters ().size (), 3 );
119119 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "apiid" );
120120 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -124,8 +124,8 @@ public void filterWithBackendApiID() {
124124 @ Test
125125 public void filterWithDeprecated () {
126126 APIFilter filter = new APIFilter .Builder ()
127- .isDeprecated (true )
128- .build ();
127+ .isDeprecated (true )
128+ .build ();
129129 Assert .assertEquals (filter .getFilters ().size (), 3 );
130130 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "deprecated" );
131131 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -135,8 +135,8 @@ public void filterWithDeprecated() {
135135 @ Test
136136 public void filterWithRetired () {
137137 APIFilter filter = new APIFilter .Builder ()
138- .isRetired (true )
139- .build ();
138+ .isRetired (true )
139+ .build ();
140140 Assert .assertEquals (filter .getFilters ().size (), 3 );
141141 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "retired" );
142142 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -146,8 +146,8 @@ public void filterWithRetired() {
146146 @ Test
147147 public void filterWithState () {
148148 APIFilter filter = new APIFilter .Builder ()
149- .hasState ("unpublished" )
150- .build ();
149+ .hasState ("unpublished" )
150+ .build ();
151151 Assert .assertEquals (filter .getFilters ().size (), 3 );
152152 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "state" );
153153 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "eq" );
@@ -157,9 +157,9 @@ public void filterWithState() {
157157 @ Test
158158 public void filterWithCreatedOn () {
159159 APIFilter filter = new APIFilter .Builder ()
160- .isCreatedOnAfter ("1623915264000" ) // 17.06.2021
161- .isCreatedOnBefore ("1624865664000" ) // 28.06.2021
162- .build ();
160+ .isCreatedOnAfter ("1623915264000" ) // 17.06.2021
161+ .isCreatedOnBefore ("1624865664000" ) // 28.06.2021
162+ .build ();
163163 Assert .assertEquals (filter .getFilters ().size (), 6 );
164164 Assert .assertEquals (filter .getFilters ().get (0 ).getValue (), "createdOn" );
165165 Assert .assertEquals (filter .getFilters ().get (1 ).getValue (), "gt" );
@@ -172,29 +172,56 @@ public void filterWithCreatedOn() {
172172 @ Test
173173 public void apiFilterEqualTest () {
174174 APIFilter filter1 = new APIFilter .Builder ()
175- .hasId ("12345" )
176- .build ();
175+ .hasId ("12345" )
176+ .build ();
177177
178178 APIFilter filter2 = new APIFilter .Builder ()
179- .hasId ("12345" )
180- .build ();
179+ .hasId ("12345" )
180+ .build ();
181181
182182 Assert .assertEquals (filter1 , filter2 , "Both filters should be equal" );
183183 }
184184
185+ @ Test
186+ public void apiFilterNotEqualForDifferentPathTest () {
187+ APIFilter filter1 = new APIFilter .Builder ()
188+ .hasApiPath ("/api/one" )
189+ .build ();
190+
191+ APIFilter filter2 = new APIFilter .Builder ()
192+ .hasApiPath ("/api/two" )
193+ .build ();
194+
195+ Assert .assertNotEquals (filter1 , filter2 , "Filters with different apiPath must not be equal" );
196+ Assert .assertNotEquals (filter1 .hashCode (), filter2 .hashCode (), "Filters with different apiPath should have different hashcode" );
197+ }
198+
199+ @ Test
200+ public void testApiPathFilterMatchAndMismatch () {
201+ APIFilter filter = new APIFilter .Builder ().hasApiPath ("/test/path/*" ).build ();
202+
203+ API matchingApi = new API ();
204+ matchingApi .setPath ("/test/path/v1" );
205+ assertFalse (filter .filter (matchingApi ), "API path /test/path/v1 should match /test/path/*" );
206+
207+ API nonMatchingApi = new API ();
208+ nonMatchingApi .setPath ("/other/path/v1" );
209+ assertTrue (filter .filter (nonMatchingApi ), "API path /other/path/v1 should not match /test/path/*" );
210+ }
211+
185212 @ Test
186213 public void testBackendBasepathFilter () {
187214 APIFilter filter = new APIFilter .Builder ()
188- .hasBackendBasepath ("*emr-system*" )
189- .build ();
215+ .hasBackendBasepath ("*emr-system*" )
216+ .build ();
190217 API testAPI = getAPIWithBackendBasepath ("http://emr-system:8081" );
191218 assertFalse (filter .filter (testAPI ), "API with base-path: http://emr-system:8081 should match to filter: *emr-system*" );
192219 testAPI = getAPIWithBackendBasepath ("http://sec.hipaa:8086" );
193220 assertTrue (filter .filter (testAPI ), "API with base-path: http://sec.hipaa:8086 should NOT match to filter: *emr-system*" );
194221
195222 filter = new APIFilter .Builder ()
196- .hasBackendBasepath ("http://emr-system:8081" )
197- .build ();
223+ .hasBackendBasepath ("http://emr-system:8081" )
224+ .build ();
198225
199226 testAPI = getAPIWithBackendBasepath ("http://emr-system:8081" );
200227 assertFalse (filter .filter (testAPI ), "API with base-path: http://emr-system:8081 should match to filter: http://emr-system:8081" );
@@ -223,46 +250,46 @@ public void filterAPIsWithOrganization() {
223250 @ Test
224251 public void testPolicyFilter () throws AppException {
225252 APIFilter filter = new APIFilter .Builder ()
226- .hasPolicyName ("*Policy*" )
227- .build ();
253+ .hasPolicyName ("*Policy*" )
254+ .build ();
228255 API testAPI = new API ();
229256 addPolicy (testAPI , "Request Policy 1" , PolicyType .REQUEST );
230257 addPolicy (testAPI , "Routing Policy 1" , PolicyType .ROUTING );
231258 assertFalse (filter .filter (testAPI ), "API must match to pattern '*Policy*'" );
232259
233260 filter = new APIFilter .Builder ()
234- .hasPolicyName ("*Response*" )
235- .build ();
261+ .hasPolicyName ("*Response*" )
262+ .build ();
236263 testAPI = new API ();
237264 addPolicy (testAPI , "Request Policy 1" , PolicyType .REQUEST );
238265 addPolicy (testAPI , "Response Policy 1" , PolicyType .RESPONSE );
239266 assertFalse (filter .filter (testAPI ), "API must match to pattern '*Response*'" );
240267
241268 filter = new APIFilter .Builder ()
242- .hasPolicyName ("*Routing*" )
243- .build ();
269+ .hasPolicyName ("*Routing*" )
270+ .build ();
244271 testAPI = new API ();
245272 addPolicy (testAPI , "Request Policy 1" , PolicyType .REQUEST );
246273 addPolicy (testAPI , "Response Policy 1" , PolicyType .RESPONSE );
247274 assertTrue (filter .filter (testAPI ), "API must NOT match to pattern '*Response*'" );
248275
249276 filter = new APIFilter .Builder ()
250- .hasPolicyName ("Response Policy 1" )
251- .build ();
277+ .hasPolicyName ("Response Policy 1" )
278+ .build ();
252279 testAPI = new API ();
253280 addPolicy (testAPI , "Response Policy 1" , PolicyType .RESPONSE );
254281 assertFalse (filter .filter (testAPI ), "API must match to pattern 'Response Policy 1'" );
255282
256283 filter = new APIFilter .Builder ()
257- .hasPolicyName ("Response Policy 2" )
258- .build ();
284+ .hasPolicyName ("Response Policy 2" )
285+ .build ();
259286 testAPI = new API ();
260287 addPolicy (testAPI , "Response Policy 1" , PolicyType .RESPONSE );
261288 assertTrue (filter .filter (testAPI ), "API must NOT match to pattern 'Response Policy 2' as it is using 'Response Policy 1'" );
262289
263290 filter = new APIFilter .Builder ()
264- .hasPolicyName ("Not used policy" )
265- .build ();
291+ .hasPolicyName ("Not used policy" )
292+ .build ();
266293 testAPI = new API ();
267294 addPolicy (testAPI , "Response Policy 1" , PolicyType .RESPONSE );
268295 assertTrue (filter .filter (testAPI ), "API must NOT match to pattern 'Not used policy' as it is using 'Response Policy 1'" );
@@ -271,24 +298,24 @@ public void testPolicyFilter() throws AppException {
271298 @ Test
272299 public void testPolicyFilterWithSpecialCaracter () throws AppException {
273300 APIFilter filter = new APIFilter .Builder ()
274- .hasPolicyName ("*(Policy)*" )
275- .build ();
301+ .hasPolicyName ("*(Policy)*" )
302+ .build ();
276303 API testAPI = new API ();
277304 addPolicy (testAPI , "Request (Policy) 1" , PolicyType .REQUEST );
278305 assertFalse (filter .filter (testAPI ), "API must match to pattern '*(Policy)*'" );
279306
280307 filter = new APIFilter .Builder () {
281308 }
282- .hasPolicyName ("()*{}()[].+?^$|" )
283- .build ();
309+ .hasPolicyName ("()*{}()[].+?^$|" )
310+ .build ();
284311 testAPI = new API ();
285312 addPolicy (testAPI , "(){}()[].+?^$|" , PolicyType .REQUEST );
286313 assertFalse (filter .filter (testAPI ), "API must match to pattern '*(Policy)*'" );
287314
288315 filter = new APIFilter .Builder () {
289316 }
290- .hasPolicyName ("*(policy)*" )
291- .build ();
317+ .hasPolicyName ("*(policy)*" )
318+ .build ();
292319 testAPI = new API ();
293320 addPolicy (testAPI , "Request policy" , PolicyType .REQUEST );
294321 assertTrue (filter .filter (testAPI ), "API must not match to pattern '*(Policy)*'" );
@@ -331,8 +358,8 @@ public void testInboundSecurityPolicyFilter() {
331358 addInboundSecurityPolicy (testAPI , "Inbound Security Policy 1" );
332359
333360 APIFilter filter = new APIFilter .Builder ()
334- .hasPolicyName ("Inbound Security*" )
335- .build ();
361+ .hasPolicyName ("Inbound Security*" )
362+ .build ();
336363 assertFalse (filter .filter (testAPI ), "API must match to pattern 'Inbound Security*'" );
337364 }
338365
@@ -403,7 +430,7 @@ private API getAPIWithBackendBasepath(String basePath) {
403430 return api ;
404431 }
405432
406- private void addPolicy (API api , String policyName , PolicyType type ) throws AppException {
433+ private void addPolicy (API api , String policyName , PolicyType type ) {
407434 OutboundProfile outboundProfile = new OutboundProfile ();
408435 Policy policy = new Policy (policyName );
409436 switch (type ) {
@@ -432,7 +459,7 @@ private void addInboundSecurityPolicy(API api, String policyName) {
432459 properties .put ("authenticationPolicy" , "<key type='CircuitContainer'><id field='name' value='API Keys'/><key type='FilterCircuit'><id field='name' value='" + policyName + "'/></key></key>" );
433460 SecurityDevice securityDevice = new SecurityDevice ();
434461 securityDevice .setType (DeviceType .authPolicy );
435- // securityDevice.setConvertPolicies(false);
462+ // securityDevice.setConvertPolicies(false);
436463 securityDevice .setProperties (properties );
437464 List <SecurityDevice > devices = new ArrayList <>();
438465 devices .add (securityDevice );
@@ -469,7 +496,7 @@ private void addInboundSecurityToAPI(API api, DeviceType deviceType) {
469496 api .setInboundProfiles (inboundProfiles );
470497 }
471498
472- private void addOutboundSecurityToAPI (API api , AuthType authType ) throws AppException {
499+ private void addOutboundSecurityToAPI (API api , AuthType authType ) {
473500 List <AuthenticationProfile > authnProfiles = new ArrayList <>();
474501 AuthenticationProfile authNProfile = new AuthenticationProfile ();
475502 authNProfile .setName ("_default" );
0 commit comments