< prev index next >

test/javax/xml/jaxp/functional/test/auctionportal/UserController.java

Print this page

        

*** 25,47 **** import static com.sun.org.apache.xerces.internal.jaxp.JAXPConstants.JAXP_SCHEMA_LANGUAGE; import static org.testng.Assert.assertFalse; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Files; - import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import static jaxp.library.JAXPTestUtilities.compareDocumentWithGold; - import static jaxp.library.JAXPTestUtilities.failCleanup; - import static jaxp.library.JAXPTestUtilities.failUnexpected; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; - import org.testng.annotations.Test; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; --- 25,44 ---- import static com.sun.org.apache.xerces.internal.jaxp.JAXPConstants.JAXP_SCHEMA_LANGUAGE; import static org.testng.Assert.assertFalse; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; + import jaxp.library.JAXPFileBaseTest; import static jaxp.library.JAXPTestUtilities.compareDocumentWithGold; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import org.testng.annotations.Test; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList;
*** 57,76 **** import static test.auctionportal.HiBidConstants.XML_DIR; /** * This is the user controller class for the Auction portal HiBid.com. */ ! public class UserController { /** * Checking when creating an XML document using DOM Level 2 validating * it without having a schema source or a schema location It must throw a * sax parse exception. */ @Test ! public void testCreateNewUser() { String resultFile = CLASS_DIR + "accountInfoOut.xml"; - try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); --- 54,86 ---- import static test.auctionportal.HiBidConstants.XML_DIR; /** * This is the user controller class for the Auction portal HiBid.com. */ ! public class UserController extends JAXPFileBaseTest { /** * Checking when creating an XML document using DOM Level 2 validating * it without having a schema source or a schema location It must throw a * sax parse exception. + * + * @throws ClassNotFoundException If any specified class does not implement. + * @throws ParserConfigurationException if a DocumentBuilder cannot be + * created which satisfies the configuration requested. + * @throws InstantiationException If any specified class is an interface or + * abstract class. + * @throws IllegalAccessException If the default constructor of a specified + * class is not accessible. + * @throws SAXException If any parse errors occur. + * @throws IOException if the file exists but is a directory rather than + * a regular file, does not exist but cannot be created, or cannot + * be opened for any other reason. */ @Test ! public void testCreateNewUser() throws ParserConfigurationException, ! SAXException, IOException, ClassNotFoundException, ! InstantiationException, IllegalAccessException { String resultFile = CLASS_DIR + "accountInfoOut.xml"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder docBuilder = dbf.newDocumentBuilder();
*** 90,124 **** DOMImplementationLS impl = (DOMImplementationLS) DOMImplementationRegistry .newInstance().getDOMImplementation("LS"); LSSerializer writer = impl.createLSSerializer(); LSParser builder = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null); ! FileOutputStream output = new FileOutputStream(resultFile); MyDOMOutput domOutput = new MyDOMOutput(); - domOutput.setByteStream(output); writer.write(account, domOutput); docBuilder.parse(resultFile); - - assertTrue(eh.isAnyError()); - } catch (ParserConfigurationException | ClassNotFoundException | - InstantiationException | IllegalAccessException - | ClassCastException | SAXException | IOException e) { - failUnexpected(e); } } /** * Checking conflicting namespaces and use renameNode and normalizeDocument. * @see <a href="content/accountInfo.xml">accountInfo.xml</a> */ @Test ! public void testAddUser() { String resultFile = CLASS_DIR + "accountRole.out"; String xmlFile = XML_DIR + "accountInfo.xml"; - try { // Copy schema for outputfile Files.copy(Paths.get(XML_DIR, "accountInfo.xsd"), Paths.get(CLASS_DIR, "accountInfo.xsd"), StandardCopyOption.REPLACE_EXISTING); MyErrorHandler eh = new MyErrorHandler(); --- 100,141 ---- DOMImplementationLS impl = (DOMImplementationLS) DOMImplementationRegistry .newInstance().getDOMImplementation("LS"); LSSerializer writer = impl.createLSSerializer(); LSParser builder = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null); ! try(FileOutputStream output = new FileOutputStream(resultFile)) { MyDOMOutput domOutput = new MyDOMOutput(); domOutput.setByteStream(output); writer.write(account, domOutput); docBuilder.parse(resultFile); } + assertTrue(eh.isAnyError()); } /** * Checking conflicting namespaces and use renameNode and normalizeDocument. * @see <a href="content/accountInfo.xml">accountInfo.xml</a> + * + * @throws ClassNotFoundException If any specified class does not implement. + * @throws ParserConfigurationException if a DocumentBuilder cannot be + * created which satisfies the configuration requested. + * @throws InstantiationException If any specified class is an interface or + * abstract class. + * @throws IllegalAccessException If the default constructor of a specified + * class is not accessible. + * @throws SAXException If any parse errors occur. + * @throws IOException if the file exists but is a directory rather than + * a regular file, does not exist but cannot be created, or cannot + * be opened for any other reason. */ @Test ! public void testAddUser() throws ParserConfigurationException, SAXException, ! IOException, ClassNotFoundException, InstantiationException, ! IllegalAccessException { String resultFile = CLASS_DIR + "accountRole.out"; String xmlFile = XML_DIR + "accountInfo.xml"; // Copy schema for outputfile Files.copy(Paths.get(XML_DIR, "accountInfo.xsd"), Paths.get(CLASS_DIR, "accountInfo.xsd"), StandardCopyOption.REPLACE_EXISTING); MyErrorHandler eh = new MyErrorHandler();
*** 150,177 **** writer.write(document, mydomoutput); } docBuilder.parse(resultFile); assertFalse(eh.isAnyError()); - } catch (ParserConfigurationException | SAXException | IOException - | ClassNotFoundException | InstantiationException - | IllegalAccessException | ClassCastException e) { - failUnexpected(e); - } } /** * Checking Text content in XML file. * @see <a href="content/accountInfo.xml">accountInfo.xml</a> */ ! @Test ! public void testMoreUserInfo() { String xmlFile = XML_DIR + "accountInfo.xml"; - - try { - System.out.println("Checking additional user info"); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI); dbf.setNamespaceAware(true); dbf.setValidating(true); --- 167,193 ---- writer.write(document, mydomoutput); } docBuilder.parse(resultFile); assertFalse(eh.isAnyError()); } /** * Checking Text content in XML file. * @see <a href="content/accountInfo.xml">accountInfo.xml</a> + * + * @throws ParserConfigurationException if a DocumentBuilder cannot be + * created which satisfies the configuration requested. + * @throws SAXException If any parse errors occur. + * @throws IOException if the file exists but is a directory rather than + * a regular file, does not exist but cannot be created, or cannot + * be opened for any other reason. */ ! @Test(groups = {"readLocalFiles"}) ! public void testMoreUserInfo() throws ParserConfigurationException, ! SAXException, IOException { String xmlFile = XML_DIR + "accountInfo.xml"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI); dbf.setNamespaceAware(true); dbf.setValidating(true);
*** 189,220 **** Attr accountID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID"); assertTrue(accountID.getTextContent().trim().equals("1")); assertFalse(eh.isAnyError()); - } catch (ParserConfigurationException | SAXException | IOException e) { - failUnexpected(e); - } } /** * This will check if adoptNode works will adoptNode from * @see <a href="content/userInfo.xml">userInfo.xml</a> * @see <a href="content/accountInfo.xml">accountInfo.xml</a>. This is * adopting a node from the XML file which is validated by a DTD and * into an XML file which is validated by the schema This covers Row 5 * for the table * http://javaweb.sfbay/~jsuttor/JSR206/jsr-206-html/ch03s05.html. Filed ! * bug 4893745 because there was a difference in behavior */ @Test ! public void testCreateUserAccount() { ! System.out.println("Creating user account"); String userXmlFile = XML_DIR + "userInfo.xml"; String accountXmlFile = XML_DIR + "accountInfo.xml"; - - try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); --- 205,244 ---- Attr accountID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID"); assertTrue(accountID.getTextContent().trim().equals("1")); assertFalse(eh.isAnyError()); } /** * This will check if adoptNode works will adoptNode from * @see <a href="content/userInfo.xml">userInfo.xml</a> * @see <a href="content/accountInfo.xml">accountInfo.xml</a>. This is * adopting a node from the XML file which is validated by a DTD and * into an XML file which is validated by the schema This covers Row 5 * for the table * http://javaweb.sfbay/~jsuttor/JSR206/jsr-206-html/ch03s05.html. Filed ! * bug 4893745 because there was a difference in behavior. ! * ! * @throws ClassNotFoundException If any specified class does not implement. ! * @throws ParserConfigurationException if a DocumentBuilder cannot be ! * created which satisfies the configuration requested. ! * @throws InstantiationException If any specified class is an interface or ! * abstract class. ! * @throws IllegalAccessException If the default constructor of a specified ! * class is not accessible. ! * @throws SAXException If any parse errors occur. ! * @throws IOException if the file exists but is a directory rather than ! * a regular file, does not exist but cannot be created, or cannot ! * be opened for any other reason. */ @Test ! public void testCreateUserAccount() throws ParserConfigurationException, ! SAXException, IOException, ClassNotFoundException, ! InstantiationException, IllegalAccessException { String userXmlFile = XML_DIR + "userInfo.xml"; String accountXmlFile = XML_DIR + "accountInfo.xml"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder docBuilder = dbf.newDocumentBuilder();
*** 246,298 **** writer.write(document, mydomoutput); writer.write(accDocument, mydomoutput); assertFalse(eh.isAnyError()); - } catch (ParserConfigurationException | SAXException | IOException - | ClassNotFoundException | InstantiationException - | IllegalAccessException | ClassCastException e) { - failUnexpected(e); - } } /** * Checking for Row 8 from the schema table when setting the schemaSource * without the schemaLanguage must report an error. */ @Test(expectedExceptions = IllegalArgumentException.class) ! public void testUserError() throws IllegalArgumentException { ! System.out.println("Creating an error in user account"); ! String xmlFile = XML_DIR + "userInfo.xml"; String schema = "http://java.sun.com/xml/jaxp/properties/schemaSource"; String schemaValue = "http://dummy.com/dummy.xsd"; - try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); dbf.setAttribute(schema, schemaValue); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); MyErrorHandler eh = new MyErrorHandler(); docBuilder.setErrorHandler(eh); ! Document document = docBuilder.parse(xmlFile); assertFalse(eh.isAnyError()); - } catch (ParserConfigurationException | SAXException | IOException e) { - failUnexpected(e); - } } /** * Checking for namespace normalization. * @see <a href="content/screenName.xml">screenName.xml</a> has prefix of * userName is bound to "http://hibid.com/user" namespace normalization * will create a namespace of prefix us and attach userEmail. */ @Test ! public void testCheckScreenNameExists() { String resultFile = CLASS_DIR + "screenName.out"; String xmlFile = XML_DIR + "screenName.xml"; String goldFile = GOLDEN_DIR + "screenNameGold.xml"; String nsTagName = "http://hibid.com/screenName"; --- 270,333 ---- writer.write(document, mydomoutput); writer.write(accDocument, mydomoutput); assertFalse(eh.isAnyError()); } /** * Checking for Row 8 from the schema table when setting the schemaSource * without the schemaLanguage must report an error. + * + * @throws ParserConfigurationException if a DocumentBuilder cannot be + * created which satisfies the configuration requested. + * @throws SAXException If any parse errors occur. + * @throws IOException if the file exists but is a directory rather than + * a regular file, does not exist but cannot be created, or cannot + * be opened for any other reason. */ @Test(expectedExceptions = IllegalArgumentException.class) ! public void testUserError() throws ParserConfigurationException, ! SAXException, IOException { String xmlFile = XML_DIR + "userInfo.xml"; String schema = "http://java.sun.com/xml/jaxp/properties/schemaSource"; String schemaValue = "http://dummy.com/dummy.xsd"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); dbf.setAttribute(schema, schemaValue); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); MyErrorHandler eh = new MyErrorHandler(); docBuilder.setErrorHandler(eh); ! docBuilder.parse(xmlFile); assertFalse(eh.isAnyError()); } /** * Checking for namespace normalization. * @see <a href="content/screenName.xml">screenName.xml</a> has prefix of * userName is bound to "http://hibid.com/user" namespace normalization * will create a namespace of prefix us and attach userEmail. + * + * @throws ClassNotFoundException If any specified class does not implement. + * @throws ParserConfigurationException if a DocumentBuilder cannot be + * created which satisfies the configuration requested. + * @throws InstantiationException If any specified class is an interface or + * abstract class. + * @throws IllegalAccessException If the default constructor of a specified + * class is not accessible. + * @throws SAXException If any parse errors occur. + * @throws IOException if the file exists but is a directory rather than + * a regular file, does not exist but cannot be created, or cannot + * be opened for any other reason. */ @Test ! public void testCheckScreenNameExists() throws ParserConfigurationException, ! ClassNotFoundException, InstantiationException, IllegalAccessException, ! SAXException, IOException { String resultFile = CLASS_DIR + "screenName.out"; String xmlFile = XML_DIR + "screenName.xml"; String goldFile = GOLDEN_DIR + "screenNameGold.xml"; String nsTagName = "http://hibid.com/screenName";
*** 316,338 **** document.normalizeDocument(); MyDOMOutput domoutput = new MyDOMOutput(); domoutput.setByteStream(output); writer.write(document, domoutput); - - assertTrue(compareDocumentWithGold(goldFile, resultFile)); - } catch (ClassNotFoundException | InstantiationException - | IllegalAccessException | ClassCastException | IOException - | ParserConfigurationException | SAXException e) { - failUnexpected(e); - } finally { - try { - Path resultPath = Paths.get(resultFile); - if (Files.exists(resultPath)) { - Files.delete(resultPath); - } - } catch (IOException ex) { - failCleanup(ex, resultFile); - } } } } --- 351,359 ---- document.normalizeDocument(); MyDOMOutput domoutput = new MyDOMOutput(); domoutput.setByteStream(output); writer.write(document, domoutput); } + assertTrue(compareDocumentWithGold(goldFile, resultFile)); } }
< prev index next >