From b3f544333b2301d9221f77c04613f8872653b44a Mon Sep 17 00:00:00 2001
From: ahmadaldhalaan <46313624+ahmadaldhalaan@users.noreply.github.com>
Date: Wed, 4 Nov 2020 01:00:32 +1100
Subject: [PATCH] uploaded deadPatient sql files, updated TestDataGenerator and
 CauseOfDeathTrendsReportTest.java test file

---
 iTrust/sql/data/deadPatient1.sql              |  6 ++
 iTrust/sql/data/deadPatient10.sql             |  6 ++
 iTrust/sql/data/deadPatient2.sql              |  6 ++
 iTrust/sql/data/deadPatient3.sql              |  6 ++
 iTrust/sql/data/deadPatient4.sql              |  6 ++
 iTrust/sql/data/deadPatient5.sql              |  6 ++
 iTrust/sql/data/deadPatient6.sql              |  6 ++
 iTrust/sql/data/deadPatient7.sql              |  6 ++
 iTrust/sql/data/deadPatient8.sql              |  6 ++
 iTrust/sql/data/deadPatient9.sql              |  6 ++
 .../deaths/CauseOfDeathTrendsReportTest.java  | 90 +++++++++++++++++++
 .../datagenerators/TestDataGenerator.java     | 40 +++++++++
 12 files changed, 190 insertions(+)
 create mode 100644 iTrust/sql/data/deadPatient1.sql
 create mode 100644 iTrust/sql/data/deadPatient10.sql
 create mode 100644 iTrust/sql/data/deadPatient2.sql
 create mode 100644 iTrust/sql/data/deadPatient3.sql
 create mode 100644 iTrust/sql/data/deadPatient4.sql
 create mode 100644 iTrust/sql/data/deadPatient5.sql
 create mode 100644 iTrust/sql/data/deadPatient6.sql
 create mode 100644 iTrust/sql/data/deadPatient7.sql
 create mode 100644 iTrust/sql/data/deadPatient8.sql
 create mode 100644 iTrust/sql/data/deadPatient9.sql
 create mode 100644 iTrust/test/edu/ncsu/csc/itrust/unit/dao/deaths/CauseOfDeathTrendsReportTest.java

