package com.google.identitytoolkit; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import junit.framework.TestCase; import net.oauth.jsontoken.crypto.Verifier; import org.mockito.Mockito; import java.util.List; /** * Tests Gitkit verifier manager. */ public class GitkitVerifierManagerTest extends TestCase { public static final String CERT_0 = "-----BEGIN CERTIFICATE-----\n" + "MIIDDzCCAfegAwIBAgIJAMKLYPybcIAZMA0GCSqGSIb3DQEBBQUAMB4xHDAaBgNV\n" + "BAMME0dvb2dsZSBBdXRoIFRvb2xraXQwHhcNMTMwNDI1MTUyMDExWhcNMTQwNDI1\n" + "MTUyMDExWjAeMRwwGgYDVQQDDBNHb29nbGUgQXV0aCBUb29sa2l0MIIBIjANBgkq\n" + "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyVZ3j4Uovsspa6dCiTZAC/SndulGDKYf\n" + "mVr95ea+u4k0XMvvd7w9k0wq4d1xagMIKHZhAnYLvYfW0O5D8+d58/+UJq4vrlY9\n" + "zOcTOsOoZ5tX325TMIJmn7IzMMpds1tA2MfWNiMkf/+AFZfxg14jyBeRdk4LVZWa\n" + "FxMz9Fs/23pTuNBYwGzM3xyZajgEhJ9gp3k95qlQPq00bIMa69YiAcmyr4RVYpgW\n" + "qd+WPdROEZvRLsCaIGTeehLR6zceUPrTofbOo82JI3/PTfJ+bm+IzXRq5Ogynfw6\n" + "f4z0pJ/YuUlmGD+rrm5Dfja/V3QTPyqzFpQSPXND7OdpT63MryKHtQIDAQABo1Aw\n" + "TjAdBgNVHQ4EFgQUwGCN266hsEwDjx2aNQ4cdPSjmJMwHwYDVR0jBBgwFoAUwGCN\n" + "266hsEwDjx2aNQ4cdPSjmJMwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC\n" + "AQEABDl3G5Ao3ZTXdeNoeF8knWl//6pyxz/Jhv1/PApA9NQpyhqijmGyDMvCLt0F\n" + "02HVTqg/MYG5zwUCroV9daraEdn5302sx8kh1Ei8SBCKzoDa7B8wSd2/KrEd6zsX\n" + "/7ZVzSNx37xk5Jhzz6EmXfY7z22DmFWggxyeTYGgR5YgKkuslbIxxEKjVhK5YK60\n" + "1pyRhl0tqe2xt+FMn0tvLdkCfVCvyDj2cD7g5XBVXZS4rqwfy1XpzQfSuU4sQcgn\n" + "VpgjVOtnax48yJFXeNTrOoTPiQV2AZQSrGuKoJ8GojM6oZuEv5S2moB3IMKyU5F3\n" + "RQ1NcLfJHhAz2ccdbaBXJaP4Hw==\n" + "-----END CERTIFICATE-----"; public static final String CERT_1 = "-----BEGIN CERTIFICATE-----\n" + "MIIDHDCCAgSgAwIBAgIEnqP6TzANBgkqhkiG9w0BAQsFADAzMQ8wDQYDVQQDEwZH\n" + "aXRraXQxEzARBgNVBAoTCkdvb2dsZSBJbmMxCzAJBgNVBAYTAlVTMB4XDTE0MDQw\n" + "OTIwMjgyNVoXDTE1MDQwNDIwMjgyNVowMzEPMA0GA1UEAxMGR2l0a2l0MRMwEQYD\n" + "VQQKEwpHb29nbGUgSW5jMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQAD\n" + "ggEPADCCAQoCggEBAJWD8U8ctUaeM2U4GodrjGptJcv67YoeahzPMSf8vSFDLodp\n" + "eg3TwQHl6sMul15EWJg9nByqa1rVqDi6zVlwGKTxLXoHTF5OrqB+SH/j97PTdNWa\n" + "qnuQTSJEBR3NDNAXu3gL+e9tDT6W6jpIdu9fvb0hLT0d7sNqM1jZnepqrQgMIWGP\n" + "Sna64rvuth/sfx7UCKYY9gXHG5u/fAOMyD9TcvUk5Xz83wWVMJJ0vkcHZGrr3ATo\n" + "QdhYXVWaKQ6x9CM4ckXx3lktOuvlf5dT7eo0oX1RUvr8mCzrd81oIfDe7AeI7CCG\n" + "gUEqOUsGvk3qnErcIVuPr4vxNLC0MKBvnFjWTLUCAwEAAaM4MDYwDAYDVR0TAQH/\n" + "BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCB4AwDQYJ\n" + "KoZIhvcNAQELBQADggEBAGhaFUl6sGvZ3eNmF+9L9qBH/R4BQ3UkdW8FOCynIjD5\n" + "yH5qXd/Zna0mY77tSTuCjn9oDzomTzzeQdABtSgO3vQrf3YwpEzbBKTHyX2bWojT\n" + "vnZrFYkZ8GdfN+jyrGekFNFmQoeJrUGTyVjUMxj6UmcsgIpJWO6kMQv9DDtk0XL2\n" + "4GOhxk3MEm044qAT+D2OUlPCwzQhoG2idNH7ffnc1cYOsclpjJvdxiXJkzqSTpro\n" + "cmBuBSaCW3N0YgzTOEj+pC0rZKHuawyn4QYvvisLrCsTx81UiBW5GsK8MpmMsvPh\n" + "l/KAz8x0PKbbLtjNKW93nqdC4cumST7Q579Xs8USZrU=\n" + "-----END CERTIFICATE-----\n"; public static final String TEST_CERTS = "{\n" + " \"0\": \"" + CERT_0 + "\",\n" + " \"1\": \"" + CERT_1 + "\"}"; private RpcHelper mockRpc = Mockito.mock(RpcHelper.class); private GitkitVerifierManager verifierManager; @Override public void setUp() { verifierManager = new GitkitVerifierManager(mockRpc); } public void testFindVerifiers() throws Exception { when(mockRpc.downloadCerts()).thenReturn(TEST_CERTS); List<Verifier> verifiers = verifierManager.findVerifier("any-issuer", "0"); assertEquals(1, verifiers.size()); verifiers = verifierManager.findVerifier("any-issuer", "1"); assertEquals(1, verifiers.size()); // should send one request only verify(mockRpc).downloadCerts(); } }