aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/edu/brown/cs/student/DBQuerierTest.java
diff options
context:
space:
mode:
authorJulia McCauley <skurvyj@gmail.com>2021-04-01 21:49:35 -0400
committerJulia McCauley <skurvyj@gmail.com>2021-04-01 21:49:35 -0400
commit6cf2414b421dc9270e980920978ae5aaa413c74a (patch)
treee5333c4e2d2522746ecd033a087a56034d44fc7f /src/test/java/edu/brown/cs/student/DBQuerierTest.java
parent22538c2a68160cd7edc47d7c3bcea54f84c97b72 (diff)
DatabaseQuerier fully functional for hub search purposes, some basic tests written
Diffstat (limited to 'src/test/java/edu/brown/cs/student/DBQuerierTest.java')
-rw-r--r--src/test/java/edu/brown/cs/student/DBQuerierTest.java120
1 files changed, 120 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..0d365ec
--- /dev/null
+++ b/src/test/java/edu/brown/cs/student/DBQuerierTest.java
@@ -0,0 +1,120 @@
+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;
+
+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);
+ 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();
+ }
+}