001// Copyright 2008 by Basil Vandegriend. All rights reserved. 002 003package com.basilv.examples.jaxb; 004 005import static org.junit.Assert.assertEquals; 006import static org.junit.Assert.assertNotNull; 007import static org.junit.Assert.fail; 008 009import java.io.*; 010 011import javax.xml.bind.JAXBException; 012import javax.xml.bind.annotation.*; 013 014import org.junit.Test; 015 016public 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}