Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbateman2006-11-18 01:45:31 +0000
committercbateman2006-11-18 01:45:31 +0000
commit80b1c89a292759a8e632250ea62d9b4fc1aab0f7 (patch)
tree345b93a5163078185e24e899a36bb1c1a3b3329f
parent1a5059f6345a16bcde75b3a6c43ac9cea3c6dab2 (diff)
downloadwebtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.tar.gz
webtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.tar.xz
webtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.zip
Added type coercion and java type descriptor tests.
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/META-INF/MANIFEST.MF3
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/AllTests.java26
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/ModelBaseTestCase.java101
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestIJavaTypeDescriptor2.java64
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestTypeCoercion.java59
-rw-r--r--jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/testdata/TestBeanMap.java.data19
6 files changed, 214 insertions, 58 deletions
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/META-INF/MANIFEST.MF
index de14451..c1137e5 100644
--- a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/META-INF/MANIFEST.MF
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/META-INF/MANIFEST.MF
@@ -16,6 +16,7 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.jst.jsf.core.tests,
org.eclipse.ui,
org.eclipse.emf.edit,
- org.eclipse.jface.text
+ org.eclipse.jface.text,
+ org.eclipse.jst.jsf.core
Eclipse-LazyStart: true
Bundle-Activator: org.eclipse.jst.jsf.context.symbol.tests.ContextSymbolTestPlugin
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/AllTests.java
new file mode 100644
index 0000000..ec693d7
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/AllTests.java
@@ -0,0 +1,26 @@
+package org.eclipse.jst.jsf.context.symbol.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Test suite for all context.symbol tests
+ *
+ * @author cbateman
+ *
+ */
+public class AllTests {
+ /**
+ * @return the all tests suite
+ */
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("Test for org.eclipse.jst.jsf.validation.el.tests");
+ //$JUnit-BEGIN$
+ suite.addTestSuite(TestIJavaTypeDescriptor2.class);
+ suite.addTestSuite(TestIPropertySymbolItemProvider.class);
+ suite.addTestSuite(TestTypeCoercion.class);
+ //$JUnit-END$
+ return suite;
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/ModelBaseTestCase.java b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/ModelBaseTestCase.java
new file mode 100644
index 0000000..b574124
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/ModelBaseTestCase.java
@@ -0,0 +1,101 @@
+package org.eclipse.jst.jsf.context.symbol.tests;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jst.jsf.context.symbol.SymbolFactory;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBeanInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBeanPropertySymbol;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.IJavaTypeDescriptor2;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+import org.osgi.framework.Bundle;
+
+/**
+ * @author cbateman
+ *
+ */
+public class ModelBaseTestCase extends TestCase
+{
+ /**
+ * The test environment for a JavaProject
+ */
+ protected JDTTestEnvironment _jdtTestEnvironment;
+
+ /**
+ * The base source folder name for Java classes
+ */
+ protected final static String srcFolderName = "src";
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.uk.oracle.com", "80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestJDTBeanIntrospectorProject");
+ projectTestEnvironment.createProject();
+
+ _jdtTestEnvironment = new JDTTestEnvironment(projectTestEnvironment);
+ }
+
+ /**
+ * @param bundle
+ * @param fileName
+ * @param packageName
+ * @param beanClassName
+ * @throws Exception
+ */
+ protected void loadSourceClass(final Bundle bundle, final String fileName, final String packageName, final String beanClassName) throws Exception
+ {
+ TestFileResource codeRes = new TestFileResource();
+ codeRes.load(bundle, fileName);
+ String code = codeRes.toString();
+ _jdtTestEnvironment.addSourceFile(srcFolderName, packageName, beanClassName, code);
+ assertNotNull(_jdtTestEnvironment.getJavaProject().findType(packageName+"."+beanClassName));
+ }
+
+ /**
+ * @param bundle
+ * @param fileName
+ * @param packageName
+ * @param beanClassName
+ * @param properties
+ * @return a bean instance set up for the indicated test class
+ * @throws Exception
+ */
+ protected IBeanInstanceSymbol setupBeanProperty(Bundle bundle, String fileName, String packageName, String beanClassName, Map properties) throws Exception
+ {
+ loadSourceClass(bundle, fileName, packageName, beanClassName);
+
+ final IType testBean1Type =
+ _jdtTestEnvironment.getJavaProject().findType(packageName+"."+beanClassName);
+ assertNotNull(testBean1Type);
+
+ final IJavaTypeDescriptor2 testBeanDescriptor =
+ SymbolFactory.eINSTANCE.createIJavaTypeDescriptor2();
+ testBeanDescriptor.setType(testBean1Type);
+
+ IBeanInstanceSymbol bean =
+ SymbolFactory.eINSTANCE.createIBeanInstanceSymbol();
+ bean.setTypeDescriptor(testBeanDescriptor);
+ bean.setName(beanClassName);
+ List propertyList = bean.getProperties();
+ for(final Iterator it = propertyList.iterator(); it.hasNext();)
+ {
+ final IBeanPropertySymbol property =
+ (IBeanPropertySymbol) it.next();
+ properties.put(property.getName(), property);
+ }
+
+ return bean;
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestIJavaTypeDescriptor2.java b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestIJavaTypeDescriptor2.java
index 19b175a..bdd81db 100644
--- a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestIJavaTypeDescriptor2.java
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestIJavaTypeDescriptor2.java
@@ -17,8 +17,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import junit.framework.TestCase;
-
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
@@ -29,10 +27,6 @@ import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBeanMethodSymbol
import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBeanPropertySymbol;
import org.eclipse.jst.jsf.context.symbol.internal.provisional.IJavaTypeDescriptor2;
import org.eclipse.jst.jsf.core.tests.TestsPlugin;
-import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
-import org.eclipse.jst.jsf.test.util.TestFileResource;
-import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
-import org.osgi.framework.Bundle;
/**
* Test the IJavaTypeDescriptor
@@ -40,9 +34,8 @@ import org.osgi.framework.Bundle;
* @author cbateman
*
*/
-public class TestIJavaTypeDescriptor2 extends TestCase
+public class TestIJavaTypeDescriptor2 extends ModelBaseTestCase
{
- private JDTTestEnvironment _jdtTestEnvironment;
private Map _beanProperties;
private Map _beanSubclassProperties;
private Map _beanMethods;
@@ -53,7 +46,6 @@ public class TestIJavaTypeDescriptor2 extends TestCase
private IBeanInstanceSymbol _testBean2Symbol;
private IBeanInstanceSymbol _testBean2SubclassSymbol;
- private final static String srcFolderName = "src";
private final static String packageName1 = "com.test";
private final static String testBeanName1 = "TestBean1";
private final static String testBeanSubclass1 = "TestBean1Subclass";
@@ -65,27 +57,21 @@ public class TestIJavaTypeDescriptor2 extends TestCase
protected void setUp() throws Exception
{
super.setUp();
- final WebProjectTestEnvironment projectTestEnvironment =
- new WebProjectTestEnvironment("TestJDTBeanIntrospectorProject");
- projectTestEnvironment.createProject();
-
- _jdtTestEnvironment = new JDTTestEnvironment(projectTestEnvironment);
// load ITestBean2 first due to later dependencies
- loadSourceClass(ContextSymbolTestPlugin.getDefault().getBundle(), "/testdata/ITestBean2.java.data", "ITestBean2");
- assertNotNull(_jdtTestEnvironment.getJavaProject().findType(packageName1+"."+"ITestBean2"));
+ loadSourceClass(ContextSymbolTestPlugin.getDefault().getBundle(), "/testdata/ITestBean2.java.data", packageName1, "ITestBean2");
// load another bean first since others have a dependency on on it
- loadSourceClass(TestsPlugin.getDefault().getBundle(), "/testfiles/AnotherBean.java.data", "AnotherBean");
+ loadSourceClass(TestsPlugin.getDefault().getBundle(), "/testfiles/AnotherBean.java.data", packageName1, "AnotherBean");
assertNotNull(_jdtTestEnvironment.getJavaProject().findType(packageName1+"."+"AnotherBean"));
_beanProperties = new HashMap();
_testBean1Symbol =
- setupBeanProperty("/testfiles/TestBean1.java.data", testBeanName1, _beanProperties);
+ setupBeanProperty(TestsPlugin.getDefault().getBundle(), "/testfiles/TestBean1.java.data", packageName1, testBeanName1, _beanProperties);
_beanSubclassProperties = new HashMap();
_testBean1SubclassSymbol =
- setupBeanProperty("/testfiles/TestBean1Subclass.java.data", testBeanSubclass1, _beanSubclassProperties);
+ setupBeanProperty(TestsPlugin.getDefault().getBundle(), "/testfiles/TestBean1Subclass.java.data", packageName1, testBeanSubclass1, _beanSubclassProperties);
_beanMethods = new HashMap();
_testBean2Symbol =
@@ -95,46 +81,10 @@ public class TestIJavaTypeDescriptor2 extends TestCase
_testBean2SubclassSymbol =
setupBeanMethods("/testdata/TestBean2Subclass.java.data", testBean2Subclass, _beanMethodsSubclass);
}
-
- private IBeanInstanceSymbol setupBeanProperty(String fileName, String beanClassName, Map properties) throws Exception
- {
- loadSourceClass(TestsPlugin.getDefault().getBundle(), fileName, beanClassName);
-
- final IType testBean1Type =
- _jdtTestEnvironment.getJavaProject().findType(packageName1+"."+beanClassName);
- assertNotNull(testBean1Type);
-
- final IJavaTypeDescriptor2 testBeanDescriptor =
- SymbolFactory.eINSTANCE.createIJavaTypeDescriptor2();
- testBeanDescriptor.setType(testBean1Type);
-
- IBeanInstanceSymbol bean =
- SymbolFactory.eINSTANCE.createIBeanInstanceSymbol();
- bean.setTypeDescriptor(testBeanDescriptor);
- bean.setName(beanClassName);
- List propertyList = bean.getProperties();
- for(final Iterator it = propertyList.iterator(); it.hasNext();)
- {
- final IBeanPropertySymbol property =
- (IBeanPropertySymbol) it.next();
- properties.put(property.getName(), property);
- }
-
- return bean;
- }
-
- private void loadSourceClass(final Bundle bundle, final String fileName, final String beanClassName) throws Exception
- {
- TestFileResource codeRes = new TestFileResource();
- codeRes.load(bundle, fileName);
- String code = codeRes.toString();
- _jdtTestEnvironment.addSourceFile(srcFolderName, packageName1, beanClassName, code);
- }
-
private IBeanInstanceSymbol setupBeanMethods(String fileName, String beanClassName, Map methods) throws Exception
{
- loadSourceClass(ContextSymbolTestPlugin.getDefault().getBundle(), fileName, beanClassName);
+ loadSourceClass(ContextSymbolTestPlugin.getDefault().getBundle(), fileName, packageName1, beanClassName);
final IType testBean1Type =
_jdtTestEnvironment.getJavaProject().findType(packageName1+"."+beanClassName);
@@ -905,7 +855,7 @@ public class TestIJavaTypeDescriptor2 extends TestCase
// there are methods and one property on TestBean2
assertFalse(desc.eIsSet(SymbolPackage.eINSTANCE.getIJavaTypeDescriptor2_BeanProperties()));
assertFalse(desc.eIsSet(SymbolPackage.eINSTANCE.getIJavaTypeDescriptor2_BeanMethods()));
- assertFalse(desc.eIsSet(SymbolPackage.eINSTANCE.getIBeanInstanceSymbol_JavaTypeDescriptor()));
+ //assertFalse(desc.eIsSet(SymbolPackage.eINSTANCE.getIBeanInstanceSymbol_escriptor()));
desc.eSet(SymbolPackage.eINSTANCE.getIJavaTypeDescriptor2_BeanProperties(),
_testBean2Symbol.getJavaTypeDescriptor().getBeanProperties());
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestTypeCoercion.java b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestTypeCoercion.java
new file mode 100644
index 0000000..a8f5295
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/src/org/eclipse/jst/jsf/context/symbol/tests/TestTypeCoercion.java
@@ -0,0 +1,59 @@
+package org.eclipse.jst.jsf.context.symbol.tests;
+
+import java.util.HashMap;
+
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBeanInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.IBoundedMapTypeDescriptor;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.ISymbol;
+import org.eclipse.jst.jsf.context.symbol.internal.provisional.ITypeDescriptor;
+import org.eclipse.jst.jsf.core.internal.types.TypeConstants;
+
+/**
+ *
+ * @author cbateman
+ *
+ */
+public class TestTypeCoercion extends ModelBaseTestCase
+{
+ private final static String packageName = "com.test";
+ private IBeanInstanceSymbol _testMapBeanSymbol;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ _testMapBeanSymbol =
+ setupBeanProperty(ContextSymbolTestPlugin.getDefault().getBundle(),
+ "/testdata/TestBeanMap.java.data", packageName,
+ "TestBeanMap", new HashMap());
+ }
+
+ /**
+ * Test Sanity of setup
+ */
+ public void testSanity()
+ {
+ assertNotNull(_testMapBeanSymbol);
+ }
+
+ /**
+ * Test the basic semantics of a bean that implements Map
+ */
+ public void testBasicMapBean()
+ {
+ assertTrue(_testMapBeanSymbol.getTypeDescriptor().instanceOf(TypeConstants.TYPE_MAP));
+ assertTrue(_testMapBeanSymbol.supportsCoercion(TypeConstants.TYPE_MAP));
+ final ITypeDescriptor typeDesc =
+ _testMapBeanSymbol.coerce(TypeConstants.TYPE_MAP);
+ assertNotNull(typeDesc);
+ assertTrue(typeDesc.instanceOf(TypeConstants.TYPE_MAP));
+ assertTrue(typeDesc instanceof IBoundedMapTypeDescriptor);
+ assertTrue(((IBoundedMapTypeDescriptor)typeDesc).isUnboundedForType(TypeConstants.TYPE_MAP));
+ final String testSymbolName = "chelsea";
+ ISymbol symbol =
+ ((IBoundedMapTypeDescriptor)typeDesc).
+ getUnboundedProperty(testSymbolName, TypeConstants.TYPE_MAP);
+
+ assertEquals(testSymbolName, symbol.getName());
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/testdata/TestBeanMap.java.data b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/testdata/TestBeanMap.java.data
new file mode 100644
index 0000000..1dcf356
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.context.symbol.tests/testdata/TestBeanMap.java.data
@@ -0,0 +1,19 @@
+package org.eclipse.jst.jsf.context.symbol.tests;
+
+import java.util.AbstractMap;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Test bean class that implements java.util.Map via AbstractMap
+ * @author cbateman
+ *
+ */
+public class TestBeanMap extends AbstractMap {
+
+ public Set entrySet()
+ {
+ return new HashSet();
+ }
+
+} \ No newline at end of file

Back to the top