diff options
| author | clarkohw <66530369+clarkohw@users.noreply.github.com> | 2021-04-04 23:13:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-04 23:13:00 -0400 |
| commit | b8023de2b8d942e995b7a6419a7da814afe8a4a3 (patch) | |
| tree | 5df6a11038ca35598d3c1aaecc921893952ac210 /src/test/java/edu/brown/cs/student/DBQuerierTest.java | |
| parent | 32f6f0e6f9d9beb8476f00417f68276fa2247d4e (diff) | |
| parent | cb79a2b3c94ef0fbfc7c1f9208b6f3027d08b4f9 (diff) | |
Merge branch 'master' into profic-calc
Diffstat (limited to 'src/test/java/edu/brown/cs/student/DBQuerierTest.java')
| -rw-r--r-- | src/test/java/edu/brown/cs/student/DBQuerierTest.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/test/java/edu/brown/cs/student/DBQuerierTest.java b/src/test/java/edu/brown/cs/student/DBQuerierTest.java new file mode 100644 index 0000000..d813969 --- /dev/null +++ b/src/test/java/edu/brown/cs/student/DBQuerierTest.java @@ -0,0 +1,122 @@ +package edu.brown.cs.student; + +import java.io.PrintStream; +import java.sql.SQLException; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; + +import edu.brown.cs.student.term.DatabaseQuerier; +import edu.brown.cs.student.term.repl.commands.SetupCommand; +import edu.brown.cs.student.term.trade.Trade; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +//TODO: Write more tests for methods besides stock by name +public class DBQuerierTest { + + /** these should span the entire mock dataset */ + //12 am on 3/11 in UTC + private Instant start = Instant.parse("2021-03-11T05:00:00.00Z"); + //12 am on 3/28 in UTC + private Instant end = Instant.parse("2021-03-28T05:00:00.00Z"); + + private DatabaseQuerier db; + + @Before + public void setUp() { + try{ + db = new DatabaseQuerier("data/mock_trades.sqlite3"); + } catch(Exception e){ + System.out.println("DBQuerier Test, couldn't connect to db???"); + } + } + + /* + * try{ + + } catch(Exception e) { + System.out.println("Error in test"); + }*/ + + @After + public void tearDown() { + db = null; + } + + @Test + public void testNonExistentStock(){ + setUp(); + try{ + List<Trade> fakeStockList = db.getTradeByStock("NONO", 1, start, end); + assertTrue(fakeStockList.isEmpty()); + + } catch(Exception e) { + System.out.println("Error in test"); + } + tearDown(); + } + + @Test + public void testFlippedDates(){ + setUp(); + try{ + List<Trade> gmeBadDatesList = db.getTradeByStock("GME", 1, end, start); + assertTrue(gmeBadDatesList.isEmpty()); + + } catch(Exception e) { + System.out.println("Error in test"); + } + tearDown(); + } + + @Test + public void testTradeByStockNameBuy(){ + setUp(); + try{ + List<Trade> gmeBuyList = db.getTradeByStock("GME", 1, start, end); + System.out.println(gmeBuyList); + assertEquals(gmeBuyList.size(), 6); + assertEquals(gmeBuyList.get(0).getId(), 482); + assertEquals(gmeBuyList.get(3).getId(), 149); + assertEquals(gmeBuyList.get(4).getId(), 275); + assertEquals(gmeBuyList.get(5).getId(), 30); + + + List<Trade> teslaBuyList = db.getTradeByStock("TSLA", 1, start, end); + assertEquals(teslaBuyList.size(), 16); + assertEquals(teslaBuyList.get(0).getId(), 328); + assertEquals(teslaBuyList.get(7).getId(), 241); + assertEquals(teslaBuyList.get(15).getId(), 774); + + } catch(Exception e) { + System.out.println("Error in testTradeByStockName"); + } + + tearDown(); + } + + @Test + public void testTradeByNameOrdering(){ + setUp(); + + try{ + List<Trade> gmeSellList = db.getTradeByStock("GME", 0, start, end); + for(int i = 1; i < gmeSellList.size(); i++){ + assertTrue(gmeSellList.get(i-1).getTimestamp() < gmeSellList.get(i).getTimestamp()); + } + + List<Trade> amznBuyList = db.getTradeByStock("AMZN", 1, start, end); + for(int i = 1; i < amznBuyList.size(); i++){ + assertTrue(amznBuyList.get(i-1).getTimestamp() < amznBuyList.get(i).getTimestamp()); + } + + } catch(Exception e) { + System.out.println("Error in test"); + } + tearDown(); + } +} |
