< prev index next >

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

Print this page

        

@@ -25,23 +25,20 @@
 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 jaxp.library.JAXPFileBaseTest;
 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;

@@ -57,20 +54,33 @@
 import static test.auctionportal.HiBidConstants.XML_DIR;
 
 /**
  * This is the user controller class for the Auction portal HiBid.com.
  */
-public class UserController {
+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() {
+    public void testCreateNewUser() throws ParserConfigurationException,  
+            SAXException, IOException, ClassNotFoundException, 
+             InstantiationException, IllegalAccessException {
         String resultFile = CLASS_DIR + "accountInfoOut.xml";
-        try {
             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
             dbf.setNamespaceAware(true);
             dbf.setValidating(true);
 
             DocumentBuilder docBuilder = dbf.newDocumentBuilder();

@@ -90,35 +100,42 @@
             DOMImplementationLS impl
                     = (DOMImplementationLS) DOMImplementationRegistry
                             .newInstance().getDOMImplementation("LS");
             LSSerializer writer = impl.createLSSerializer();
             LSParser builder = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
-            FileOutputStream output = new FileOutputStream(resultFile);
+        try(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);
         }
+        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() {
+    public void testAddUser() throws ParserConfigurationException, SAXException, 
+            IOException, ClassNotFoundException, InstantiationException, 
+            IllegalAccessException {
         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();

@@ -150,28 +167,27 @@
                 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>
+     * 
+     * @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
-    public void testMoreUserInfo() {
+    @Test(groups = {"readLocalFiles"})
+    public void testMoreUserInfo() throws ParserConfigurationException, 
+            SAXException, IOException {
         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);

@@ -189,32 +205,40 @@
 
             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
+     * 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() {
-        System.out.println("Creating user account");
+    public void testCreateUserAccount() throws ParserConfigurationException, 
+            SAXException, IOException, ClassNotFoundException, 
+            InstantiationException, IllegalAccessException {
         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();

@@ -246,53 +270,64 @@
 
             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.
+     * 
+     * @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 IllegalArgumentException {
-        System.out.println("Creating an error in user account");
-
+    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";
 
-        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);
+        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.
+     * 
+     * @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() {
+    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,23 +351,9 @@
             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);
-            }
         }
+        assertTrue(compareDocumentWithGold(goldFile, resultFile));
     }
 }
< prev index next >