@@ -161,7 +161,7 @@ void configMergeDifferentType() {
161
161
assertThat (configuration .getJwksUri ()).isNull ();
162
162
configuration = ClientJwtConfiguration .merge (configuration , ClientJwtConfiguration .parse ("https://any/jwks-uri" ), false );
163
163
assertThat (configuration .getJwkSet ().getKeys ()).hasSize (1 );
164
- assertThat (configuration .getJwksUri ()).isNull ( );
164
+ assertThat (configuration .getJwksUri ()).isEqualTo ( "https://any/jwks-uri" );
165
165
166
166
configuration = ClientJwtConfiguration .merge (configuration , ClientJwtConfiguration .parse ("https://any/jwks-uri" ), true );
167
167
assertThat (configuration .getJwkSet ()).isNull ();
@@ -176,7 +176,8 @@ void configMergeDifferentType() {
176
176
assertThat (configuration .getJwksUri ()).isEqualTo ("https://new/jwks-uri" );
177
177
178
178
configuration = ClientJwtConfiguration .merge (ClientJwtConfiguration .parse ("https://any/jwks-uri" ), ClientJwtConfiguration .parse (jsonJwkSet ), false );
179
- assertThat (configuration .getJwkSet ()).isNull ();
179
+ assertThat (configuration .getJwkSet ()).isNotNull ();
180
+ assertThat (configuration .getJwkSet ().getKeys ()).hasSize (1 );
180
181
assertThat (configuration .getJwksUri ()).isEqualTo ("https://any/jwks-uri" );
181
182
182
183
configuration = ClientJwtConfiguration .merge (ClientJwtConfiguration .parse ("https://any/jwks-uri" ), ClientJwtConfiguration .parse (jsonJwkSet ), true );
@@ -225,6 +226,37 @@ void configDelete() {
225
226
assertThat (configuration ).isNotNull ();
226
227
}
227
228
229
+ @ Test
230
+ void configDeleteFederated () {
231
+ ClientJwtCredential existingKey1 = new ClientJwtCredential ("subject1" , "issuer1" , "audience1" );
232
+ ClientJwtCredential existingKey2 = new ClientJwtCredential ("subject2" , "issuer2" , "audience2" );
233
+ ClientJwtConfiguration existingConfiguration = new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 ));
234
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , new ClientJwtConfiguration (List .of (new ClientJwtCredential ("not-existing" , "not-existing" , null ))))).isEqualTo (existingConfiguration );
235
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , new ClientJwtConfiguration (List .of (existingKey1 )))).isEqualTo (new ClientJwtConfiguration (List .of (existingKey2 )));
236
+ existingConfiguration = new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 ));
237
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , existingConfiguration )).isNull ();
238
+ assertThat (ClientJwtConfiguration .delete (new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 )), new ClientJwtConfiguration (List .of (new ClientJwtCredential ("*" , "*" , null ))))).isNull ();
239
+ assertThat (ClientJwtConfiguration .delete (new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 )), new ClientJwtConfiguration (List .of (new ClientJwtCredential ("*" , "*" , "*" ))))).isNull ();
240
+ }
241
+
242
+ @ Test
243
+ void configDeleteMixedJwtConfiguration () {
244
+ ClientJwtCredential existingKey1 = new ClientJwtCredential ("subject1" , "issuer1" , "audience1" );
245
+ ClientJwtCredential existingKey2 = new ClientJwtCredential ("subject2" , "issuer2" , "audience2" );
246
+ ClientJwtConfiguration existingConfiguration = ClientJwtConfiguration .parse ("https://other/jwks-uri" );
247
+ existingConfiguration .setClientJwtCredentials (List .of (existingKey1 , existingKey2 ));
248
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , new ClientJwtConfiguration (List .of (new ClientJwtCredential ("not-existing" , "not-existing" , null ))))).isEqualTo (existingConfiguration );
249
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , new ClientJwtConfiguration (List .of (existingKey1 ))).getClientJwtCredentials ()).hasSize (1 );
250
+ assertThat (ClientJwtConfiguration .delete (existingConfiguration , new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 ))).getClientJwtCredentials ()).isNull ();
251
+ // complex deletion - given
252
+ existingConfiguration = new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 ));
253
+ existingConfiguration = ClientJwtConfiguration .merge (existingConfiguration , ClientJwtConfiguration .parse ("https://other/jwks-uri" ), false );
254
+ // When
255
+ existingConfiguration = ClientJwtConfiguration .delete (existingConfiguration , ClientJwtConfiguration .parse ("https://other/jwks-uri" ));
256
+ // Then
257
+ assertThat (existingConfiguration ).isEqualTo (new ClientJwtConfiguration (List .of (existingKey1 , existingKey2 )));
258
+ }
259
+
228
260
@ Test
229
261
void configDeleteNull () {
230
262
assertThat (ClientJwtConfiguration .delete (null , ClientJwtConfiguration .parse ("https://other/jwks-uri" ))).isNull ();
@@ -238,6 +270,7 @@ void testHashCode() {
238
270
assertThat (key2 .hashCode ()).isNotEqualTo (key1 .hashCode ());
239
271
assertThat (key1 ).hasSameHashCodeAs (key1 );
240
272
assertThat (key2 ).hasSameHashCodeAs (key2 );
273
+ assertThat (new ClientJwtCredential ("subject" , "issuer" , "audience" )).hasSameHashCodeAs (new ClientJwtCredential ("subject" , "issuer" , "audience" ));
241
274
}
242
275
243
276
@ Test
0 commit comments