public void testAddUpdateRemoveAuthorities() { GTSAuthorityManager am = new GTSAuthorityManager(GTS_URI, getAuthoritySyncTime(), db); int count = 5; AuthorityGTS[] a = new AuthorityGTS[count]; try { am.clearDatabase(); for (int i = 0; i < count; i++) { a[i] = getAuthority("GTS " + i, 1); assertFalse(am.doesAuthorityExist(a[i].getServiceURI())); assertEquals(i, am.getAuthorityCount()); am.addAuthority(a[i]); assertTrue(am.doesAuthorityExist(a[i].getServiceURI())); assertEquals((i + 1), am.getAuthorityCount()); assertEquals(a[i], am.getAuthority(a[i].getServiceURI())); for (int j = 0; j < i; j++) { a[j].setPriority(a[j].getPriority() + 1); assertEquals(a[j], am.getAuthority(a[j].getServiceURI())); } } for (int i = 0; i < count; i++) { updateAuthority(a[i]); am.updateAuthority(a[i]); assertTrue(am.doesAuthorityExist(a[i].getServiceURI())); assertEquals(count, am.getAuthorityCount()); assertEquals(a[i], am.getAuthority(a[i].getServiceURI())); } int priority = 1; AuthorityPrioritySpecification[] specs = new AuthorityPrioritySpecification[count]; for (int i = 0; i < count; i++) { a[i].setPriority(priority); specs[i] = new AuthorityPrioritySpecification(); specs[i].setServiceURI(a[i].getServiceURI()); specs[i].setPriority(a[i].getPriority()); priority = priority + 1; } AuthorityPriorityUpdate update = new AuthorityPriorityUpdate(); update.setAuthorityPrioritySpecification(specs); am.updateAuthorityPriorities(update); for (int i = 0; i < count; i++) { assertTrue(am.doesAuthorityExist(a[i].getServiceURI())); assertEquals(count, am.getAuthorityCount()); assertEquals(a[i], am.getAuthority(a[i].getServiceURI())); } AuthorityGTS[] auths = am.getAuthorities(); for (int i = 0; i < count; i++) { assertEquals(a[i], auths[i]); } int num = count; for (int i = 0; i < count; i++) { am.removeAuthority(a[i].getServiceURI()); num = num - 1; assertFalse(am.doesAuthorityExist(a[i].getServiceURI())); assertEquals(num, am.getAuthorityCount()); for (int j = (i + 1); j <= i; j++) { a[j].setPriority(a[j].getPriority() - 1); assertEquals(a[j], am.getAuthority(a[j].getServiceURI())); } } } catch (Exception e) { FaultUtil.printFault(e); assertTrue(false); } finally { try { am.clearDatabase(); } catch (Exception e) { e.printStackTrace(); } } }
public void testUpdateInvalidAuthority() { GTSAuthorityManager am = new GTSAuthorityManager(GTS_URI, getAuthoritySyncTime(), db); try { am.clearDatabase(); TimeToLive ttl = new TimeToLive(); ttl.setHours(10); ttl.setMinutes(10); ttl.setSeconds(10); AuthorityGTS a = getAuthority("GTS", 1); am.addAuthority(a); assertTrue(am.doesAuthorityExist(a.getServiceURI())); assertEquals(1, am.getAuthorityCount()); assertEquals(a, am.getAuthority(a.getServiceURI())); // First make sure update works a.setTimeToLive(ttl); am.updateAuthority(a); assertTrue(am.doesAuthorityExist(a.getServiceURI())); assertEquals(1, am.getAuthorityCount()); assertEquals(a, am.getAuthority(a.getServiceURI())); // Add Authority no serviceURI AuthorityGTS a1 = getAuthority("GTS", 1); a1.setServiceURI(null); try { am.updateAuthority(a1); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } // Add Authority no ttl AuthorityGTS a2 = getAuthority("GTS", 1); a2.setTimeToLive(null); try { am.addAuthority(a2); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } // Add Authority no service identity AuthorityGTS a3 = getAuthority("GTS", 1); a3.setServiceIdentity(null); try { am.addAuthority(a3); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } a3.setServiceIdentity(""); try { am.addAuthority(a3); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } a3.setServiceIdentity(" "); try { am.addAuthority(a3); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } // Invalid Priority AuthorityGTS a4 = getAuthority("GTS", 1); a4.setPriority(2); try { am.addAuthority(a4); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } // Adding Self AuthorityGTS a5 = getAuthority(GTS_URI, 1); a5.setPriority(2); try { am.addAuthority(a5); fail("Should not be able to update authority!!!"); } catch (IllegalAuthorityFault f) { } } catch (Exception e) { FaultUtil.printFault(e); assertTrue(false); } finally { try { am.clearDatabase(); } catch (Exception e) { e.printStackTrace(); } } }