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; 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 singleTrade(){ setUp(); tearDown(); } @Test public void multipleTrades(){ setUp(); Document doc = _xmlParser.parse("data/xml_multiple_trades_test.xml"); assertNotEquals(doc, null); // Three trades in transaction Transaction transaction = new Transaction(doc); assertEquals(transaction.getTrades().size(), 3); Trade firstTrade = transaction.getTrades().get(0); assertEquals(firstTrade.getNumShares(), 3000); Trade secondTrade = transaction.getTrades().get(1); assertEquals(secondTrade.getNumShares(), 3000); Trade lastTrade = transaction.getTrades().get(2); assertEquals(lastTrade.getNumShares(), 2000); tearDown(); } /* @Test public void derivativeTransaction(){ setUp(); Document doc = _xmlParser.parse("data/xml_derivative_only_test.xml"); assertNotEquals(doc, null); // One trades in transaction Transaction transaction = new Transaction(doc); assertEquals(transaction.getTrades().size(), 1); // TODO: add more qualities on trade to test... Trade firstTrade = transaction.getTrades().get(0); assertEquals(firstTrade.getNumShares(), 8236); assertEquals(firstTrade.getHolder().getId(), 1463126); tearDown(); } */ @Test public void noTrades(){ setUp(); // TODO: add case from example tearDown(); } @Test public void bad0Trade(){ setUp(); Document doc = _xmlParser.parse("data/xml_single_trade_test.xml"); assertNotEquals(doc, null); // One trades in transaction Transaction transaction = new Transaction(doc); assertEquals(transaction.getTrades().size(), 0); tearDown(); } @Test public void badFormats(){ setUp(); // TODO: ensure 0 price trades aren't there, market trades aren't there, .00 on end of ints, etc... // no price -> https://www.sec.gov/Archives/edgar/data/1654595/000110465921048974/tm2112683-1_4seq1.xml // market form -> https://www.sec.gov/Archives/edgar/data/39899/000121465921004094/marketforms-52237.xml tearDown(); } }