diff options
author | pfullbright | 2012-04-03 21:24:04 +0000 |
---|---|---|
committer | pfullbright | 2012-04-03 21:24:04 +0000 |
commit | ab1e9b17e9a75b1e4c21447961a954cf00e262ae (patch) | |
tree | 68fd76cae1c5891db0100196ca9a972baa56a67b /jaxb/tests/org.eclipse.jpt.jaxb.eclipselink.core.tests | |
parent | 899af9e5a376dba57d8a83e6b12699359525dc9b (diff) | |
download | webtools.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.java | 109 |
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()); + } +} |