From 81d21bc789eea9fd2087beef6ac049afd8d25e0f Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 13:59:59 +0800 Subject: [PATCH 1/8] Add Assertion, Logging and Exception --- src/main/java/bookbob/Main.java | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/bookbob/Main.java b/src/main/java/bookbob/Main.java index 9511cb0c6f..82702f88fb 100644 --- a/src/main/java/bookbob/Main.java +++ b/src/main/java/bookbob/Main.java @@ -5,8 +5,12 @@ import java.io.IOException; import java.util.Scanner; +import java.util.logging.Level; +import java.util.logging.Logger; public class Main { + private static final Logger logger = Logger.getLogger("Main.class"); + public static void main(String[] args) throws IOException { System.out.println("Welcome to BookBob, Dr. Bob!"); @@ -40,12 +44,20 @@ public static void main(String[] args) throws IOException { break; case "delete": - if (inputArr.length > 1) { - String nric = inputArr[1].trim(); - commandHandler.delete(nric, records); - } else { - System.out.println("Please specify an NRIC to delete."); + logger.log(Level.INFO, "Processing patient record deletion"); + try { + if (inputArr.length > 1) { + String nric = inputArr[1].trim(); + commandHandler.delete(nric, records); + } else { + System.out.println("Please specify an NRIC to delete."); + logger.log(Level.INFO, "Empty NRIC inputted."); + } + } catch (Exception e) { + logger.log(Level.WARNING, "Error processing deletion"); + System.out.println("Error in deleting files, specific error: " + e.getMessage()); } + logger.log(Level.INFO, "Processing patient record deletion"); break; case "help": From f9842e74290b71a176534f7475db715176b3a636 Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 14:00:22 +0800 Subject: [PATCH 2/8] Modify the delete function --- .../bookbob/functions/CommandHandler.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/bookbob/functions/CommandHandler.java b/src/main/java/bookbob/functions/CommandHandler.java index 643fc846c4..82edca6d20 100644 --- a/src/main/java/bookbob/functions/CommandHandler.java +++ b/src/main/java/bookbob/functions/CommandHandler.java @@ -171,30 +171,33 @@ public void list(Records records) { } } - // @@Author G13nd0n + // @@author G13nd0n public void delete(String nric, Records records) throws IOException { + assert nric != null: + "Please provide a valid NRIC"; + List patients = records.getPatients(); - int initialPatientSize = patients.size(); - if (initialPatientSize == 0) { - System.out.println("There are no patients in the record currently."); + double initialSize = patients.size(); + if (patients.isEmpty()) { + System.out.println("No patients found."); return; } for (int i = 0; i < patients.size(); i++) { - Patient currentPatient = patients.get(i); - String patientNRIC = currentPatient.getNric(); - if (patientNRIC.equals(nric)) { + Patient patient = patients.get(i); + if (patient.getNric().equals(nric)) { patients.remove(i); - System.out.println("Patient " + currentPatient.getName() + ", " + patientNRIC + ", has been deleted."); + System.out.println("Patient with " + nric + " removed."); break; } } - if (patients.size() == initialPatientSize) { - System.out.println("Patient " + nric + " not found"); - } + if (patients.size() == initialSize) { + System.out.println("Patient with " + nric + " not found"); + } FileHandler.autosave(records); } + // Takes in an input string and determines whether to exit the program public void exit(String input) { if(input.equalsIgnoreCase("exit")) { From 70ddaf0cdc679b73e0cbfb552520813e7bb25a9b Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 14:00:40 +0800 Subject: [PATCH 3/8] Add JUnit test to find multiple outputs --- data/bookbob_data.txt | 3 ++ src/test/java/bookbob/BookBobTest.java | 40 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/data/bookbob_data.txt b/data/bookbob_data.txt index e69de29bb2..90387bc552 100644 --- a/data/bookbob_data.txt +++ b/data/bookbob_data.txt @@ -0,0 +1,3 @@ +Name: John Doe | NRIC: S1234567A | Phone Number: 98765432 | Date_Of_Birth: 13-04-2000 | Home Address: RC4 | Diagnosis: COVID-19 | Medication: Paracetamol; +Name: Will Smith | NRIC: S7654321B | Phone Number: 91234567 | Date_Of_Birth: 18-06-2003 | Home Address: CAPT | Diagnosis: AIDS | Medication: Paracetamol; +Name: John Smith | NRIC: S2468024A | Phone Number: 87654321 | Date_Of_Birth: 13-04-2002 | Home Address: CAPT | Diagnosis: Diabetes | Medication: Insulin; diff --git a/src/test/java/bookbob/BookBobTest.java b/src/test/java/bookbob/BookBobTest.java index 3aba55c712..799b3084b9 100644 --- a/src/test/java/bookbob/BookBobTest.java +++ b/src/test/java/bookbob/BookBobTest.java @@ -318,6 +318,46 @@ void testFind() throws IOException{ assertEquals(expectedOutput, outputStreamCaptor.toString().trim().replace(System.lineSeparator(), "\n")); } + + //@@author G13nd0n + @Test + void testFindName_MultipleOutputs() throws IOException { + command.add("add n/John Doe ic/S1234567A p/98765432 d/COVID-19 m/Paracetamol ha/RC4 dob/13-04-2000", + records); + command.add("add n/Will Smith ic/S7654321B p/91234567 d/AIDS m/Paracetamol ha/CAPT dob/18-06-2003", + records); + command.add("add n/John Smith ic/S2468024A p/87654321 d/Diabetes m/Insulin ha/CAPT dob/13-04-2002", + records); + String expectedOutput = "Patient John Doe with NRIC S1234567A added.\nPatient Will Smith with NRIC S7654321B " + + "added.\n" + "Patient John Smith with NRIC S2468024A added.\n"+ + "Matching patients:\nName: Will Smith, NRIC: S7654321B, " + + "Phone: 91234567, Diagnosis: AIDS, Medication: [Paracetamol], Address: CAPT, DOB: 18-06-2003\n" + + "Name: John Smith, NRIC: S2468024A, Phone: 87654321, Diagnosis: Diabetes, Medication: [Insulin], " + + "Address: CAPT, DOB: 13-04-2002"; + command.find("n/Smith", records); + assertEquals(expectedOutput, + outputStreamCaptor.toString().trim().replace(System.lineSeparator(), "\n")); + } + + //@@author G13nd0n + @Test + void testFindAddress_MultipleOutputs() throws IOException { + command.add("add n/John Doe ic/S1234567A p/98765432 d/COVID-19 m/Paracetamol ha/RC4 dob/13-04-2000", + records); + command.add("add n/Will Smith ic/S7654321B p/91234567 d/AIDS m/Paracetamol ha/CAPT dob/18-06-2003", + records); + command.add("add n/John Smith ic/S2468024A p/87654321 d/Diabetes m/Insulin ha/CAPT dob/13-04-2002", + records); + String expectedOutput = "Patient John Doe with NRIC S1234567A added.\nPatient Will Smith with NRIC S7654321B " + + "added.\n" + "Patient John Smith with NRIC S2468024A added.\n"+ + "Matching patients:\nName: Will Smith, NRIC: S7654321B, " + + "Phone: 91234567, Diagnosis: AIDS, Medication: [Paracetamol], Address: CAPT, DOB: 18-06-2003\n" + + "Name: John Smith, NRIC: S2468024A, Phone: 87654321, Diagnosis: Diabetes, Medication: [Insulin], " + + "Address: CAPT, DOB: 13-04-2002"; + command.find("ha/CAPT", records); + assertEquals(expectedOutput, + outputStreamCaptor.toString().trim().replace(System.lineSeparator(), "\n")); + } //@@author yentheng0110 @Test From 84ab9df44f1f73b40133afe66ef0895b02496ffd Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 14:58:07 +0800 Subject: [PATCH 4/8] Modify JUnit test and Delete statement --- data/bookbob_data.txt | 3 --- src/main/java/bookbob/functions/CommandHandler.java | 2 +- src/test/java/bookbob/BookBobTest.java | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/data/bookbob_data.txt b/data/bookbob_data.txt index 90387bc552..e69de29bb2 100644 --- a/data/bookbob_data.txt +++ b/data/bookbob_data.txt @@ -1,3 +0,0 @@ -Name: John Doe | NRIC: S1234567A | Phone Number: 98765432 | Date_Of_Birth: 13-04-2000 | Home Address: RC4 | Diagnosis: COVID-19 | Medication: Paracetamol; -Name: Will Smith | NRIC: S7654321B | Phone Number: 91234567 | Date_Of_Birth: 18-06-2003 | Home Address: CAPT | Diagnosis: AIDS | Medication: Paracetamol; -Name: John Smith | NRIC: S2468024A | Phone Number: 87654321 | Date_Of_Birth: 13-04-2002 | Home Address: CAPT | Diagnosis: Diabetes | Medication: Insulin; diff --git a/src/main/java/bookbob/functions/CommandHandler.java b/src/main/java/bookbob/functions/CommandHandler.java index 82edca6d20..614984f974 100644 --- a/src/main/java/bookbob/functions/CommandHandler.java +++ b/src/main/java/bookbob/functions/CommandHandler.java @@ -186,7 +186,7 @@ public void delete(String nric, Records records) throws IOException { Patient patient = patients.get(i); if (patient.getNric().equals(nric)) { patients.remove(i); - System.out.println("Patient with " + nric + " removed."); + System.out.println("Patient with NRIC " + nric + " has been deleted."); break; } } diff --git a/src/test/java/bookbob/BookBobTest.java b/src/test/java/bookbob/BookBobTest.java index 799b3084b9..c51a509bfc 100644 --- a/src/test/java/bookbob/BookBobTest.java +++ b/src/test/java/bookbob/BookBobTest.java @@ -90,7 +90,7 @@ void testDelete() throws IOException { command.add("add n/James-Ho ic/S9534567A p/91234567 d/Asthma m/Albuterol ha/NUS-PGPR dob/13121995", records); command.delete("S9534567A", records); String expectedOutput = "Patient James-Ho with NRIC S9534567A added.\n" + - "Patient James-Ho, S9534567A, has been deleted."; + "Patient James-Ho with NRIC S9534567A has been deleted."; assertEquals(expectedOutput, outputStreamCaptor.toString().trim().replace(System.lineSeparator(), "\n")); } @@ -236,7 +236,7 @@ void testDelete_existingPatient() throws IOException { command.delete("S1234567A", records); assertEquals(0, records.getPatients().size()); - assertEquals("Patient John Doe, S1234567A, has been deleted.", outputStreamCaptor.toString().trim()); + assertEquals("Patient John Doe with NRIC S1234567A has been deleted.", outputStreamCaptor.toString().trim()); } // @@ Author kaboomzxc From f670749717f4d7bf976a86318541109c0b58af65 Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 15:00:29 +0800 Subject: [PATCH 5/8] Fix checkstyle --- src/test/java/bookbob/BookBobTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/bookbob/BookBobTest.java b/src/test/java/bookbob/BookBobTest.java index c51a509bfc..0f309631b4 100644 --- a/src/test/java/bookbob/BookBobTest.java +++ b/src/test/java/bookbob/BookBobTest.java @@ -321,7 +321,7 @@ void testFind() throws IOException{ //@@author G13nd0n @Test - void testFindName_MultipleOutputs() throws IOException { + void testFindName_multipleOutputs() throws IOException { command.add("add n/John Doe ic/S1234567A p/98765432 d/COVID-19 m/Paracetamol ha/RC4 dob/13-04-2000", records); command.add("add n/Will Smith ic/S7654321B p/91234567 d/AIDS m/Paracetamol ha/CAPT dob/18-06-2003", @@ -341,7 +341,7 @@ void testFindName_MultipleOutputs() throws IOException { //@@author G13nd0n @Test - void testFindAddress_MultipleOutputs() throws IOException { + void testFindAddress_multipleOutputs() throws IOException { command.add("add n/John Doe ic/S1234567A p/98765432 d/COVID-19 m/Paracetamol ha/RC4 dob/13-04-2000", records); command.add("add n/Will Smith ic/S7654321B p/91234567 d/AIDS m/Paracetamol ha/CAPT dob/18-06-2003", From 154783ff8cdfbab2c143abaa287d337e83206989 Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 15:04:21 +0800 Subject: [PATCH 6/8] Fix JUnit Issue --- src/main/java/bookbob/functions/CommandHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/bookbob/functions/CommandHandler.java b/src/main/java/bookbob/functions/CommandHandler.java index 614984f974..3da2131529 100644 --- a/src/main/java/bookbob/functions/CommandHandler.java +++ b/src/main/java/bookbob/functions/CommandHandler.java @@ -186,7 +186,7 @@ public void delete(String nric, Records records) throws IOException { Patient patient = patients.get(i); if (patient.getNric().equals(nric)) { patients.remove(i); - System.out.println("Patient with NRIC " + nric + " has been deleted."); + System.out.println("Patient " + patient.getName() + " with NRIC " + nric + " has been deleted."); break; } } From 616efbb50ae6b59614f228516e670d9a0140447d Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 15:23:49 +0800 Subject: [PATCH 7/8] Modify the JUnit test --- src/main/java/bookbob/functions/CommandHandler.java | 2 +- src/test/java/bookbob/BookBobTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/bookbob/functions/CommandHandler.java b/src/main/java/bookbob/functions/CommandHandler.java index 3da2131529..fe4d727169 100644 --- a/src/main/java/bookbob/functions/CommandHandler.java +++ b/src/main/java/bookbob/functions/CommandHandler.java @@ -186,7 +186,7 @@ public void delete(String nric, Records records) throws IOException { Patient patient = patients.get(i); if (patient.getNric().equals(nric)) { patients.remove(i); - System.out.println("Patient " + patient.getName() + " with NRIC " + nric + " has been deleted."); + System.out.println("Patient " + patient.getName() + ", " + nric + " has been deleted."); break; } } diff --git a/src/test/java/bookbob/BookBobTest.java b/src/test/java/bookbob/BookBobTest.java index 0f309631b4..9ff9b6f336 100644 --- a/src/test/java/bookbob/BookBobTest.java +++ b/src/test/java/bookbob/BookBobTest.java @@ -90,7 +90,7 @@ void testDelete() throws IOException { command.add("add n/James-Ho ic/S9534567A p/91234567 d/Asthma m/Albuterol ha/NUS-PGPR dob/13121995", records); command.delete("S9534567A", records); String expectedOutput = "Patient James-Ho with NRIC S9534567A added.\n" + - "Patient James-Ho with NRIC S9534567A has been deleted."; + "Patient James-Ho, S9534567A, has been deleted."; assertEquals(expectedOutput, outputStreamCaptor.toString().trim().replace(System.lineSeparator(), "\n")); } @@ -236,7 +236,7 @@ void testDelete_existingPatient() throws IOException { command.delete("S1234567A", records); assertEquals(0, records.getPatients().size()); - assertEquals("Patient John Doe with NRIC S1234567A has been deleted.", outputStreamCaptor.toString().trim()); + assertEquals("Patient John Doe,S1234567A, has been deleted.", outputStreamCaptor.toString().trim()); } // @@ Author kaboomzxc From 28cbafd268d23ff53cd2aa80b8b36961aae1385e Mon Sep 17 00:00:00 2001 From: g13nd0n-admin Date: Mon, 14 Oct 2024 15:27:49 +0800 Subject: [PATCH 8/8] Update JUnit testing --- src/main/java/bookbob/functions/CommandHandler.java | 2 +- src/test/java/bookbob/BookBobTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/bookbob/functions/CommandHandler.java b/src/main/java/bookbob/functions/CommandHandler.java index fe4d727169..d47569a8d8 100644 --- a/src/main/java/bookbob/functions/CommandHandler.java +++ b/src/main/java/bookbob/functions/CommandHandler.java @@ -186,7 +186,7 @@ public void delete(String nric, Records records) throws IOException { Patient patient = patients.get(i); if (patient.getNric().equals(nric)) { patients.remove(i); - System.out.println("Patient " + patient.getName() + ", " + nric + " has been deleted."); + System.out.println("Patient " + patient.getName() + ", " + nric + ", has been deleted."); break; } } diff --git a/src/test/java/bookbob/BookBobTest.java b/src/test/java/bookbob/BookBobTest.java index 9ff9b6f336..e0fd97dd34 100644 --- a/src/test/java/bookbob/BookBobTest.java +++ b/src/test/java/bookbob/BookBobTest.java @@ -236,7 +236,7 @@ void testDelete_existingPatient() throws IOException { command.delete("S1234567A", records); assertEquals(0, records.getPatients().size()); - assertEquals("Patient John Doe,S1234567A, has been deleted.", outputStreamCaptor.toString().trim()); + assertEquals("Patient John Doe, S1234567A, has been deleted.", outputStreamCaptor.toString().trim()); } // @@ Author kaboomzxc