@Test public void testCreateValueString() throws Exception { Value v = syncCtx.createValue("s"); assertNotNull(v); assertEquals(PropertyType.STRING, v.getType()); assertEquals("s", v.getString()); v = syncCtx.createValue(new char[] {'s'}); assertNotNull(v); assertEquals(PropertyType.STRING, v.getType()); assertEquals("s", v.getString()); Object o = new TestIdentityProvider.ForeignExternalUser(); v = syncCtx.createValue(o); assertNotNull(v); assertEquals(PropertyType.STRING, v.getType()); assertEquals(o.toString(), v.getString()); }
@Test public void testIsSameIDPExternalIdentityRef() throws Exception { assertFalse(syncCtx.isSameIDP(new TestIdentityProvider.ForeignExternalUser().getExternalId())); assertFalse(syncCtx.isSameIDP(new TestIdentityProvider.ForeignExternalGroup().getExternalId())); assertTrue(syncCtx.isSameIDP(new TestIdentityProvider.TestIdentity().getExternalId())); assertTrue(syncCtx.isSameIDP(idp.listGroups().next().getExternalId())); assertTrue(syncCtx.isSameIDP(idp.listUsers().next().getExternalId())); }
@Test public void testSyncForeignExternalUser() throws Exception { ExternalIdentity foreign = new TestIdentityProvider.ForeignExternalUser(); SyncResult res = syncCtx.sync(foreign); assertNotNull(res); assertSame(SyncResult.Status.FOREIGN, res.getStatus()); // expect {@code SyncedIdentity} in accordance with {@code sync(String userId)}, // where the authorizable is found to be linked to a different IDP. SyncedIdentity si = res.getIdentity(); assertNotNull(si); assertEquals(foreign.getId(), si.getId()); ExternalIdentityRef ref = si.getExternalIdRef(); assertNotNull(ref); assertEquals(foreign.getExternalId(), ref); assertFalse(si.isGroup()); assertEquals(-1, si.lastSynced()); assertFalse(root.hasPendingChanges()); }