[bugzilla 384447] Modifying CDO test framework to properly close the repository at tearDown and add a new Test
diff --git a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/utils/IntentEditorOpener.java b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/utils/IntentEditorOpener.java
index d72fac3..db6a43f 100644
--- a/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/utils/IntentEditorOpener.java
+++ b/plugins/org.eclipse.mylyn.docs.intent.client.ui/src/org/eclipse/mylyn/docs/intent/client/ui/utils/IntentEditorOpener.java
@@ -57,16 +57,17 @@
* @param readOnlyMode
* indicates if the editor should be opened in readOnly mode.
*/
- public static void openIntentEditor(final Repository repository, boolean readOnlyMode) {
+ public static IntentEditor openIntentEditor(final Repository repository, boolean readOnlyMode) {
try {
final RepositoryAdapter repositoryAdapter = repository.createRepositoryAdapter();
openContext(repositoryAdapter, readOnlyMode);
IntentDocument elementToOpen = new IntentDocumentQuery(repositoryAdapter)
.getOrCreateIntentDocument();
- openIntentEditor(repositoryAdapter, elementToOpen, false, elementToOpen, false);
+ return openIntentEditor(repositoryAdapter, elementToOpen, false, elementToOpen, false);
} catch (PartInitException e) {
IntentUiLogger.logError(e);
+ return null;
}
}
diff --git a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/CDOIntegrationTest.java b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/CDOIntegrationTest.java
index 0a6d4c3..ab96d90 100644
--- a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/CDOIntegrationTest.java
+++ b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/CDOIntegrationTest.java
@@ -10,7 +10,10 @@
*******************************************************************************/
package org.eclipse.mylyn.docs.intent.client.ui.test.unit.cdo;
+import org.eclipse.mylyn.docs.intent.client.ui.editor.IntentEditor;
+import org.eclipse.mylyn.docs.intent.client.ui.editor.IntentEditorDocument;
import org.eclipse.mylyn.docs.intent.client.ui.test.unit.cdo.util.AbstractIntentCDOTest;
+import org.eclipse.mylyn.docs.intent.client.ui.utils.IntentEditorOpener;
import org.eclipse.mylyn.docs.intent.collab.common.location.IntentLocations;
import org.eclipse.mylyn.docs.intent.collab.common.repository.IntentRepositoryManager;
import org.eclipse.mylyn.docs.intent.collab.handlers.adapters.IntentCommand;
@@ -80,43 +83,44 @@
*
* @throws Exception
*/
- // public void testRemoteChangesIntegrationInsideEditor() throws Exception {
- // Local user opens an editor on an Intent document
- // setUpIntentProject("myIntentProject", INTENT_ABSTRACT_RESOURCE_DOCUMENT_PATH, false);
- // waitForAllOperationsInUIThread();
- // IntentEditor editor = openIntentEditor(getIntentDocument());
- // waitForAllOperationsInUIThread();
- // String initialContent = ((IntentEditorDocument)editor.getDocumentProvider().getDocument(
- // editor.getEditorInput())).get();
+ public void testRemoteChangesIntegrationInsideEditor() throws Exception {
+ // Local user opens an editor on an Intent document
+ setUpIntentProject("myIntentProject", INTENT_ABSTRACT_RESOURCE_DOCUMENT_PATH, false);
+ IntentEditor editor = IntentEditorOpener.openIntentEditor(
+ IntentRepositoryManager.INSTANCE.getRepository(getIntentRepositoryIdentifier()), false);
+ waitForAllOperationsInUIThread();
+ String initialContent = ((IntentEditorDocument)editor.getDocumentProvider().getDocument(
+ editor.getEditorInput())).get();
- // Remote user adds an untitle chapter
- // final RepositoryAdapter remoteUser = IntentRepositoryManager.INSTANCE.getRepository(
- // "cdo:/myIntentProject").createRepositoryAdapter();
- // remoteUser.openSaveContext();
- // remoteUser.execute(new IntentCommand() {
- //
- // public void execute() {
- // IntentDocument remoteIntentDocument;
- // try {
- // remoteIntentDocument = (IntentDocument)remoteUser
- // .getOrCreateResource(IntentLocations.INTENT_INDEX).getContents().iterator()
- // .next();
- // remoteIntentDocument.getChapters().add(
- // IntentDocumentFactory.eINSTANCE.createIntentChapter());
- // } catch (ReadOnlyException e) {
- // fail(e.getMessage());
- // }
- // }
- // });
- // remoteUser.save();
- // remoteUser.closeContext();
- // waitForAllOperationsInUIThread();
+ // Remote user adds an untitled chapter
+ final RepositoryAdapter remoteUser = IntentRepositoryManager.INSTANCE.getRepository(
+ getIntentRepositoryIdentifier()).createRepositoryAdapter();
+ remoteUser.openSaveContext();
+ remoteUser.execute(new IntentCommand() {
- // Local user should see the new chapter
- // assertNotSame(initialContent,
- // ((IntentEditorDocument)editor.getDocumentProvider().getDocument(editor.getEditorInput()))
- // .get());
- //
- // editor.close(false);
- // }
+ public void execute() {
+ IntentDocument remoteIntentDocument;
+ try {
+ remoteIntentDocument = (IntentDocument)remoteUser
+ .getOrCreateResource(IntentLocations.INTENT_INDEX).getContents().iterator()
+ .next();
+ remoteIntentDocument.getChapters().add(
+ IntentDocumentFactory.eINSTANCE.createIntentChapter());
+ } catch (ReadOnlyException e) {
+ fail(e.getMessage());
+ }
+ }
+ });
+ remoteUser.save();
+ remoteUser.closeContext();
+ waitForAllOperationsInUIThread();
+
+ // Local user should see the new chapter
+ assertNotSame(initialContent,
+ ((IntentEditorDocument)editor.getDocumentProvider().getDocument(editor.getEditorInput()))
+ .get());
+ // Local user's editor should not be dirty
+ assertFalse("Editor should not be dirty after remote changes integration", editor.isDirty());
+ editor.close(false);
+ }
}
diff --git a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/util/AbstractIntentCDOTest.java b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/util/AbstractIntentCDOTest.java
index bd4a29e..f2eeaa0 100644
--- a/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/util/AbstractIntentCDOTest.java
+++ b/tests/org.eclipse.mylyn.docs.intent.client.ui.test/src/org/eclipse/mylyn/docs/intent/client/ui/test/unit/cdo/util/AbstractIntentCDOTest.java
@@ -50,6 +50,11 @@
protected void tearDown() throws Exception {
super.tearDown();
+ // Delete intent repository
+ IntentRepositoryManager.INSTANCE.getRepository(getIntentRepositoryIdentifier()).closeSession();
+ IntentRepositoryManager.INSTANCE.deleteRepository(getIntentRepositoryIdentifier());
+ waitForAllOperationsInUIThread();
+
// Stopping the CDOServer
IntentCDORepository.stop();
}
@@ -112,4 +117,5 @@
protected void additionalSetUpOperations() {
}
+
}