Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/junit/plugins/core/org.eclipse.papyrus.sasheditor.di.tests/test/org/eclipse/papyrus/infra/core/sasheditor/contentprovider/di/internal/PageMngrImplTest.java')
-rw-r--r--tests/junit/plugins/core/org.eclipse.papyrus.sasheditor.di.tests/test/org/eclipse/papyrus/infra/core/sasheditor/contentprovider/di/internal/PageMngrImplTest.java366
1 files changed, 366 insertions, 0 deletions
diff --git a/tests/junit/plugins/core/org.eclipse.papyrus.sasheditor.di.tests/test/org/eclipse/papyrus/infra/core/sasheditor/contentprovider/di/internal/PageMngrImplTest.java b/tests/junit/plugins/core/org.eclipse.papyrus.sasheditor.di.tests/test/org/eclipse/papyrus/infra/core/sasheditor/contentprovider/di/internal/PageMngrImplTest.java
new file mode 100644
index 00000000000..d5102ee7707
--- /dev/null
+++ b/tests/junit/plugins/core/org.eclipse.papyrus.sasheditor.di.tests/test/org/eclipse/papyrus/infra/core/sasheditor/contentprovider/di/internal/PageMngrImplTest.java
@@ -0,0 +1,366 @@
+/*****************************************************************************
+ * Copyright (c) 2009 CEA LIST & LIFL
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IPageModelFactory;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.internal.ContentChangedEventProvider;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.internal.DiContentProvider;
+import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.internal.PageMngrImpl;
+import org.eclipse.papyrus.infra.core.sashwindows.di.PageRef;
+import org.eclipse.papyrus.infra.core.sashwindows.di.SashWindowsMngr;
+import org.eclipse.papyrus.infra.core.sashwindows.di.util.DiUtils;
+
+
+/**
+ * @author dumoulin
+ */
+public class PageMngrImplTest extends TestCase {
+
+ /**
+ * The {@link PageMngrImpl} under test.
+ */
+ protected PageMngrImpl pageMngr;
+
+ /**
+ * The associated {@link DiContentProvider}. Not tested, but used to check events.
+ */
+ protected DiContentProvider contentProvider;
+
+
+ /**
+ * @param name
+ */
+ public PageMngrImplTest(String name) {
+ super(name);
+ }
+
+ /**
+ * @see junit.framework.TestCase#setUp()
+ *
+ * @throws java.lang.Exception
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ SashWindowsMngr diSashModel = DiUtils.createDefaultSashWindowsMngr();
+ ContentChangedEventProvider eventProvider = new ContentChangedEventProvider(diSashModel);
+ pageMngr = new PageMngrImpl(diSashModel, eventProvider);
+
+ IPageModelFactory pageModelFactory = new FakePageModelFactory();
+ contentProvider = new DiContentProvider(diSashModel.getSashModel(), pageModelFactory, eventProvider);
+
+ }
+
+ /**
+ * @see junit.framework.TestCase#tearDown()
+ *
+ * @throws java.lang.Exception
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#addPage(org.eclipse.emf.ecore.EObject)}.
+ */
+ public void testAddPage() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.addPage(id);
+
+ // Check no fired events
+ assertEquals("One event fired", 0, changeListener.getChangeCount());
+ }
+
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#allPages()}.
+ */
+ public void testAllPages() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+ // Check if pages are in PageList
+ assertEquals("all pages found", 10, pageMngr.allPages().size());
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#closePage(org.eclipse.emf.ecore.EObject)}.
+ */
+ public void testClosePage() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+
+ // Close page
+ changeListener.reset();
+ pageMngr.closePage(identifiers.get(3));
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+
+ // Check page still in pages
+ assertEquals("all pages still in list", 10, pageMngr.allPages().size());
+
+ // Check if pages are in SashStructure
+ PageRef pageRef = contentProvider.getDiSashModel().lookupPage(identifiers.get(3));
+ assertNull("Page removed from sashStructure ", pageRef);
+
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#closeAllOpenedPages())}.
+ */
+ public void testCloseAllOpenedPages() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+
+ // Close page
+ changeListener.reset();
+ pageMngr.closeAllOpenedPages();
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+
+ // Check page still in pages
+ assertEquals("all pages still in list", 10, pageMngr.allPages().size());
+
+ // Check if pages are in SashStructure
+ for(int i = 0; i < 10; i++) {
+ PageRef pageRef = contentProvider.getDiSashModel().lookupPage(identifiers.get(i));
+ assertNull("Page " + i + " removed from sashStructure ", pageRef);
+ }
+
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#closeAllOpenedPages())}.
+ */
+ public void testCloseOtherOpenedPages() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+
+ // Close page
+ changeListener.reset();
+ pageMngr.closeOtherPages(identifiers.get(3));
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+
+ // Check page still in pages
+ assertEquals("all pages still in list", 10, pageMngr.allPages().size());
+
+ // Check if pages are in SashStructure
+ for(int i = 0; i < 10; i++) {
+ PageRef pageRef = contentProvider.getDiSashModel().lookupPage(identifiers.get(i));
+ if(i!=3) {
+ assertNull("Page " + i + " removed from sashStructure ", pageRef);
+ } else {
+ assertNotNull("Page " + i + " not removed from sashStructure ", pageRef);
+ }
+ }
+
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#openPage(org.eclipse.emf.ecore.EObject)}.
+ */
+ public void testOpenPage() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+
+ // Check if pages are in SashStructure
+ PageRef pageRef = contentProvider.getDiSashModel().lookupPage(identifiers.get(3));
+ assertNotNull("Page exist in sashStructure ", pageRef);
+ assertSame("found the right page", identifiers.get(3), pageRef.getPageIdentifier());
+
+ }
+
+ /**
+ * Test method for {@link org.eclipse.papyrus.infra.core.sasheditor.contentprovider.di.internal.PageMngrImpl#removePage(org.eclipse.emf.ecore.EObject)}.
+ */
+ public void testRemovePage() {
+ // A listener on change event.
+ ContentChangeListener changeListener = new ContentChangeListener();
+
+ // Set change listener
+ contentProvider.getContentChangedEventProvider().addListener(changeListener);
+
+ // Add identifiers
+ // Use Object as identifiers.
+ List<Object> identifiers = new ArrayList<Object>();
+ // Add 10 folders
+ for(int i = 0; i < 10; i++) {
+ // reset change count
+ changeListener.reset();
+ // Add Editor
+ Object id = new Object();
+ identifiers.add(id);
+ pageMngr.openPage(id);
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+ }
+ // Check if pages are in PageList
+ assertEquals("all pages added", 10, pageMngr.allPages().size());
+ // Check if page id is in page list
+ assertTrue("check page id is added to page list", pageMngr.allPages().contains(identifiers.get(3)));
+
+ // Close page
+ changeListener.reset();
+ pageMngr.removePage(identifiers.get(3));
+
+ // Check fired events
+ assertEquals("One event fired", 1, changeListener.getChangeCount());
+
+ // Check page still in pages
+ assertEquals("page remove from list", 9, pageMngr.allPages().size());
+
+ // Check removed from page list
+ assertFalse("check removed from page list", pageMngr.allPages().contains(identifiers.get(3)));
+
+ // Check if pages are in SashStructure
+ PageRef pageRef = contentProvider.getDiSashModel().lookupPage(identifiers.get(3));
+ assertNull("Page removed from sashStructure ", pageRef);
+ }
+
+
+
+}

Back to the top