package edu.brown.cs.student; import edu.brown.cs.student.term.parsing.LocalXmlParser; import edu.brown.cs.student.term.parsing.UrlXmlParser; import edu.brown.cs.student.term.parsing.XmlParser; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import javax.print.Doc; import static org.junit.Assert.*; public class XmlParserTest { private XmlParser _localXmlParser, _urlXmlParser; private Document _doc; @Before public void setUp() { _localXmlParser = new LocalXmlParser(); _urlXmlParser = new UrlXmlParser(); } @After public void tearDown() { _localXmlParser = null; _urlXmlParser = null; } @Test public void parsesLocal(){ setUp(); Document doc = _localXmlParser.parse("data/xml_trade_test.xml"); assertNotNull(doc); // Id of person assertEquals(getIdFromDoc(doc), "0001561844"); tearDown(); } @Test public void parsesUrl(){ setUp(); Document doc = _urlXmlParser.parse("https://www.sec.gov/Archives/edgar/data/1517006/000110465921046242/tm2112036-4_4seq1.xml"); assertNotNull(doc); // Id of person assertEquals(getIdFromDoc(doc), "0001561844"); tearDown(); } public String getIdFromDoc(Document doc) { // Id of person NodeList idNode = doc.getElementsByTagName("rptOwnerCik"); assertEquals(idNode.getLength(), 1); return idNode.item(0).getTextContent(); } @Test public void urlSameAsLocal(){ setUp(); Document local = _localXmlParser.parse("data/xml_trade_test.xml"); Document url = _urlXmlParser.parse("https://www.sec.gov/Archives/edgar/data/1517006/000110465921046242/tm2112036-4_4seq1.xml"); assertEquals(getIdFromDoc(local), getIdFromDoc(url)); tearDown(); } @Test public void noFileExists(){ setUp(); tearDown(); } @Test public void badXmlFormat(){ setUp(); Document doc = _localXmlParser.parse("data/bad.xml"); assertNull(doc); tearDown(); } }