188N/A * The contents of this file are subject to the terms of the 188N/A * Common Development and Distribution License, Version 1.0 only 188N/A * (the "License"). You may not use this file except in compliance 188N/A * You can obtain a copy of the license at 188N/A * See the License for the specific language governing permissions 188N/A * and limitations under the License. 188N/A * When distributing Covered Code, include this CDDL HEADER in each 188N/A * file and include the License file at 188N/A * add the following below this CDDL HEADER, with the fields enclosed 873N/A * by brackets "[]" replaced with your own identifying information: 188N/A * Portions Copyright [yyyy] [name of copyright owner] 5129N/A * Copyright 2006-2010 Sun Microsystems, Inc. 5529N/A * Portions Copyright 2011 ForgeRock AS 1183N/A * Test synchronization of update operations on the directory server and through 1183N/A * the replication server broker interface. 385N/A * An entry with a entryUUID 188N/A * Set up the environment for performing the tests in this Class. 385N/A * If the environment could not be set up. 3853N/A // Create necessary backend top level entry 385N/A +
"objectClass: organizationalUnit\n" 385N/A +
"entryUUID: 11111111-1111-1111-1111-111111111111\n";
1204N/A // find a free port for the replicationServer 2624N/A +
"objectClass: ds-cfg-replication-server\n" 1204N/A +
"cn: Replication Server\n" 3988N/A +
"ds-cfg-replication-db-directory: UpdateOperationTest\n" 3853N/A +
"ds-cfg-replication-server-id: 107\n";
2624N/A +
"objectClass: ds-cfg-replication-domain\n" 3324N/A +
"ds-cfg-receive-status: true\n";
188N/A +
"objectClass: top\n" +
"objectClass: person\n" 188N/A +
"objectClass: organizationalPerson\n" 188N/A +
"objectClass: inetOrgPerson\n" +
"uid: user.1\n" 188N/A +
"homePhone: 951-245-7634\n" 385N/A +
"description: This is the description for Aaccf Amar.\n" +
"st: NC\n" 385N/A +
"mobile: 027-085-0537\n" 188N/A +
"postalAddress: Aaccf Amar$17984 Thirteenth Street" 188N/A +
"$Rockford, NC 85762\n" +
"mail: user.1@example.com\n" 188N/A +
"cn: Aaccf Amar\n" +
"l: Rockford\n" +
"pager: 508-763-4246\n" 188N/A +
"street: 17984 Thirteenth Street\n" 188N/A +
"telephoneNumber: 216-564-6748\n" +
"employeeNumber: 1\n" 188N/A +
"sn: Amar\n" +
"givenName: Aaccf\n" +
"postalCode: 85762\n" 188N/A +
"userPassword: password\n" +
"initials: AA\n";
385N/A * The 2 entries defined in the following code are used for the naming 385N/A * conflict resolution test (called namingConflicts) 385N/A * They must have the same DN but different entryUUID. 385N/A +
"objectClass: top\n" +
"objectClass: person\n" 385N/A +
"objectClass: organizationalPerson\n" 385N/A +
"objectClass: inetOrgPerson\n" +
"uid: user.1\n" 385N/A +
"homePhone: 951-245-7634\n" 385N/A +
"description: This is the description for Aaccf Amar.\n" +
"st: NC\n" 385N/A +
"mobile: 027-085-0537\n" 385N/A +
"postalAddress: Aaccf Amar$17984 Thirteenth Street" 385N/A +
"$Rockford, NC 85762\n" +
"mail: user.1@example.com\n" 385N/A +
"cn: Aaccf Amar\n" +
"l: Rockford\n" +
"pager: 508-763-4246\n" 385N/A +
"street: 17984 Thirteenth Street\n" 385N/A +
"telephoneNumber: 216-564-6748\n" +
"employeeNumber: 1\n" 385N/A +
"sn: Amar\n" +
"givenName: Aaccf\n" +
"postalCode: 85762\n" 385N/A +
"userPassword: password\n" +
"initials: AA\n" 385N/A +
"objectClass: top\n" +
"objectClass: person\n" 385N/A +
"objectClass: organizationalPerson\n" 385N/A +
"objectClass: inetOrgPerson\n" +
"uid: user.1\n" 385N/A +
"homePhone: 951-245-7634\n" 385N/A +
"description: This is the description for Aaccf Amar.\n" +
"st: NC\n" 385N/A +
"mobile: 027-085-0537\n" 385N/A +
"postalAddress: Aaccf Amar$17984 Thirteenth Street" 385N/A +
"$Rockford, NC 85762\n" +
"mail: user.1@example.com\n" 385N/A +
"cn: Aaccf Amar\n" +
"l: Rockford\n" +
"pager: 508-763-4246\n" 385N/A +
"street: 17984 Thirteenth Street\n" 385N/A +
"telephoneNumber: 216-564-6748\n" +
"employeeNumber: 1\n" 385N/A +
"sn: Amar\n" +
"givenName: Aaccf\n" +
"postalCode: 85762\n" 385N/A +
"userPassword: password\n" +
"initials: AA\n" 3324N/A +
"objectClass: top\n" +
"objectClass: person\n" 3324N/A +
"objectClass: organizationalPerson\n" 3324N/A +
"objectClass: inetOrgPerson\n" +
"uid: user.1\n" 3324N/A +
"homePhone: 951-245-7634\n" 3324N/A +
"description: This is the description for Aaccf Amar.\n" +
"st: NC\n" 3324N/A +
"postalAddress: Aaccf Amar$17984 Thirteenth Street" 3324N/A +
"$Rockford, NC 85762\n" +
"mail: user.3@example.com\n" 3324N/A +
"cn: Aaccf Amar\n" +
"l: Rockford\n" +
"pager: 508-763-4246\n" 3324N/A +
"street: 17984 Thirteenth Street\n" 3324N/A +
"telephoneNumber: 216-564-6748\n" +
"employeeNumber: 1\n" 3324N/A +
"sn: Amar\n" +
"givenName: Aaccf\n" +
"postalCode: 85762\n" 3324N/A +
"userPassword: password\n" +
"initials: AA\n" 3853N/A * Add an entry in the database 3853N/A * Delete an entry in the database 707N/A * Tests whether the synchronization provider receive status can be disabled 2089N/A "Starting synchronization test : toggleReceiveStatus"));
4890N/A // Clean replication server database from previous run 1191N/A * Open a session to the replicationServer using the broker API. 707N/A * This must use a different serverId to that of the directory server. 5529N/A * Create a Change number generator to generate new changenumbers 5529N/A * when we need to send operation messages to the replicationServer. 5529N/A // Disable the directory server receive status. 5529N/A // Create and publish an update message to add an entry. 5529N/A // Check that the entry has not been created in the directory server. 5529N/A "The replication message was replayed while the server " 5529N/A +
"receive status was disabled");
5529N/A // Enable the directory server receive status. 5529N/A // Create and publish another update message to add an entry. 5529N/A // Check that the entry has been created in the directory server. 5529N/A "The replication message was not replayed after the server " 5529N/A +
"receive status was enabled");
5529N/A // Delete the entries to clean the database. 5529N/A // Check that the delete operation has been applied. 5529N/A "The DELETE replication message was not replayed");
759N/A * Tests whether the synchronization provider fails over when it loses 1183N/A * the heartbeat from the replication server. 2089N/A "Starting replication test : lostHeartbeatFailover"));
4890N/A // Clean replication server database from previous run 1191N/A * Open a session to the replicationServer using the broker API. 759N/A * This must use a different serverId to that of the directory server. 5529N/A * Create a Change number generator to generate new changenumbers 5529N/A * when we need to send operation messages to the replicationServer. 5529N/A // Create and publish an update message to add an entry. 5529N/A // Check that the entry has been created in the directory server. 5529N/A "The ADD replication message was not replayed");
5529N/A // Send a first modify operation message. 5529N/A // Check that the modify has been replayed. 5529N/A "telephonenumber",
"01 02 45",
10000,
true);
5529N/A fail(
"The first modification was not replayed.");
5529N/A // Simulate loss of heartbeats. 5529N/A // Send a second modify operation message. 5529N/A // Check that the modify has been replayed. 5529N/A "description",
"Description was changed",
5529N/A fail(
"The second modification was not replayed.");
5529N/A // Delete the entries to clean the database. 5529N/A // Check that the delete operation has been applied. 5529N/A "The DELETE replication message was not replayed");
1423N/A * Tests the modify conflict resolution code. 1423N/A * In this test, the local server acts both as an LDAP server and 1423N/A * a replicationServer that are inter-connected. 1423N/A * The test creates an other session to the replicationServer using 1423N/A * directly the ReplicationBroker API. 1423N/A * It then uses this session to simulate conflicts and therefore 1423N/A * test the modify conflict resolution code. 4890N/A // Clean replication server database from previous run 1423N/A * Open a session to the replicationServer using the broker API. 1423N/A * This must use a different serverId to that of the directory server. 5529N/A // Add the first test entry. 5529N/A "objectClass: organizationalPerson",
5529N/A "objectClass: inetOrgPerson",
5529N/A // Read the entry back to get its UUID. 5529N/A // A change on a first server. 5529N/A // A change on a second server. 5529N/A // Simulate the ordering t2:replace:B followed by t1:add:A that 5529N/A // Replay a replace of a value B at time t2 on a second server. 5529N/A // Replay an add of a value A at time t1 on a first server. 5529N/A // Read the entry to see how the conflict was resolved. 5529N/A // the value should be the last (time t2) value added 5529N/A // Simulate the ordering t2:delete:displayname followed by 5529N/A // A change on a first server. 5529N/A // A change on a second server. 5529N/A // Simulate the ordering t2:delete:displayname followed by t1:replace:A 5529N/A // Replay an delete of attribute displayname at time t2 on a second server. 5529N/A // Replay a replace of a value A at time t1 on a first server. 5529N/A // Read the entry to see how the conflict was resolved. 5529N/A // there should not be a value (delete at time t2) 385N/A * Tests the naming conflict resolution code. 385N/A * In this test, the local server act both as an LDAP server and 1191N/A * a replicationServer that are inter-connected. 1191N/A * The test creates an other session to the replicationServer using 1191N/A * directly the ReplicationBroker API. 3853N/A * It then uses this session to simulate conflicts and therefore 385N/A * test the naming conflict resolution code. 2089N/A "Starting replication test : namingConflicts"));
4890N/A // Clean replication server database from previous run 1191N/A * Open a session to the replicationServer using the ReplicationServer broker API. 385N/A * This must use a serverId different from the LDAP server ID 385N/A * Create a Change number generator to generate new changenumbers 1191N/A * when we need to send operations messages to the replicationServer. 385N/A * Test that the conflict resolution code is able to find entries 385N/A * that have been renamed by an other master. 442N/A * To simulate this, create an entry with a given UUID and a given DN 385N/A * then send a modify operation using another DN but the same UUID. 385N/A * Finally check that the modify operation has been applied. 385N/A // create the entry with a given DN 385N/A // Check that the entry has been created in the local DS. 1183N/A "The send ADD replication message was not applied");
385N/A // send a modify operation with the correct unique ID but another DN 385N/A // check that the modify has been applied as if the entry had been renamed. 544N/A "telephonenumber",
"01 02 45",
10000,
true);
385N/A fail(
"The modification has not been correctly replayed.");
2181N/A // check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
3988N/A * Test that modify conflict resolution is able to detect that 3853N/A * because there is a conflict between a MODIFYDN and a MODIFY, 3853N/A * when a MODIFY is replayed the attribute that is being modified is 3853N/A * now the RDN of the entry and therefore should not be deleted. 3988N/A // send a modify operation attempting to replace the RDN entry 3853N/A // check that the modify has been applied. 3853N/A "uid",
"AnotherUid",
10000,
true);
3853N/A fail(
"The modification has not been correctly replayed.");
385N/A * Test that the conflict resolution code is able to detect 3853N/A * that an entry has been renamed and that a new entry has 385N/A * been created with the same DN but another entry UUID 385N/A * To simulate this, create and entry with a given UUID and a given DN 385N/A * then send a modify operation using the same DN but another UUID. 385N/A * Finally check that the modify operation has not been applied to the 385N/A * entry with the given DN. 385N/A // create the entry with a given DN and unique ID 385N/A // Check that the entry has been created in the local DS. 1183N/A "The ADD replication message was not applied");
385N/A // send a modify operation with a wrong unique ID but the same DN 385N/A // check that the modify has not been applied 544N/A "telephonenumber",
"02 01 03 05",
10000,
false);
385N/A fail(
"The modification has been replayed while it should not.");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
385N/A * Test that the conflict resolution code is able to find entries 385N/A * that have been renamed by an other master. 385N/A * To simulate this, send a delete operation using another DN but 385N/A * the same UUID has the entry that has been used in the tests above. 385N/A * Finally check that the delete operation has been applied. 392N/A // send a delete operation with a wrong dn but the unique ID of the entry 385N/A // check that the delete operation has been applied 1183N/A "The DELETE replication message was not replayed");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
385N/A * Test that two adds with the same DN but a different unique ID result 385N/A * cause a conflict and result in the second entry to be renamed. 385N/A // create an entry with a given DN and unique ID 385N/A // Check that the entry has been created in the local DS. 1183N/A "The ADD replication message was not applied");
385N/A // create an entry with the same DN and another unique ID 385N/A // Check that the entry has been renamed and created in the local DS. 1183N/A "The ADD replication message was not applied");
2181N/A // Check that there was an administrative alert generated 2181N/A // because the conflict has not been automatically resolved. 2181N/A "An alert was not generated when resolving conflicts");
385N/A // delete the entries to clean the database. 385N/A // check that the delete operation has been applied 1183N/A "The DELETE replication message was not replayed");
385N/A * Check that and added entry is correctly added below it's 385N/A * parent entry when this parent entry has been renamed. 385N/A * Simulate this by trying to add an entry below a DN that does not 385N/A * exist but with a parent ID that exist. 3853N/A // Check that the entry has been created in the local DS. 1183N/A "The ADD replication message was not applied");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
385N/A * Check that when replaying delete the naming conflict code 385N/A * verify that the unique ID op the replayed operation is 385N/A * the same as the unique ID of the entry with the given DN 385N/A * To achieve this send a delete operation with a correct DN 385N/A * but a wrong unique ID. 385N/A // check that the delete operation has not been applied 1183N/A "The DELETE replication message was replayed when it should not");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
392N/A * Check that when replaying modify dn operations, the conflict 392N/A * resolution code is able to find the new DN of the parent entry 392N/A * if it has been renamed on another master. 392N/A * To simulate this try to rename an entry below an entry that does 392N/A * not exist but giving the unique ID of an existing entry. 392N/A // check that the operation has been correctly relayed 392N/A "The modify dn was not or badly replayed");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
398N/A * same test but by giving a bad entry DN 392N/A // check that the operation has been correctly relayed 392N/A "The modify dn was not or badly replayed");
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
398N/A * Check that conflicting entries are renamed when a 392N/A * modifyDN is done with the same DN as an entry added on another server. 392N/A // check that the second entry has been added 392N/A // check that the add operation has been applied 392N/A // try to rename the first entry 392N/A // check that the second entry has been renamed 2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was not generated when resolving conflicts");
392N/A // delete the entries to clean the database 385N/A // check that the delete operation has been applied 1183N/A "The DELETE replication message was not replayed");
5163N/A // check that the delete operation has been applied 5163N/A "The DELETE replication message was not replayed");
702N/A * When replaying add operations it is possible that the parent entry has 702N/A * been renamed before and that another entry have taken the former dn of 1183N/A * the parent entry. In such case the replication replay code should 702N/A * detect that the parent has been renamed and should add the entry below 707N/A * the new dn of the parent (thus changing the original dn with which the 702N/A * entry had been created) 702N/A * - create parent entry 1 with baseDn1 702N/A * - create Add Msg for user1 with parent entry 1 UUID 702N/A * - MODDN parent entry 1 to baseDn2 in the LDAP server 702N/A * - add new parent entry 2 with baseDn1 707N/A * - check that the Dn has been changed to baseDn2 in the msg received 702N/A // - create parent entry 1 with baseDn1 702N/A +
"objectClass: organizationalUnit\n" 702N/A +
"entryUUID: 55555555-5555-5555-5555-555555555555\n";
702N/A // - create Add Msg for user1 with parent entry 1 UUID 702N/A // - MODDN parent entry 1 to baseDn2 in the LDAP server 702N/A // - add new parent entry 2 with baseDn1 775N/A +
"objectClass: organizationalUnit\n" 775N/A +
"entryUUID: 66666666-6666-6666-6666-666666666666\n";
3853N/A // - check that the DN has been changed to baseDn2 1183N/A "The ADD replication message was applied under ou=baseDn1,"+
baseDn);
1183N/A "The ADD replication message was NOT applied under ou=baseDn2,"+
baseDn);
2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
1523N/A // Check that when a delete is conflicting with Add of some entries 1523N/A // below the deleted entries, the child entry that have been added 1523N/A // before the deleted is replayed gets renamed correctly. 3853N/A // add domain1 entry with 2 children : domain2 and domain3 1523N/A // check that the domain1 has correctly been deleted 1523N/A "The DELETE replication message was not replayed");
1523N/A // check that domain2 and domain3 have been renamed 1523N/A "The conflicting entries were not created");
1523N/A "The conflicting entries were not created");
1523N/A // check that the 2 conflicting entries have been correctly marked 1523N/A // check that unresolved conflict count has been incremented 2181N/A // Check that an administrative alert was generated 2181N/A // because the conflict has not been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
1523N/A // delete the resulting entries for the next test 4072N/A // Check that when a delete is replayed over an entry which has child 4072N/A // those child are also deleted 4072N/A // add domain1 entry with 2 children : domain2 and domain3 4072N/A // check that the domain1 has correctly been deleted 4072N/A "The DELETE replication message was not replayed");
5129N/A // check that domain2 and domain3 have been renamed as conflicting 5129N/A // check that unresolved conflict count has been incremented 1523N/A // Check that when an entry is added on one master below an entry 1523N/A // that is currently deleted on another master, the replay of the 1523N/A // add on the second master cause the added entry to be renamed 1523N/A // check that conflict entry was created 1523N/A "The conflicting entries were not created");
1523N/A // check that the entry have been correctly marked as conflicting. 1523N/A // check that unresolved conflict count has been incremented 1730N/A // Check that when an entry is deleted on a first master and 1730N/A // renamed on a second master and the rename is replayed last 1730N/A // this is correctly detected as a resolved conflict. 1730N/A // To simulate this simply try a modifyDN on a non existent uid. 1730N/A // unfortunately it is difficult to check that the operation 2606N/A // The only thing we can check is that resolved naming conflict counter 1730N/A // has correctly been incremented. 2606N/A // it is possible that the update has not yet been applied 2606N/A // wait a short time and try again. 2606N/A // if the monitor counter did not get incremented after 200sec 2606N/A // then something got wrong. 2181N/A // Check that there was no administrative alert generated 2181N/A // because the conflict has been automatically resolved. 2181N/A "An alert was incorrectly generated when resolving conflicts");
3988N/A * Check that a conflict is detected when an entry is 2903N/A * moved below an entry that does not exist. 2903N/A "33333333-3333-3333-3333-333333333333",
2903N/A "12343333-3533-3633-3333-333333833333" ,
false,
2903N/A // it is possible that the update has not yet been applied 2903N/A // wait a short time and try again. 2903N/A // if the monitor counter did not get incremented after 200sec 2903N/A // then something got wrong. 2903N/A // check that the entry have been correctly marked as conflicting. 1523N/A * Check that the given entry does contain the attribute that mark the 1523N/A * @param entry The entry that needs to be asserted. 1523N/A * @return A boolean indicating if the entry is correctly marked. 1191N/A * Tests done using directly the ReplicationBroker interface. 4890N/A // Cleanup from previous run 535N/A * Test that operations done on this server are sent to the 1191N/A * replicationServer and forwarded to our replicationServer broker session. 535N/A // Create an Entry (add operation) 385N/A "The Add Entry operation failed");
904N/A // Check if the client has received the msg 4890N/A "The received replication message is not an ADD msg : " +
msg);
4890N/A "The received replication message is not an ADD msg : " +
addMsg);
4890N/A "The received ADD replication message is not for the excepted DN : " +
addMsg);
535N/A // See if the client has received the msg 4890N/A "The received replication message is not a MODIFY msg : " +
msg);
4890N/A "The received MODIFY replication message is not for the excepted DN : " +
modMsg);
535N/A "The MOD_DN operation didn't create the new person entry");
535N/A "The MOD_DN operation didn't delete the old person entry");
535N/A // See if the client has received the msg 4890N/A "The received replication message is not a MODIFY DN msg : " +
msg);
4890N/A "The received MODIFY_DN message is not for the excepted DN : " +
moddnMsg);
535N/A "Unable to delete the new person Entry");
535N/A // See if the client has received the msg 4890N/A "The received replication message is not a MODIFY DN msg : " +
msg);
4890N/A "The received DELETE message is not for the excepted DN : " +
delMsg);
1191N/A * Now check that when we send message to the ReplicationServer 535N/A * and that they are received and correctly replayed by the server. 535N/A * Start by testing the Add message reception 535N/A * Check that the entry has been created in the local DS. 535N/A * Test the reception of Modify Msg 544N/A "telephonenumber",
"01 02 45",
10000,
true);
535N/A fail(
"The modification has not been correctly replayed.");
1737N/A // Test that replication is able to add attribute that do 1737N/A // not exist in the schema. 1737N/A fail(
"The modification has not been correctly replayed.");
535N/A * Test the Reception of Modify Dn Msg 1183N/A "The modify DN replication message was not applied");
535N/A * Test the Reception of Delete Msg 1183N/A "The DELETE replication message was not replayed");
437N/A * [Issue 635] NullPointerException when trying to access non existing entry. 2089N/A "Starting replication test : deleteNoSuchObject"));
4890N/A // Clean replication server database from previous run 442N/A * [Issue 798] break infinite loop when problems with naming resolution 2089N/A "Starting replication test : infiniteReplayLoop"));
4890N/A // Clean replication server database from previous run 442N/A // Create a test entry. 442N/A +
"objectClass: top\n" +
"objectClass: person\n" 442N/A +
"objectClass: organizationalPerson\n" 442N/A +
"objectClass: inetOrgPerson\n" +
"uid: user.2\n" 442N/A +
"homePhone: 951-245-7634\n" 442N/A +
"description: This is the description for Aaccf Amar.\n" 442N/A +
"mobile: 027-085-0537\n" 442N/A +
"postalAddress: Aaccf Amar$17984 Thirteenth Street" 442N/A +
"$Rockford, NC 85762\n" +
"mail: user.1@example.com\n" 442N/A +
"cn: Aaccf Amar\n" +
"l: Rockford\n" +
"pager: 508-763-4246\n" 442N/A +
"street: 17984 Thirteenth Street\n" 442N/A +
"telephoneNumber: 216-564-6748\n" +
"employeeNumber: 1\n" 442N/A +
"sn: Amar\n" +
"givenName: Aaccf\n" +
"postalCode: 85762\n" 442N/A +
"userPassword: password\n" +
"initials: AA\n";
442N/A // Get the UUID of the test entry. 442N/A // Register a short circuit that will fake a no-such-object result code 1183N/A // on a delete. This will cause a replication replay loop. 442N/A // Publish a delete message for this test entry. 442N/A // Wait for the operation to be replayed. 1183N/A // If the replication replay loop was detected and broken then the 442N/A // counter will still be updated even though the replay was unsuccessful. 707N/A * Enable or disable the receive status of a synchronization provider. 707N/A * @param syncConfigDN The DN of the synchronization provider configuration 707N/A * @param enable Specifies whether the receive status should be enabled 3324N/A * Test that the ReplicationDomain (plugin inside LDAP server) adjust 3324N/A * its internal change number generator to the last change number 3324N/A * - create a domain with the current date in the CN generator 3324N/A * - make it receive an update with a CN in the future 3324N/A * - do a local operation replicated on that domain 3324N/A * - check that the update generated for that operation has a CN in the 3324N/A "Starting synchronization test : CNGeneratorAdjust"));
4890N/A // Clean replication server database from previous run 3324N/A * Open a session to the replicationServer using the broker API. 3324N/A * This must use a different serverId to that of the directory server. 5529N/A * Create a Change number generator to generate new changenumbers 5529N/A * when we need to send operation messages to the replicationServer. 5529N/A // Create and publish an update message to add an entry. 5529N/A // Check that the entry has not been created in the directory server. 5529N/A // See if the client has received the msg 5529N/A "The received replication message is not a MODIFY msg");
5529N/A "The MOD timestamp should have been adjusted to the ADD one");
5529N/A // Delete the entries to clean the database. 5529N/A // Check that the delete operation has been applied. 5529N/A "The DELETE replication message was not replayed");