aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/edu/brown/cs/student/term/parsing/Transaction.java2
-rw-r--r--src/test/java/edu/brown/cs/student/TransactionTest.java86
-rw-r--r--src/test/java/edu/brown/cs/student/XmlParserTest.java80
3 files changed, 108 insertions, 60 deletions
diff --git a/src/main/java/edu/brown/cs/student/term/parsing/Transaction.java b/src/main/java/edu/brown/cs/student/term/parsing/Transaction.java
index ae33b14..718d2a5 100644
--- a/src/main/java/edu/brown/cs/student/term/parsing/Transaction.java
+++ b/src/main/java/edu/brown/cs/student/term/parsing/Transaction.java
@@ -37,7 +37,7 @@ public class Transaction {
NodeList tradesAsNodes = document.getElementsByTagName("nonDerivativeTransaction");
int numTrades = tradesAsNodes.getLength();
for(int i = 0; i < numTrades; i++) {
- NodeList tradeValues = getValueList(tradesAsNodes.item(0));
+ NodeList tradeValues = getValueList(tradesAsNodes.item(i));
// This stages the params for the trade.
// TODO: update with real timestamp
diff --git a/src/test/java/edu/brown/cs/student/TransactionTest.java b/src/test/java/edu/brown/cs/student/TransactionTest.java
index a5e2987..444263d 100644
--- a/src/test/java/edu/brown/cs/student/TransactionTest.java
+++ b/src/test/java/edu/brown/cs/student/TransactionTest.java
@@ -1,7 +1,9 @@
package edu.brown.cs.student;
import edu.brown.cs.student.term.parsing.LocalXmlParser;
+import edu.brown.cs.student.term.parsing.Transaction;
import edu.brown.cs.student.term.parsing.XmlParser;
+import edu.brown.cs.student.term.trade.Trade;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -27,82 +29,48 @@ public class TransactionTest {
}
@Test
- public void personDataParse(){
+ public void singleTrade(){
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();
- }
+ assertNotEquals(doc, null);
- @Test
- public void securityDataParse(){
- setUp();
- Document doc = _xmlParser.parse("data/xml_single_trade_test.xml");
- assertNotNull(doc);
+ // One trades in transaction
+ Transaction transaction = new Transaction(doc);
+ assertEquals(transaction.getTrades().size(), 1);
- // Ticker of security
- NodeList idNode = doc.getElementsByTagName("issuerTradingSymbol");
- assertEquals(idNode.getLength(), 1);
- String id = idNode.item(0).getTextContent();
- assertEquals(id, "GATO");
+ // TODO: add more qualities on trade to test...
+ Trade firstTrade = transaction.getTrades().get(0);
+ assertEquals(firstTrade.getNumShares(), 8236);
tearDown();
}
@Test
- public void tradeDataParse(){
+ public void multipleTrades(){
setUp();
- Document doc = _xmlParser.parse("data/xml_single_trade_test.xml");
+ Document doc = _xmlParser.parse("data/xml_multiple_trades_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");
+ // Three trades in transaction
+ Transaction transaction = new Transaction(doc);
+ assertEquals(transaction.getTrades().size(), 3);
- // price of shares
- String priceShares = values.item(3).getTextContent();
- assertEquals(priceShares, "0");
+ Trade firstTrade = transaction.getTrades().get(0);
+ assertEquals(firstTrade.getNumShares(), 3000);
- // transaction type (A for acquire)
- String transactionType = values.item(4).getTextContent();
- assertEquals(transactionType, "A");
+ Trade secondTrade = transaction.getTrades().get(1);
+ assertEquals(secondTrade.getNumShares(), 3000);
- // shared after transaction
- String sharesAfter = values.item(5).getTextContent();
- assertEquals(sharesAfter, "10799");
+ Trade lastTrade = transaction.getTrades().get(2);
+ assertEquals(lastTrade.getNumShares(), 2000);
- // ownership type
- String ownershipType = values.item(6).getTextContent();
- assertEquals(ownershipType, "D");
+ tearDown();
+ }
+ @Test
+ public void noTrades(){
+ setUp();
+ // TODO: add case, but won't realistically come up
tearDown();
}
}
diff --git a/src/test/java/edu/brown/cs/student/XmlParserTest.java b/src/test/java/edu/brown/cs/student/XmlParserTest.java
index 5f5b7a8..684452b 100644
--- a/src/test/java/edu/brown/cs/student/XmlParserTest.java
+++ b/src/test/java/edu/brown/cs/student/XmlParserTest.java
@@ -85,4 +85,84 @@ public class XmlParserTest {
assertNull(doc);
tearDown();
}
+
+ @Test
+ public void personDataParse(){
+ setUp();
+ Document doc = _localXmlParser.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 = _localXmlParser.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 = _localXmlParser.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();
+ }
}