diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java index fa16628df9..6f40b1d96d 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/FailoverTest.java @@ -295,4 +295,41 @@ public class FailoverTest extends AbstractSyncingTest session.close(); } + + public void testSwitchMasterAndCommit() throws Exception + { + CDOSession session = openSession(getRepository().getName() + "_master"); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource("/my/resource"); + + Company company = getModel1Factory().createCompany(); + company.setName("Test"); + + resource.getContents().add(company); + + for (int i = 0; i < 10; i++) + { + company.getCategories().add(getModel1Factory().createCategory()); + transaction.commit(); + } + + startBackupTransport(); + getRepository().setType(CDOCommonRepository.Type.MASTER); + getRepository(getRepository().getName() + "_master").setType(CDOCommonRepository.Type.BACKUP); + + session.close(); + session = openSession(); + transaction = session.openTransaction(); + + resource = transaction.getResource("/my/resource"); + company = (Company)resource.getContents().get(0); + + for (int i = 0; i < 10; i++) + { + company.setName("AfterFailover-" + i); + transaction.commit(); + } + + session.close(); + } } |