@NotNull @Override public ExternalIdentityRef getExternalId() { return new ExternalIdentityRef(userId, getName()); }
@NotNull @Override public Iterable<ExternalIdentityRef> getDeclaredMembers() throws ExternalIdentityException { Set<ExternalIdentityRef> members = new HashSet<ExternalIdentityRef>(); for (Map.Entry<String, Set<String>> entry : userGroupMap.entrySet()) { if (entry.getValue().contains(name)) { members.add(new ExternalIdentityRef(entry.getKey(), getName())); } } return members; }
Iterable<ExternalIdentityRef> getDeclaredGroupRefs(String userId) { if (userId.charAt(0) == 'u') { Set<ExternalIdentityRef> groupRefs = new HashSet<>(); for (long i = 0; i < membershipSize; i++) { groupRefs.add(new ExternalIdentityRef("g"+ i, idp.getName())); } return groupRefs; } else { return ImmutableSet.of(); } } }
public TestIdentity(@NotNull String userId) { this.userId = userId; this.principalName = "p_"+userId; id = new ExternalIdentityRef(userId, idp.getName()); }
private ErrorSyncResult(@NotNull String userId, @Nullable String idpName, @NotNull Exception error) { ExternalIdentityRef ref = (idpName != null) ? new ExternalIdentityRef(userId, idpName) : null; this.syncedIdentity = new DefaultSyncedIdentity(userId, ref, false, -1); this.error = error; }
@NotNull @Override public ExternalIdentityRef getExternalId() { return new ExternalIdentityRef(uid, getName()); }
protected TestIdentity withGroups(String ... grps) { for (String grp: grps) { groups.add(new ExternalIdentityRef(grp, id.getProviderName())); } return this; } }
@Test public void testGetIdentity() { List<DefaultSyncedIdentity> l = new ArrayList<>(); l.add(new DefaultSyncedIdentity("id", null, true, -1)); l.add(new DefaultSyncedIdentity("id", new ExternalIdentityRef("id", "idp"), false, 500)); for (DefaultSyncedIdentity si : l) { assertEquals(si, new DefaultSyncResultImpl(si, SyncResult.Status.NOP).getIdentity()); } }
@Test public void testGetIdentityForeingRef() throws Exception { ExternalIdentityRef ref = new ExternalIdentityRef("id", "anotherName"); assertNull(provider.getIdentity(ref)); }
@Test public void testEquals() { assertEquals(refNullProvider, refNullProvider); assertEquals(refNullProvider, new ExternalIdentityRef(USERID, refNullProvider.getProviderName())); assertEquals(refNullProvider, new ExternalIdentityRef(USERID, refEmptyProvider.getProviderName())); assertEquals(refNullProvider, refEmptyProvider); assertEquals(refEmptyProvider, refNullProvider); assertEquals(ref, ref); assertEquals(ref, new ExternalIdentityRef(ref.getId(), ref.getProviderName())); assertEquals(ref, new ExternalIdentityRef(USERID, PROVIDER_NAME)); }
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-4346">OAK-4346</a> */ @Test public void testSyncExternalLocal() { ExternalIdentityRef ref = new ExternalIdentityRef(UserConstants.DEFAULT_ANONYMOUS_ID, null); String[] result = syncMBean.syncExternalUsers(new String[]{ref.getString()}); assertResultMessages(result, UserConstants.DEFAULT_ANONYMOUS_ID, "for"); }
@Test public void testSyncExternalUserException() { ExternalIdentityRef ref = new ExternalIdentityRef(TestIdentityProvider.ID_EXCEPTION, idp.getName()); String[] result = syncMBean.syncExternalUsers(new String[] {ref.getString()}); assertResultMessages(result, TestIdentityProvider.ID_EXCEPTION, "ERR"); }
@Test public void testSyncExternalNonExisting() { ExternalIdentityRef ref = new ExternalIdentityRef("nonExisting", idp.getName()); String[] result = syncMBean.syncExternalUsers(new String[]{ref.getString()}); assertResultMessages(result, "", "nsi"); }
@Test public void testSyncExternalUserThrowingHandler() { ExternalIdentityRef ref = new ExternalIdentityRef(TestIdentityProvider.ID_TEST_USER, idp.getName()); String[] result = createThrowingSyncMBean(false).syncExternalUsers(new String[]{ref.getString()}); assertResultMessages(result, TestIdentityProvider.ID_TEST_USER, "ERR"); }
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-4346">OAK-4346</a> */ @Test public void testSyncExternalForeign() { ExternalIdentityRef ref = new ExternalIdentityRef(TestIdentityProvider.ID_TEST_USER, "anotherIDP"); String[] result = syncMBean.syncExternalUsers(new String[]{ref.getString()}); assertResultMessages(result, TestIdentityProvider.ID_TEST_USER, "for"); result = syncMBean.syncExternalUsers(new String[] {ref.getString()}); assertResultMessages(result, TestIdentityProvider.ID_TEST_USER, "for"); }
@Test public void testSyncNonExistingExternalUserSaveError() throws Exception { Root r = preventRootCommit(delegatee);; String[] result = delegatee.syncExternalUsers(new String[] {new ExternalIdentityRef("nonExisting", idp.getName()).getString()}); assertResultMessages(result, "", "nsi"); assertFalse(r.hasPendingChanges()); }
@Test public void testSyncForeignExternalUserSaveError() throws Exception { Root r = preventRootCommit(delegatee);; String[] result = delegatee.syncExternalUsers(new String[] {new ExternalIdentityRef(TestIdentityProvider.ID_TEST_USER, foreignIDP.getName()).getString()}); assertResultMessages(result, TestIdentityProvider.ID_TEST_USER, "for"); assertFalse(r.hasPendingChanges()); }
@Test public void testSyncThrowingExternalUserSaveError() throws Exception { Root r = preventRootCommit(delegatee);; String[] result = delegatee.syncExternalUsers(new String[] {new ExternalIdentityRef(TestIdentityProvider.ID_EXCEPTION, idp.getName()).getString()}); assertResultMessages(result, TestIdentityProvider.ID_EXCEPTION, "ERR"); assertFalse(r.hasPendingChanges()); }
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-4360">OAK-4360</a> */ @Test public void testSyncUserException() throws Exception { User u = getUserManager().createUser(TestIdentityProvider.ID_EXCEPTION, null); u.setProperty(DefaultSyncContext.REP_EXTERNAL_ID, getValueFactory().createValue(new ExternalIdentityRef(TestIdentityProvider.ID_EXCEPTION, idp.getName()).getString())); root.commit(); String[] result = syncMBean.syncUsers(new String[]{TestIdentityProvider.ID_EXCEPTION}, false); assertResultMessages(result, TestIdentityProvider.ID_EXCEPTION, "ERR"); }
@Test public void testSyncAllUsersException() throws Exception { User u = getUserManager().createUser(TestIdentityProvider.ID_EXCEPTION, null); u.setProperty(DefaultSyncContext.REP_EXTERNAL_ID, getValueFactory().createValue(new ExternalIdentityRef(TestIdentityProvider.ID_EXCEPTION, idp.getName()).getString())); root.commit(); String[] result = syncMBean.syncAllUsers(false); assertResultMessages(result, TestIdentityProvider.ID_EXCEPTION, "ERR"); result = syncMBean.syncAllUsers(true); assertResultMessages(result, TestIdentityProvider.ID_EXCEPTION, "ERR"); }