[java-oidc-common] branch main updated: Add test of the collection based credential resolver

Phil Smart philip.smart at jisc.ac.uk
Fri Feb 17 12:54:03 UTC 2023


This is an automated email from the git hooks/post-receive script.

philsmart pushed a commit to branch main
in repository java-oidc-common.

View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=f5005fa0329fe478a8b3283d6fbfc3adb8e15689

The following commit(s) were added to refs/heads/main by this push:
     new f5005fa  Add test of the collection based credential resolver
f5005fa is described below

commit f5005fa0329fe478a8b3283d6fbfc3adb8e15689
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Feb 17 12:54:01 2023 +0000

    Add test of the collection based credential resolver
---
 ...CollectionJOSEObjectCredentialResolverTest.java | 130 +++++++++++++++++++++
 1 file changed, 130 insertions(+)

diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/CollectionJOSEObjectCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/CollectionJOSEObjectCredentialResolverTest.java
new file mode 100644
index 0000000..1956713
--- /dev/null
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/CollectionJOSEObjectCredentialResolverTest.java
@@ -0,0 +1,130 @@
+
+package net.shibboleth.oidc.security.credential.impl;
+
+import static org.testng.Assert.assertEquals;
+
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.StreamSupport;
+
+import javax.crypto.SecretKey;
+
+import org.opensaml.security.credential.Credential;
+import org.opensaml.security.credential.CredentialContextSet;
+import org.opensaml.security.credential.UsageType;
+import org.testng.annotations.Test;
+
+import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
+
+/** Tests for the CollectionJOSEObjectCredentialResolver.*/
+public class CollectionJOSEObjectCredentialResolverTest {
+    
+    /** The resolver to test.*/
+    private CollectionJOSEObjectCredentialResolver resolver;
+    
+    
+    @Test
+    public void testCredentialsAreAdded() throws ResolverException {
+
+        final List<Credential> creds = new ArrayList<>();
+        creds.add(new MockCredential());
+        creds.add(new MockCredential());
+        resolver = new CollectionJOSEObjectCredentialResolver(creds);
+        final var resolved = resolver.resolve(new CriteriaSet());
+        final var count = StreamSupport.stream(resolved.spliterator(), false).count();
+        assertEquals(count, 2);        
+    }
+    
+    @Test
+    public void testCredentialsAreAdded_OneIsNull() throws ResolverException {
+
+        final List<Credential> creds = new ArrayList<>();
+        creds.add(new MockCredential());
+        creds.add(null);
+        resolver = new CollectionJOSEObjectCredentialResolver(creds);
+        final var resolved = resolver.resolve(new CriteriaSet());
+        final var count = StreamSupport.stream(resolved.spliterator(), false).count();
+        assertEquals(count, 1);        
+    }
+    
+    @Test
+    public void testCredentialsAreAdded_AllNull() throws ResolverException {
+
+        final List<Credential> creds = new ArrayList<>();
+        creds.add(null);
+        creds.add(null);
+        resolver = new CollectionJOSEObjectCredentialResolver(creds);
+        final var resolved = resolver.resolve(new CriteriaSet());
+        final var count = StreamSupport.stream(resolved.spliterator(), false).count();
+        assertEquals(count, 0);        
+    }
+    
+    @Test
+    public void testNoCredentials_EmptyList() throws ResolverException {
+
+        resolver = new CollectionJOSEObjectCredentialResolver(Collections.emptyList());
+        final var resolved = resolver.resolve(new CriteriaSet());
+        final var count = StreamSupport.stream(resolved.spliterator(), false).count();
+        assertEquals(count, 0);        
+    }
+    
+    @Test(expectedExceptions = ConstraintViolationException.class)
+    public void testNullCredentials() throws ResolverException {
+        
+        final List<Credential> creds = null;
+        resolver = new CollectionJOSEObjectCredentialResolver(creds);     
+    }
+    
+    
+    /** A no-op mock credential.*/
+    private static class MockCredential implements Credential {
+
+        @Override
+        public String getEntityId() {
+            return null;
+        }
+
+        @Override
+        public UsageType getUsageType() {
+            return null;
+        }
+
+        @Override
+        public Collection<String> getKeyNames() {
+            return null;
+        }
+
+        @Override
+        public PublicKey getPublicKey() { 
+            return null;
+        }
+
+        @Override
+        public PrivateKey getPrivateKey() {
+            return null;
+        }
+
+        @Override
+        public SecretKey getSecretKey() {
+            return null;
+        }
+
+        @Override
+        public CredentialContextSet getCredentialContextSet() { 
+            return null;
+        }
+
+        @Override
+        public Class<? extends Credential> getCredentialType() {   
+            return null;
+        }
+        
+    }
+
+}

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list