aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/edu/brown/cs/student/TransactionTest.java
blob: faf24fb6465ff6bf04283d25158f7d6c6baabc06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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();
  }

}