diff options
author | cbateman | 2006-11-18 01:45:31 +0000 |
---|---|---|
committer | cbateman | 2006-11-18 01:45:31 +0000 |
commit | 80b1c89a292759a8e632250ea62d9b4fc1aab0f7 (patch) | |
tree | 345b93a5163078185e24e899a36bb1c1a3b3329f | |
parent | 1a5059f6345a16bcde75b3a6c43ac9cea3c6dab2 (diff) | |
download | webtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.tar.gz webtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.tar.xz webtools.jsf.tests-80b1c89a292759a8e632250ea62d9b4fc1aab0f7.zip |
Added type coercion and java type descriptor tests.
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 |