[79083] Add JUnit tests for this (and needed test for overrides being processed, forgot that one in the past).
diff --git a/tests/org.eclipse.jem.tests/javatests/org/eclipse/jem/tests/beaninfo/TestStandard.java b/tests/org.eclipse.jem.tests/javatests/org/eclipse/jem/tests/beaninfo/TestStandard.java index 0851c92..8f7b934 100644 --- a/tests/org.eclipse.jem.tests/javatests/org/eclipse/jem/tests/beaninfo/TestStandard.java +++ b/tests/org.eclipse.jem.tests/javatests/org/eclipse/jem/tests/beaninfo/TestStandard.java
@@ -11,7 +11,7 @@ package org.eclipse.jem.tests.beaninfo; /* * $RCSfile: TestStandard.java,v $ - * $Revision: 1.7 $ $Date: 2004/08/27 15:33:39 $ + * $Revision: 1.8 $ $Date: 2004/11/19 21:17:04 $ */ import java.util.Iterator; @@ -24,8 +24,10 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.*; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EStructuralFeature; + import org.eclipse.jem.internal.beaninfo.*; import org.eclipse.jem.internal.beaninfo.core.Utilities; @@ -603,4 +605,26 @@ assertNotNull(pd); assertTrue(pd.isBound()); } + + public void testOverridesFile() { + // Test that override files get applied correctly. + JavaClass testOverride = (JavaClass) rset.getEObject(URI.createURI("java:/org.eclipse.jem.tests.beaninfo#TestOverrides"), true); //$NON-NLS-1$ + assertNotNull(testOverride); + EStructuralFeature xyz = testOverride.getEStructuralFeature("xyz"); + assertNotNull(xyz); + // Test that it has the correct type so that we know it was reflected correctly. + assertEquals(rset.getEObject(URI.createURI("java:/#int"), true), xyz.getEType()); + + // Test that we have the annotation we added. + assertNotNull(xyz.getEAnnotation("Override Annotation")); + } + + public void test79083() { + // Test bug 79083: Null ETypes from overrides that didn't have a reflection to give it the type. BeanInfo should make it EObject type. + JavaClass testOverride = (JavaClass) rset.getEObject(URI.createURI("java:/org.eclipse.jem.tests.beaninfo#TestOverrides"), true); //$NON-NLS-1$ + assertNotNull(testOverride); + EStructuralFeature test79083 = testOverride.getEStructuralFeature("test79083"); + assertNotNull(test79083); + assertEquals(EcorePackage.eINSTANCE.getEObject(), test79083.getEType()); + } }
diff --git a/tests/org.eclipse.jem.tests/plugin.xml b/tests/org.eclipse.jem.tests/plugin.xml index a88b275..03b7cbb 100644 --- a/tests/org.eclipse.jem.tests/plugin.xml +++ b/tests/org.eclipse.jem.tests/plugin.xml
@@ -28,5 +28,15 @@ <import plugin="org.eclipse.debug.core"/> </requires> + <extension + point="org.eclipse.jem.beaninfo.registrations"> + <registration + container="org.eclipse.jdt.launching.JRE_CONTAINER"> + <override + package="org.eclipse.jem.tests.beaninfo" + path="testdata/overrides/beaninfo"> + </override> + </registration> + </extension> </plugin>
diff --git a/tests/org.eclipse.jem.tests/testdata/overrides/beaninfo/TestOverrides.override b/tests/org.eclipse.jem.tests/testdata/overrides/beaninfo/TestOverrides.override new file mode 100644 index 0000000..17639ad --- /dev/null +++ b/tests/org.eclipse.jem.tests/testdata/overrides/beaninfo/TestOverrides.override
@@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:event="event.xmi"> + <event:AddMany featureName="eStructuralFeatures"> + <addedEObjects xsi:type="ecore:EReference" name="xyz"> + <eAnnotations source="Override Annotation"/> + </addedEObjects> + <addedEObjects xsi:type="ecore:EReference" name="test79083"/> + </event:AddMany> + +</xmi:XMI>
diff --git a/tests/org.eclipse.jem.tests/testdata/testbeaninfo.zip b/tests/org.eclipse.jem.tests/testdata/testbeaninfo.zip index 813b500..6e4b0c1 100644 --- a/tests/org.eclipse.jem.tests/testdata/testbeaninfo.zip +++ b/tests/org.eclipse.jem.tests/testdata/testbeaninfo.zip Binary files differ