diff --git a/iTrust/sql/data/deadPatient1.sql b/iTrust/sql/data/deadPatient1.sql
new file mode 100644
index 0000000..cdd9eb0
--- /dev/null
+++ b/iTrust/sql/data/deadPatient1.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (81,'Male','2019-07-01',84.50);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (201,9000000000,81);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient10.sql b/iTrust/sql/data/deadPatient10.sql
new file mode 100644
index 0000000..2660e9b
--- /dev/null
+++ b/iTrust/sql/data/deadPatient10.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (90,'Male','2019-01-01',487.00);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (210,9000000001,90);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient2.sql b/iTrust/sql/data/deadPatient2.sql
new file mode 100644
index 0000000..1e61529
--- /dev/null
+++ b/iTrust/sql/data/deadPatient2.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (82,'Male','2018-07-01',11.40);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (202,9000000000,82);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient3.sql b/iTrust/sql/data/deadPatient3.sql
new file mode 100644
index 0000000..65a41cd
--- /dev/null
+++ b/iTrust/sql/data/deadPatient3.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (83,'Female','2018-07-01',11.40);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (203,9000000000,83);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient4.sql b/iTrust/sql/data/deadPatient4.sql
new file mode 100644
index 0000000..a26c780
--- /dev/null
+++ b/iTrust/sql/data/deadPatient4.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (84,'Male','2018-12-01',11.40);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (204,9000000000,84);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient5.sql b/iTrust/sql/data/deadPatient5.sql
new file mode 100644
index 0000000..4affb62
--- /dev/null
+++ b/iTrust/sql/data/deadPatient5.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (85,'Male','2020-01-01',84.50);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (205,9000000000,85);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient6.sql b/iTrust/sql/data/deadPatient6.sql
new file mode 100644
index 0000000..f0bf0ef
--- /dev/null
+++ b/iTrust/sql/data/deadPatient6.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (86,'Male','2018-12-01',487.00);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (206,9000000000,86);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient7.sql b/iTrust/sql/data/deadPatient7.sql
new file mode 100644
index 0000000..8e86cd2
--- /dev/null
+++ b/iTrust/sql/data/deadPatient7.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (87,'Female','2019-12-01',487.00);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (207,9000000001,87);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient8.sql b/iTrust/sql/data/deadPatient8.sql
new file mode 100644
index 0000000..d2d6789
--- /dev/null
+++ b/iTrust/sql/data/deadPatient8.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (88,'Female','2020-07-01',487.00);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (208,9000000001,88);
\ No newline at end of file
diff --git a/iTrust/sql/data/deadPatient9.sql b/iTrust/sql/data/deadPatient9.sql
new file mode 100644
index 0000000..84f08ea
--- /dev/null
+++ b/iTrust/sql/data/deadPatient9.sql
@@ -0,0 +1,6 @@
+INSERT INTO patients (MID, Gender, DateOfDeath, CauseOfDeath) 
+VALUES (89,'Male','2020-01-01',487.00);
+
+
+INSERT INTO officevisits(id,HCPID,PatientID)
+VALUES (209,9000000001,89);
\ No newline at end of file
diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/dao/deaths/CauseOfDeathTrendsReportTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/deaths/CauseOfDeathTrendsReportTest.java
new file mode 100644
index 0000000..b79acef
--- /dev/null
+++ b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/deaths/CauseOfDeathTrendsReportTest.java
@@ -0,0 +1,90 @@
+package edu.ncsu.csc.itrust.UC20;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.sql.Date;
+
+import junit.framework.TestCase;
+import edu.ncsu.csc.itrust.dao.mysql.CauseOfDeathTrendsReportDAO;
+import edu.ncsu.csc.itrust.unit.datagenerators.TestDataGenerator;
+import edu.ncsu.csc.itrust.unit.testutils.TestDAOFactory;
+import edu.ncsu.csc.itrust.exception.DBException;
+
+
+public class CauseOfDeathTrendsReportTest extends TestCase {
+    
+    private TestDataGenerator gen = new TestDataGenerator();
+    private CauseOfDeathTrendsReportDAO cod;
+    
+    @Override
+	protected void setUp() throws Exception {
+		gen = new TestDataGenerator();
+		gen.clearAllTables();
+		gen.deadpatient1();
+        gen.deadpatient2();
+        gen.deadpatient3();
+        gen.deadpatient4();
+        gen.deadpatient5();
+        gen.deadpatient6();
+        gen.deadpatient7();
+        gen.deadpatient8();
+        gen.deadpatient9();
+        gen.deadpatient10();
+        gen.icd9cmCodes();
+
+        cod = new CauseOfDeathTrendsReportDAO(TestDAOFactory.getTestInstance());
+    }
+    
+    public void testPatientsForHCPValid() throws Exception {
+        List<Long> deaths = cod.getPatientsForHCP(Long.parseLong("9000000000"));
+        assertEquals(6, deaths.size());
+        assertEquals(Long.valueOf(81), deaths.get(0));
+        assertEquals(Long.valueOf(82), deaths.get(1));
+        assertEquals(Long.valueOf(83), deaths.get(2));
+        assertEquals(Long.valueOf(84), deaths.get(3));
+        assertEquals(Long.valueOf(85), deaths.get(4));
+        assertEquals(Long.valueOf(86), deaths.get(5));
+    }
+
+    /*public void testPatientsForHCPInvalidID() throws Exception {
+		try {
+			cod.getPatientsForHCP(Long("0"));
+			fail("Should have failed but didn't");
+		} catch (FormValidationException e) {
+			assertEquals(1, e.getErrorList().size());
+			assertEquals("HCP ID must be valid!", e.getErrorList().get(0));
+		}
+    }
+    */
+
+    public void testTopTwoCorrectForHCPValid() throws Exception {
+        List<String> deaths = cod.getTopTwoDeathsForHCP(Long.parseLong("9000000000"), "All", Date.valueOf("2018-01-01"), Date.valueOf("2020-12-31"));
+        assertEquals(2, deaths.size());
+        assertEquals("Name: Tuberculosis of the lung, Code: 11.40, Deaths: 3", deaths.get(0));
+        assertEquals("Name: Malaria, Code: 84.50, Deaths: 2", deaths.get(1));
+    }
+
+    public void testTopTwoCorrectMaleForHCPValid() throws Exception {
+        List<String> deaths = cod.getTopTwoDeathsForHCP(Long.parseLong("9000000000"), "Male", Date.valueOf("2018-01-01"), Date.valueOf("2020-12-31"));
+        assertEquals(2, deaths.size());
+        assertEquals("Name: Malaria, Code: 84.50, Deaths: 2", deaths.get(0));
+        assertEquals("Name: Tuberculosis of the lung, Code: 11.40, Deaths: 2", deaths.get(1));
+    }
+
+    /*public void testTopTwoCorrectForAllValid() throws Exception {
+        List<String> deaths = cod.getTopTwoDeathsForAll("All", Date.valueOf("2018-01-01"), Date.valueOf("2020-12-31"));
+        assertEquals(2, deaths.size());
+        assertEquals("Name: Influenza, Code: 487.00, Deaths: 5", deaths.get(0));
+        assertEquals("Name: Tuberculosis of the lung, Code: 11.40, Deaths: 3", deaths.get(1));
+    }*/
+
+    public void testCodeNameExists() throws Exception {
+        String deaths = cod.getCodeName("84.50");
+        assertEquals("Malaria", deaths);
+    }
+
+    public void testCodeNameDoesNotExist() throws Exception {
+        String deaths = cod.getCodeName("8450");
+        assertEquals(null, deaths);
+    }
+}
\ No newline at end of file
diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java b/iTrust/test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java
index 0303712..7b87da2 100644
--- a/iTrust/test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java
+++ b/iTrust/test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java
@@ -121,6 +121,46 @@ public class TestDataGenerator {
 				+ "/deadRecurringPatients.sql");
 	}
 
+	public void deadPatient1() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient1.sql");
+	}
+	
+	public void deadPatient2() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient2.sql");
+	}
+	
+	public void deadPatient3() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient3.sql");
+	}
+	
+	public void deadPatient4() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient4.sql");
+	}
+	
+	public void deadPatient5() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient5.sql");
+	}
+	
+	public void deadPatient6() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient6.sql");
+	}
+	
+	public void deadPatient7() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient7.sql");
+	}
+	
+	public void deadPatient8() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient8.sql");
+	}
+	
+	public void deadPatient9() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient9.sql");
+	}
+	
+	public void deadPatient10() throws FileNotFoundException, SQLException, IOException {
+		new DBBuilder(factory).executeSQLFile(DIR + "/deadPatient10.sql");
+	}
+
 	public void diagnosedPatient_OldAndNewVisit() throws SQLException,
 			FileNotFoundException, IOException {
 		new DBBuilder(factory).executeSQLFile(DIR
-- 
GitLab