Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2012-04-03 21:24:04 +0000
committerpfullbright2012-04-03 21:24:04 +0000
commitab1e9b17e9a75b1e4c21447961a954cf00e262ae (patch)
tree68fd76cae1c5891db0100196ca9a972baa56a67b /jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests
parent899af9e5a376dba57d8a83e6b12699359525dc9b (diff)
downloadwebtools.dali-ab1e9b17e9a75b1e4c21447961a954cf00e262ae.tar.gz
webtools.dali-ab1e9b17e9a75b1e4c21447961a954cf00e262ae.tar.xz
webtools.dali-ab1e9b17e9a75b1e4c21447961a954cf00e262ae.zip
bug 366897 - XmlCDATA support
Diffstat (limited to 'jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests')
-rw-r--r--jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/context/java/ELJavaXmlValueMappingTests.java109
1 files changed, 109 insertions, 0 deletions
diff --git a/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/context/java/ELJavaXmlValueMappingTests.java b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/context/java/ELJavaXmlValueMappingTests.java
new file mode 100644
index 0000000000..b1e44a2b14
--- /dev/null
+++ b/jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests/src/org/eclipse/jpt/jaxb/eclipselink/core/tests/internal/context/java/ELJavaXmlValueMappingTests.java
@@ -0,0 +1,109 @@
+package org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.context.java;
+
+import java.util.Iterator;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAttribute;
+import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
+import org.eclipse.jpt.common.core.utility.jdt.Member;
+import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration;
+import org.eclipse.jpt.common.utility.internal.CollectionTools;
+import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.jaxb.core.context.JaxbClass;
+import org.eclipse.jpt.jaxb.core.context.JaxbClassMapping;
+import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute;
+import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDescription;
+import org.eclipse.jpt.jaxb.core.resource.java.JAXB;
+import org.eclipse.jpt.jaxb.eclipselink.core.ELJaxbPlatform;
+import org.eclipse.jpt.jaxb.eclipselink.core.internal.context.java.ELJavaXmlValueMapping;
+import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
+import org.eclipse.jpt.jaxb.eclipselink.core.tests.internal.context.ELJaxbContextModelTestCase;
+
+
+public class ELJavaXmlValueMappingTests
+ extends ELJaxbContextModelTestCase {
+
+ public ELJavaXmlValueMappingTests(String name) {
+ super(name);
+ }
+
+
+ @Override
+ protected JaxbPlatformDescription getPlatform() {
+ return ELJaxbPlatform.VERSION_2_2;
+ }
+
+ private ICompilationUnit createTypeWithXmlValue() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JAXB.XML_TYPE, JAXB.XML_VALUE);
+ }
+
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@XmlType");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append("@XmlValue");
+ }
+ });
+ }
+
+ public void testModifyXmlCDATA() throws Exception {
+ createTypeWithXmlValue();
+
+ JaxbClass jaxbClass = (JaxbClass) CollectionTools.get(getContextRoot().getTypes(), 0);
+ JaxbClassMapping classMapping = jaxbClass.getMapping();
+ JaxbPersistentAttribute persistentAttribute = CollectionTools.get(classMapping.getAttributes(), 0);
+ ELJavaXmlValueMapping mapping = (ELJavaXmlValueMapping) persistentAttribute.getMapping();
+ JavaResourceAttribute resourceAttribute = mapping.getPersistentAttribute().getJavaResourceAttribute();
+
+ assertNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNull(mapping.getXmlCDATA());
+
+ mapping.addXmlCDATA();
+
+ assertNotNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNotNull(mapping.getXmlCDATA());
+
+ mapping.removeXmlCDATA();
+
+ assertNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNull(mapping.getXmlCDATA());
+ }
+
+ public void testUpdateXmlCDATA() throws Exception {
+ createTypeWithXmlValue();
+
+ JaxbClass jaxbClass = (JaxbClass) CollectionTools.get(getContextRoot().getTypes(), 0);
+ JaxbClassMapping classMapping = jaxbClass.getMapping();
+ JaxbPersistentAttribute persistentAttribute = CollectionTools.get(classMapping.getAttributes(), 0);
+ ELJavaXmlValueMapping mapping = (ELJavaXmlValueMapping) persistentAttribute.getMapping();
+ JavaResourceAttribute resourceAttribute = mapping.getPersistentAttribute().getJavaResourceAttribute();
+
+ assertNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNull(mapping.getXmlCDATA());
+
+ AnnotatedElement annotatedElement = this.annotatedElement(resourceAttribute);
+ annotatedElement.edit(new Member.Editor() {
+ public void edit(ModifiedDeclaration declaration) {
+ ELJavaXmlValueMappingTests.this.addMarkerAnnotation(
+ declaration.getDeclaration(), ELJaxb.XML_CDATA);
+ }
+ });
+
+ assertNotNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNotNull(mapping.getXmlCDATA());
+
+ annotatedElement.edit(new Member.Editor() {
+ public void edit(ModifiedDeclaration declaration) {
+ ELJavaXmlValueMappingTests.this.removeAnnotation(declaration, ELJaxb.XML_CDATA);
+ }
+ });
+
+ assertNull(resourceAttribute.getAnnotation(ELJaxb.XML_CDATA));
+ assertNull(mapping.getXmlCDATA());
+ }
+}

Back to the top