Author: dgeraskov
Date: 2010-12-01 05:03:00 -0500 (Wed, 01 Dec 2010)
New Revision: 27042
Added:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/criteriaeditor/
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/criteriaeditor/CriteriaEditorTest.java
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsolePluginAllTests.java
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/project/ConfigurableTestProject.java
Log:
https://jira.jboss.org/browse/JBIDE-7749
JUnit for code completion in Criteria Editor
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsolePluginAllTests.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsolePluginAllTests.java 2010-12-01
01:29:25 UTC (rev 27041)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsolePluginAllTests.java 2010-12-01
10:03:00 UTC (rev 27042)
@@ -8,6 +8,7 @@
import org.hibernate.eclipse.console.test.mappingproject.MappingTestsCore;
import org.hibernate.eclipse.console.test.mappingproject.MappingTestsJpa;
import org.hibernate.eclipse.console.views.test.QueryPageViewerTest;
+import org.hibernate.eclipse.criteriaeditor.CriteriaEditorTest;
import org.hibernate.eclipse.hqleditor.HQLEditorTest;
import org.hibernate.eclipse.hqleditor.preferences.HQLEditorPreferencePageTest;
import org.hibernate.eclipse.mapper.HBMInfoExtractorTest;
@@ -25,6 +26,7 @@
suite.addTestSuite(JavaFormattingTest.class);
suite.addTestSuite(RefactoringTest.class);
suite.addTestSuite(HQLEditorTest.class);
+ suite.addTestSuite(CriteriaEditorTest.class);
suite.addTestSuite(MappingTestsCore.class);
suite.addTestSuite(MappingTestsJpa.class);
Modified:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/project/ConfigurableTestProject.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/project/ConfigurableTestProject.java 2010-12-01
01:29:25 UTC (rev 27041)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/project/ConfigurableTestProject.java 2010-12-01
10:03:00 UTC (rev 27042)
@@ -20,6 +20,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;
import org.hibernate.eclipse.console.test.mappingproject.Customization;
@@ -80,6 +81,20 @@
FilesTransfer.copyFolder(srcFolder, (IFolder)sourcePackageFragment.getResource());
return true;
}
+
+ public IPackageFragment getCurrentPackage() throws JavaModelException{
+ if (activePackage < foldersList.size()) {
+ final String pack = foldersList.get(activePackage).replaceAll("\\\\",
".");
+ IPackageFragment[] packageFragments = javaProject.getPackageFragments();
+ for (IPackageFragment iPackageFragment : packageFragments) {
+ if (iPackageFragment.getKind() == IPackageFragmentRoot.K_SOURCE
+ && iPackageFragment.getElementName().equals(pack)){
+ return iPackageFragment;
+ }
+ }
+ }
+ return null;
+ }
public boolean createTestFoldersList(FileFilter filterFiles, FileFilter filterFolders)
{
activePackage = -1;
Added:
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/criteriaeditor/CriteriaEditorTest.java
===================================================================
---
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/criteriaeditor/CriteriaEditorTest.java
(rev 0)
+++
trunk/hibernatetools/tests/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/criteriaeditor/CriteriaEditorTest.java 2010-12-01
10:03:00 UTC (rev 27042)
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.criteriaeditor;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.ui.IEditorPart;
+import org.hibernate.console.ConsoleConfiguration;
+import org.hibernate.console.KnownConfigurations;
+import org.hibernate.console.QueryInputModel;
+import org.hibernate.eclipse.console.HibernateConsolePlugin;
+import org.hibernate.eclipse.console.test.project.ConfigurableTestProject;
+import org.hibernate.eclipse.console.test.project.TestProject;
+import org.hibernate.eclipse.console.test.utils.ConsoleConfigUtils;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class CriteriaEditorTest extends TestCase {
+
+ private static final String PROJ_NAME = "CriteriaTest";
+ private static final String CONSOLE_NAME = PROJ_NAME;
+
+ private ConfigurableTestProject project = null;
+
+ protected void setUp() throws Exception {
+ project = new ConfigurableTestProject(PROJ_NAME);
+ }
+
+ protected void tearDown() throws Exception {
+ project.deleteIProject();
+ project = null;
+ }
+
+ public void testCriteriaEditorOpen(){
+ IEditorPart editorPart = HibernateConsolePlugin.getDefault()
+ .openCriteriaEditor(null, "");
+ assertNotNull("Criteria Editor was not opened", editorPart);
+ assertTrue("Opened editor is not CriteriaEditor", editorPart instanceof
CriteriaEditor);
+
+ CriteriaEditor editor = (CriteriaEditor)editorPart;
+ QueryInputModel model = editor.getQueryInputModel();
+ assertNotNull("Model is NULL", model);
+ }
+
+ public void testCriteriaCodeCompletion() throws CoreException, NoSuchFieldException,
IllegalAccessException, IOException{
+ //setup console configuration
+ IPath cfgFilePath = new Path(project.getIProject().getName() + File.separator +
+ TestProject.SRC_FOLDER + File.separator + ConsoleConfigUtils.CFG_FILE_NAME);
+ ConsoleConfigUtils.createConsoleConfig(PROJ_NAME, cfgFilePath, CONSOLE_NAME);
+ boolean createListRes = project.createTestFoldersList();
+ assertTrue(createListRes);
+ project.setupNextTestFolder();
+
+ IPackageFragment packFragment = project.getCurrentPackage();
+ assertNotNull(packFragment);
+ ConsoleConfigUtils.customizeCfgXmlForPack(packFragment);
+ project.fullBuild();
+
+ ConsoleConfiguration cc = KnownConfigurations.getInstance().find(CONSOLE_NAME);
+ assertNotNull("Console Configuration not found", cc);
+
+ String query = "Object o = new Object();\n" +
+ "System.out.print(o.toString());";
+ IEditorPart editorPart = HibernateConsolePlugin.getDefault()
+ .openCriteriaEditor(CONSOLE_NAME, query);
+ assertTrue("Opened editor is not CriteriaEditor", editorPart instanceof
CriteriaEditor);
+
+ CriteriaEditor editor = (CriteriaEditor)editorPart;
+ assertEquals(editor.getEditorText(), query);
+
+ QueryInputModel model = editor.getQueryInputModel();
+ assertTrue(model.getParameterCount() == 0);
+
+ JavaCompletionProcessor processor = new JavaCompletionProcessor(editor);
+
+ int position = query.indexOf("toString()");
+ ICompletionProposal[] proposals = processor.computeCompletionProposals(null,
position);
+ assertTrue("Class java.lang.Object has at least 9 methods. But " +
proposals.length
+ + " code completion proposals where provided.", proposals.length >= 9);
+ cc.reset();
+ }
+
+}