/** * verify Identity.identityEquals(Identity) return true, only if names and public keys are equal */ public void testIdentityEquals() throws Exception { String name = "nnn"; PublicKey pk = new PublicKeyStub("aaa", "fff", new byte[] {1, 2, 3, 4, 5}); Identity i = new IdentityStub(name); i.setPublicKey(pk); Object[] value = { // null, Boolean.FALSE, // new Object(), Boolean.FALSE, new IdentityStub("111"), Boolean.FALSE, new IdentityStub(name), Boolean.FALSE, new IdentityStub(name, IdentityScope.getSystemScope()), Boolean.FALSE, i, Boolean.TRUE, new IdentityStub(name, pk), Boolean.TRUE }; for (int k = 0; k < value.length; k += 2) { assertEquals(value[k + 1], new Boolean(i.identityEquals((Identity) value[k]))); if (Boolean.TRUE.equals(value[k + 1])) assertEquals(i.hashCode(), value[k].hashCode()); } Identity i2 = IdentityScope.getSystemScope().getIdentity(name); i2.setPublicKey(pk); assertTrue(i.identityEquals(i2)); }
/** verify Identity.getPublicKey() returns public key */ public void testGetPublicKey() throws Exception { Identity i = new IdentityStub("testGetPublicKey"); assertNull(i.getPublicKey()); PublicKey pk = new PublicKeyStub("kkk", "Identity.testGetPublicKey", null); i.setPublicKey(pk); assertSame(pk, i.getPublicKey()); }
/** verify Identity.setPublicKey() throws KeyManagementException if key is invalid */ public void testSetPublicKey2() throws Exception { Identity i2 = new IdentityStub("testSetPublicKey2_2", IdentityScope.getSystemScope()); new PublicKeyStub("kkk", "testSetPublicKey2", new byte[] {1, 2, 3, 4, 5}); try { i2.setPublicKey(null); // fail("KeyManagementException should be thrown - key is null"); } catch (KeyManagementException ok) { } }
/** verify Identity.setPublicKey() removes old key and all identity's certificates */ public void testSetPublicKey4() throws Exception { Identity i = new IdentityStub("testSetPublicKey4"); PublicKeyStub pk1 = new PublicKeyStub("kkk", "Identity.testSetPublicKey4", null); CertificateStub c1 = new CertificateStub("fff", null, null, pk1); CertificateStub c2 = new CertificateStub("zzz", null, null, pk1); i.addCertificate(c1); i.addCertificate(c2); assertEquals(2, i.certificates().length); assertSame(pk1, i.getPublicKey()); PublicKeyStub pk2 = new PublicKeyStub("zzz", "Identity.testSetPublicKey4", null); i.setPublicKey(pk2); assertSame(pk2, i.getPublicKey()); assertEquals(0, i.certificates().length); }
/** * verify addCertificate(Certificate certificate) adds a certificate for this identity. If the * identity has a public key, the public key in the certificate must be the same */ public void testAddCertificate1() throws Exception { Identity i = new IdentityStub("iii"); PublicKeyStub pk1 = new PublicKeyStub("kkk", "fff", new byte[] {1, 2, 3, 4, 5}); i.setPublicKey(pk1); // try with the same key CertificateStub c1 = new CertificateStub("fff", null, null, pk1); i.addCertificate(c1); assertSame(c1, i.certificates()[0]); // try Certificate with different key try { i.addCertificate( new CertificateStub( "ccc", null, null, new PublicKeyStub("k2", "fff", new byte[] {6, 7, 8, 9, 0}))); fail("KeyManagementException should be thrown"); } catch (KeyManagementException ok) { } }