/* * Copyright (c) 2010-2013, 2016 Eike Stepper (Berlin, Germany) and others. * 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: * Martin Fluegge - initial API and implementation */ package org.eclipse.emf.cdo.dawn.tests.ui.emf; import org.eclipse.emf.cdo.dawn.examples.acore.AClass; import org.eclipse.emf.cdo.dawn.examples.acore.ACoreRoot; import org.eclipse.emf.cdo.dawn.examples.acore.AInterface; import org.eclipse.emf.cdo.dawn.examples.acore.AcoreFactory; import org.eclipse.emf.cdo.dawn.preferences.PreferenceConstants; import org.eclipse.emf.cdo.dawn.tests.AbstractDawnEMFTest; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnAcoreTestUtil; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnEMFEditorBot; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnSWTBotEMFEditor; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnSWTBotUtil; import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil; import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.common.util.URI; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; /** * @author Martin Fluegge */ @RunWith(SWTBotJunit4ClassRunner.class) public class DawnEMFHandleEditorTest extends AbstractDawnEMFTest { @Override @Before public void setUp() throws Exception { setBot(new DawnEMFEditorBot()); DawnSWTBotUtil.initTest(getBot()); super.setUp(); } @Test public void testOpenExistingResource() throws Exception { { CDOSession session = openSession(); CDOTransaction transaction = session.openTransaction(); CDOResource resource = transaction.createResource("/default.acore"); ACoreRoot aCoreRoot = AcoreFactory.eINSTANCE.createACoreRoot(); aCoreRoot.setTitle("root"); resource.getContents().add(aCoreRoot); AClass aClass = AcoreFactory.eINSTANCE.createAClass(); aClass.setName("MyClass"); AInterface aInterface = AcoreFactory.eINSTANCE.createAInterface(); aInterface.setName("MyInterface"); aCoreRoot.getClasses().add(aClass); aCoreRoot.getInterfaces().add(aInterface); transaction.commit(); transaction.close(); session.close(); } CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(), PreferenceConstants.getServerName()); CDOConnectionUtil.instance.openSession(); DawnSWTBotEMFEditor editor = DawnAcoreTestUtil.openAcoreEMFEditor(URI.createURI("cdo://repo1/default.acore"), getBot()); assertNotNull(editor); SWTBotTree tree = editor.getSelectionPageTree(); sleep(1000); SWTBotTreeItem treeItem = tree.getTreeItem("cdo://repo1/default.acore"); treeItem.expand(); SWTBotTreeItem root = treeItem.getItems()[0]; root.expand(); SWTBotTreeItem swtBotTreeItem1 = root.getItems()[0]; assertEquals("AClass MyClass", swtBotTreeItem1.getText()); SWTBotTreeItem swtBotTreeItem2 = root.getItems()[1]; assertEquals("AInterface MyInterface", swtBotTreeItem2.getText()); editor.save(); editor.close(); } @Test public void testCreateNewElement() throws Exception { DawnSWTBotEMFEditor editor = DawnAcoreTestUtil.openNewAcoreEMFEditor("default.acore", getBot()); assertNotNull(editor); SWTBotTree tree = editor.getSelectionPageTree(); selectFolder(tree.getAllItems(), "ACore Root", false); editor.clickContextMenu(tree.widget, "AClass"); editor.save(); { CDOSession session = openSession(); CDOView view = session.openView(); CDOResource resource = view.getResource("/default.acore"); ACoreRoot aCoreRoot = (ACoreRoot)resource.getContents().get(0); assertEquals(1, aCoreRoot.getClasses().size()); assertEquals(null, aCoreRoot.getClasses().get(0).getName()); } editor.close(); } }