001 // Copyright 2008 by Basil Vandegriend. All rights reserved.
002
003 package com.basilv.examples.jaxb;
004
005 import static org.junit.Assert.assertEquals;
006 import static org.junit.Assert.assertNotNull;
007 import static org.junit.Assert.fail;
008
009 import java.io.*;
010
011 import javax.xml.bind.JAXBException;
012 import javax.xml.bind.annotation.*;
013
014 import org.junit.Test;
015
016 public class XmlBindingToolsTest
017 {
018 @XmlRootElement(name = "xmltest")
019 static class XmlTest
020 {
021 private String id;
022
023 @XmlAttribute
024 public String getId() {
025 return id;
026 }
027
028 public void setId(String id) {
029 this.id = id;
030 }
031
032 }
033
034 @Test
035 public void parseXml() throws Exception {
036
037 String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
038 + "<xmltest id=\"test\"/>";
039
040 StringReader reader = new StringReader(xml);
041 XmlTest xmlTest = XmlBindingTools.parseXML(reader,
042 XmlTest.class);
043 assertNotNull(xmlTest);
044 assertEquals("test", xmlTest.getId());
045 }
046
047 @Test
048 public void generateXml() throws Exception {
049 XmlTest xmlTest = new XmlTest();
050 xmlTest.setId("test");
051 StringWriter writer = new StringWriter();
052 XmlBindingTools.generateXML(xmlTest, writer);
053 assertEquals(
054 "<?xml version=\"1.0\" encoding=\"UTF-8\" "
055 + "standalone=\"yes\"?>\n<xmltest id=\"test\"/>\n",
056 writer.getBuffer().toString());
057 }
058
059 @Test
060 public void parseInvalidXml() throws Exception {
061
062 String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
063 + "<xmltest id=\"test\"><fake/></xmltest>";
064
065 StringReader reader = new StringReader(xml);
066 try {
067 XmlBindingTools.parseXML(reader, XmlTest.class);
068 fail("Expected Exception");
069 } catch (JAXBException e) {
070 // Expected case.
071 }
072 }
073
074 }