public void TestSyncDelta() { ConnectorObjectBuilder bld = new ConnectorObjectBuilder(); bld.SetUid("foo"); bld.SetName("name"); SyncDeltaBuilder builder = new SyncDeltaBuilder(); builder.PreviousUid = (new Uid("mypreviousuid")); builder.Uid = (new Uid("myuid")); builder.DeltaType = (SyncDeltaType.CREATE_OR_UPDATE); builder.Token = (new SyncToken("mytoken")); builder.Object = (bld.Build()); SyncDelta v1 = builder.Build(); SyncDelta v2 = (SyncDelta)CloneObject(v1); Assert.AreEqual(new Uid("mypreviousuid"), v2.PreviousUid); Assert.AreEqual(new Uid("foo"), v2.Uid); Assert.AreEqual(new SyncToken("mytoken"), v2.Token); Assert.AreEqual(SyncDeltaType.CREATE_OR_UPDATE, v2.DeltaType); Assert.AreEqual(v1, v2); builder = new SyncDeltaBuilder(); builder.DeltaType = SyncDeltaType.DELETE; builder.Token = new SyncToken("mytoken"); builder.ObjectClass = ObjectClass.ACCOUNT; builder.Uid = new Uid("foo"); v1 = builder.Build(); v2 = (SyncDelta)CloneObject(v1); Assert.AreEqual(ObjectClass.ACCOUNT, v2.ObjectClass); Assert.AreEqual(new Uid("foo"), v2.Uid); Assert.AreEqual(new SyncToken("mytoken"), v2.Token); Assert.AreEqual(SyncDeltaType.DELETE, v2.DeltaType); Assert.AreEqual(v1, v2); }
public void Sync(ObjectClass objClass, SyncToken token, SyncResultsHandler handler, OperationOptions options) { int remaining = _config.numResults; for (int i = 0; i < _config.numResults; i++) { ConnectorObjectBuilder obuilder = new ConnectorObjectBuilder(); obuilder.SetUid(i.ToString()); obuilder.SetName(i.ToString()); obuilder.ObjectClass = (objClass); SyncDeltaBuilder builder = new SyncDeltaBuilder(); builder.Object = (obuilder.Build()); builder.DeltaType = (SyncDeltaType.CREATE_OR_UPDATE); builder.Token = (new SyncToken("mytoken")); SyncDelta rv = builder.Build(); if (handler.Handle(rv)) { remaining--; } else { break;; } } if (handler is SyncTokenResultsHandler) { ((SyncTokenResultsHandler)handler).HandleResult(new SyncToken(remaining)); } }
public void TestSyncGroup() { var result = new List <SyncDelta>(); GetFacade().Sync(ObjectClass.GROUP, new SyncToken(0), new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(3, result.Count); SyncDelta sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.CREATE_OR_UPDATE, sdelta.DeltaType); Assert.AreEqual(4, sdelta.Object.GetAttributes().Count); }
public void Sync(ObjectClass objClass, SyncToken token, SyncResultsHandler handler, OperationOptions options) { for (int i = 0; i < _config.numResults; i++) { ConnectorObjectBuilder obuilder = new ConnectorObjectBuilder(); obuilder.SetUid(i.ToString()); obuilder.SetName(i.ToString()); obuilder.ObjectClass = (objClass); SyncDeltaBuilder builder = new SyncDeltaBuilder(); builder.Object = (obuilder.Build()); builder.DeltaType = (SyncDeltaType.CREATE_OR_UPDATE); builder.Token = (new SyncToken("mytoken")); SyncDelta rv = builder.Build(); if (!handler(rv)) { break; } } }
public void TestSyncDelta() { ConnectorObjectBuilder objbuilder = new ConnectorObjectBuilder(); objbuilder.SetName("myname"); objbuilder.SetUid("myuid"); objbuilder.AddAttribute(CreateTestAttribute()); ConnectorObject obj = objbuilder.Build(); SyncDeltaBuilder builder = new SyncDeltaBuilder(); builder.DeltaType = (SyncDeltaType.DELETE); builder.Token = (new SyncToken("mytoken")); builder.Uid = (new Uid("myuid")); builder.Object = (obj); SyncDelta v1 = builder.Build(); SyncDelta v2 = CreateTestNormalizer().NormalizeSyncDelta(v1); builder = new SyncDeltaBuilder(); builder.DeltaType = (SyncDeltaType.DELETE); builder.Token = (new SyncToken("mytoken")); builder.Uid = (new Uid("myuid")); objbuilder = new ConnectorObjectBuilder(); objbuilder.SetName("myname"); objbuilder.SetUid("myuid"); objbuilder.AddAttribute(CreateNormalizedTestAttribute()); builder.Object = objbuilder.Build(); SyncDelta expected = builder.Build(); Assert.AreEqual(expected, v2); Assert.IsFalse(expected.Equals(v1)); }
public void TestSyncAccount(ObjectClass objectClass) { var result = new List <SyncDelta>(); SyncToken lastToken = GetFacade().Sync(objectClass, new SyncToken(0), new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(1, lastToken.Value); Assert.AreEqual(1, result.Count); SyncDelta sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.CREATE, sdelta.DeltaType); Assert.AreEqual(44, sdelta.Object.GetAttributes().Count); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(2, lastToken.Value); Assert.AreEqual(1, result.Count); sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.UPDATE, sdelta.DeltaType); Assert.AreEqual(44, sdelta.Object.GetAttributes().Count); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(3, lastToken.Value); Assert.AreEqual(1, result.Count); sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.CREATE_OR_UPDATE, sdelta.DeltaType); Assert.AreEqual(44, sdelta.Object.GetAttributes().Count); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(4, lastToken.Value); Assert.AreEqual(1, result.Count); sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.UPDATE, sdelta.DeltaType); Assert.AreEqual(44, sdelta.Object.GetAttributes().Count); Assert.AreEqual("001", sdelta.PreviousUid.GetUidValue()); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(5, lastToken.Value); Assert.AreEqual(1, result.Count); sdelta = result[0]; result.RemoveAt(0); Assert.AreEqual(SyncDeltaType.DELETE, sdelta.DeltaType); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(10, lastToken.Value); Assert.IsEmpty(result); lastToken = GetFacade().Sync(objectClass, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(17, lastToken.Value); Assert.AreEqual(4, result.Count); result.Clear(); lastToken = GetFacade().Sync(ObjectClass.GROUP, lastToken, new SyncResultsHandler() { Handle = delta => { result.Add(delta); return(true); } }, null); Assert.AreEqual(16, lastToken.Value); Assert.AreEqual(3, result.Count); }
public void TestSyncWithManyResults() { ConnectorInfoManager manager = GetConnectorInfoManager(); ConnectorInfo info = FindConnectorInfo(manager, "1.0.0.0", "org.identityconnectors.testconnector.TstConnector"); Assert.IsNotNull(info); APIConfiguration api = info.CreateDefaultAPIConfiguration(); ConfigurationProperties props = api.ConfigurationProperties; ConfigurationProperty property = props.GetProperty("numResults"); //1000 is several times the remote size between pauses property.Value = (1000); ConnectorFacadeFactory facf = ConnectorFacadeFactory.GetInstance(); ConnectorFacade facade = facf.NewInstance(api); SyncToken latest = facade.GetLatestSyncToken(ObjectClass.ACCOUNT); Assert.AreEqual("mylatest", latest.Value); IList <SyncDelta> results = new List <SyncDelta>(); facade.Sync(ObjectClass.ACCOUNT, null, new SyncResultsHandler() { Handle = obj => { results.Add(obj); return(true); } }, null); Assert.AreEqual(1000, results.Count); for (int i = 0; i < results.Count; i++) { SyncDelta obj = results[i]; Assert.AreEqual(i.ToString(), obj.Uid.GetUidValue()); } results.Clear(); facade.Sync(ObjectClass.ACCOUNT, null, new SyncResultsHandler() { Handle = obj => { if (results.Count < 500) { results.Add(obj); return(true); } else { return(false); } } } , null); Assert.AreEqual(500, results.Count); for (int i = 0; i < results.Count; i++) { SyncDelta obj = results[i]; Assert.AreEqual(i.ToString(), obj.Uid.GetUidValue()); } }
/// <summary> /// Process/handle the SyncDelta result /// </summary> /// <param name="result"></param> /// <returns></returns> public Object Process(SyncDelta result) { return(_handler.Handle(result)); }
public bool Handle(SyncDelta obj) { return(_target.Handle(obj)); }