package org.cagrid.dorian.federation; import java.math.BigInteger; import java.util.List; import junit.framework.TestCase; import org.cagrid.dorian.service.federation.CertificateBlacklistManager; import org.cagrid.gaards.dorian.test.CA; import org.cagrid.gaards.dorian.test.Credential; import org.cagrid.gaards.dorian.test.Utils; import org.cagrid.tools.database.Database; /** * @author <A href="mailto:langella@bmi.osu.edu">Stephen Langella </A> * @author <A href="mailto:oster@bmi.osu.edu">Scott Oster </A> * @author <A href="mailto:hastings@bmi.osu.edu">Shannon Hastings </A> * @version $Id: ArgumentManagerTable.java,v 1.2 2004/10/15 16:35:16 langella * Exp $ */ public class TestCertificateBlacklistManager extends TestCase { private Database db; private CA ca; private CertificateBlacklistManager blackList; public void testCertificateBlacklist() { try { int size = 3; Credential creds[] = new Credential[size]; for (int i = 0; i < size; i++) { creds[i] = ca.createIdentityCertificate("user " + i); } assertEquals(0, blackList.getBlackList().size()); for (int i = 0; i < size; i++) { assertEquals(i, blackList.getBlackList().size()); blackList.addCertificateToBlackList(creds[i].getCertificate(), "Testing"); List<Long> list = blackList.getBlackList(); assertEquals((i + 1), list.size()); for (int j = 0; j <= i; j++) { boolean found = false; for (int x = 0; x < list.size(); x++) { if (creds[j].getCertificate().getSerialNumber().equals(BigInteger.valueOf(list.get(x).longValue()))) { found = true; break; } } if (!found) { fail("Certificate " + creds[j].getCertificate().getSubjectDN().getName() + " is not in the black list but should be."); } } } for (int i = 0; i < size; i++) { assertEquals((size - i), blackList.getBlackList().size()); blackList.removeCertificateFromBlackList(creds[i].getCertificate().getSerialNumber().longValue()); List<Long> list = blackList.getBlackList(); assertEquals(size - (i + 1), list.size()); for (int j = 0; j <= i; j++) { boolean found = false; for (int x = 0; x < list.size(); x++) { if (creds[j].getCertificate().getSerialNumber().equals(BigInteger.valueOf(list.get(x).longValue()))) { found = true; break; } } if (found) { fail("Certificate " + creds[j].getCertificate().getSubjectDN().getName() + " is in the black list and should not be."); } } } } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } } protected void setUp() throws Exception { super.setUp(); try { db = Utils.getDB(); assertEquals(0, db.getUsedConnectionCount()); ca = new CA(); blackList = new CertificateBlacklistManager(db); blackList.clearDatabase(); } catch (Exception e) { e.printStackTrace(); assertTrue(false); } } protected void tearDown() throws Exception { super.setUp(); try { blackList.clearDatabase(); } catch (Exception e) { e.printStackTrace(); assertTrue(false); } try { assertEquals(0, db.getUsedConnectionCount()); } catch (Exception e) { e.printStackTrace(); assertTrue(false); } } }