From 38e0753473ae4779865f439b16dc3d19ddf1ce67 Mon Sep 17 00:00:00 2001 From: Michael Foiani Date: Fri, 9 Apr 2021 16:10:30 -0400 Subject: Added functionality that adds to the DB directly. Also, can handle multiple trades within a transaction now. --- src/test/java/edu/brown/cs/student/TradeTest.java | 93 ------------------ .../java/edu/brown/cs/student/TransactionTest.java | 108 +++++++++++++++++++++ .../java/edu/brown/cs/student/XmlParserTest.java | 4 +- 3 files changed, 110 insertions(+), 95 deletions(-) delete mode 100644 src/test/java/edu/brown/cs/student/TradeTest.java create mode 100644 src/test/java/edu/brown/cs/student/TransactionTest.java (limited to 'src/test/java') diff --git a/src/test/java/edu/brown/cs/student/TradeTest.java b/src/test/java/edu/brown/cs/student/TradeTest.java deleted file mode 100644 index 90d656d..0000000 --- a/src/test/java/edu/brown/cs/student/TradeTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package edu.brown.cs.student; - -import edu.brown.cs.student.term.parsing.LocalXmlParser; -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 static org.junit.Assert.*; - -public class TradeTest { - private XmlParser _xmlParser; - private Document _doc; - - @Before - public void setUp() { - _xmlParser = new LocalXmlParser(); - } - - @After - public void tearDown() { - _xmlParser = null; - } - - @Test - public void personDataParse(){ - setUp(); - Document doc = _xmlParser.parse("data/xml_trade_test.xml"); - assertNotNull(doc); - - // Id of person - NodeList idNode = doc.getElementsByTagName("rptOwnerCik"); - assertEquals(idNode.getLength(), 1); - String id = idNode.item(0).getTextContent(); - assertEquals(id, "0001561844"); - - // Name of person - NodeList nameNode = doc.getElementsByTagName("rptOwnerName"); - assertEquals(nameNode.getLength(), 1); - String name = nameNode.item(0).getTextContent(); - assertEquals(name, "Levental Igor"); - - tearDown(); - } - - @Test - public void tradeDataParse(){ - setUp(); - Document doc = _xmlParser.parse("data/xml_trade_test.xml"); - assertNotEquals(doc, null); - - // Data of trade in an array of values - NodeList trade = doc.getElementsByTagName("nonDerivativeTransaction"); - assertEquals(trade.item(0).getNodeType(), Node.ELEMENT_NODE); - Element tradeElement = (Element) trade.item(0); - NodeList values = tradeElement.getElementsByTagName("value"); - assertEquals(values.getLength(), 7); - - // type of stock - String stockType = values.item(0).getTextContent(); - assertEquals(stockType, "Common Stock"); - - // date - String date = values.item(1).getTextContent(); - assertEquals(date, "2021-03-31"); - - // # of shares - String numShares = values.item(2).getTextContent(); - assertEquals(numShares, "8236"); - - // price of shares - String priceShares = values.item(3).getTextContent(); - assertEquals(priceShares, "0"); - - // transaction type (A for acquire) - String transactionType = values.item(4).getTextContent(); - assertEquals(transactionType, "A"); - - // shared after transaction - String sharesAfter = values.item(5).getTextContent(); - assertEquals(sharesAfter, "10799"); - - // ownership type - String ownershipType = values.item(6).getTextContent(); - assertEquals(ownershipType, "D"); - - tearDown(); - } -} diff --git a/src/test/java/edu/brown/cs/student/TransactionTest.java b/src/test/java/edu/brown/cs/student/TransactionTest.java new file mode 100644 index 0000000..a5e2987 --- /dev/null +++ b/src/test/java/edu/brown/cs/student/TransactionTest.java @@ -0,0 +1,108 @@ +package edu.brown.cs.student; + +import edu.brown.cs.student.term.parsing.LocalXmlParser; +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 static org.junit.Assert.*; + +public class TransactionTest { + private XmlParser _xmlParser; + private Document _doc; + + @Before + public void setUp() { + _xmlParser = new LocalXmlParser(); + } + + @After + public void tearDown() { + _xmlParser = null; + } + + @Test + public void personDataParse(){ + setUp(); + Document doc = _xmlParser.parse("data/xml_single_trade_test.xml"); + assertNotNull(doc); + + // Id of person + NodeList idNode = doc.getElementsByTagName("rptOwnerCik"); + assertEquals(idNode.getLength(), 1); + String id = idNode.item(0).getTextContent(); + assertEquals(id, "0001561844"); + + // Name of person + NodeList nameNode = doc.getElementsByTagName("rptOwnerName"); + assertEquals(nameNode.getLength(), 1); + String name = nameNode.item(0).getTextContent(); + assertEquals(name, "Levental Igor"); + + tearDown(); + } + + @Test + public void securityDataParse(){ + setUp(); + Document doc = _xmlParser.parse("data/xml_single_trade_test.xml"); + assertNotNull(doc); + + // Ticker of security + NodeList idNode = doc.getElementsByTagName("issuerTradingSymbol"); + assertEquals(idNode.getLength(), 1); + String id = idNode.item(0).getTextContent(); + assertEquals(id, "GATO"); + + tearDown(); + } + + @Test + public void tradeDataParse(){ + setUp(); + Document doc = _xmlParser.parse("data/xml_single_trade_test.xml"); + assertNotEquals(doc, null); + + // Data of trade in an array of values + NodeList trade = doc.getElementsByTagName("nonDerivativeTransaction"); + assertEquals(trade.item(0).getNodeType(), Node.ELEMENT_NODE); + Element tradeElement = (Element) trade.item(0); + NodeList values = tradeElement.getElementsByTagName("value"); + assertEquals(values.getLength(), 7); + + // type of stock + String stockType = values.item(0).getTextContent(); + assertEquals(stockType, "Common Stock"); + + // date + String date = values.item(1).getTextContent(); + assertEquals(date, "2021-03-31"); + + // # of shares + String numShares = values.item(2).getTextContent(); + assertEquals(numShares, "8236"); + + // price of shares + String priceShares = values.item(3).getTextContent(); + assertEquals(priceShares, "0"); + + // transaction type (A for acquire) + String transactionType = values.item(4).getTextContent(); + assertEquals(transactionType, "A"); + + // shared after transaction + String sharesAfter = values.item(5).getTextContent(); + assertEquals(sharesAfter, "10799"); + + // ownership type + String ownershipType = values.item(6).getTextContent(); + assertEquals(ownershipType, "D"); + + tearDown(); + } +} diff --git a/src/test/java/edu/brown/cs/student/XmlParserTest.java b/src/test/java/edu/brown/cs/student/XmlParserTest.java index d3bc4ff..5f5b7a8 100644 --- a/src/test/java/edu/brown/cs/student/XmlParserTest.java +++ b/src/test/java/edu/brown/cs/student/XmlParserTest.java @@ -34,7 +34,7 @@ public class XmlParserTest { @Test public void parsesLocal(){ setUp(); - Document doc = _localXmlParser.parse("data/xml_trade_test.xml"); + Document doc = _localXmlParser.parse("data/xml_single_trade_test.xml"); assertNotNull(doc); // Id of person @@ -64,7 +64,7 @@ public class XmlParserTest { @Test public void urlSameAsLocal(){ setUp(); - Document local = _localXmlParser.parse("data/xml_trade_test.xml"); + Document local = _localXmlParser.parse("data/xml_single_trade_test.xml"); Document url = _urlXmlParser.parse("https://www.sec.gov/Archives/edgar/data/1517006/000110465921046242/tm2112036-4_4seq1.xml"); -- cgit v1.2.3-70-g09d2