Skip to content

Commit

Permalink
Fix Junit unit testing
Browse files Browse the repository at this point in the history
  • Loading branch information
Howlong11 committed Feb 20, 2024
1 parent a46b855 commit 78d95b0
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 37 deletions.
5 changes: 4 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ repositories {
mavenCentral()
}

mainClassName = 'lemona.Launcher'


dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
Expand Down Expand Up @@ -48,7 +51,7 @@ application {
}

shadowJar {
archiveBaseName = "duke"
archiveBaseName = "Lemona"
archiveClassifier = null
dependsOn("distZip", "distTar")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public String toString(String string) {
break;
}
str = str + "\nI suggest you take some LEMONA";
System.out.println(str);
return str;
}
}
7 changes: 5 additions & 2 deletions src/main/java/lemona/oop/Parser.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,18 @@ public static String[] trim(String input) {
public static String[] parseDates(String[] trimmedInput) throws MissingDescriptionException {
switch (trimmedInput[0]) {
case ("deadline") :
if (trimmedInput.length == 1 || trimmedInput[1].split("/by ").length == 1) {
if (trimmedInput.length == 1 || trimmedInput[1].split("/by ").length == 1
|| trimmedInput[1].split("/by ")[0].equals("")) {
System.out.println();
throw new MissingDescriptionException();
}

String[] content = trimmedInput[1].split("/by ");
String[] deadlineInput = {trimmedInput[0], content[0], content[1]};
return deadlineInput;
case ("event") :
if (trimmedInput.length == 1 || trimmedInput[1].split("/from ").length == 1) {
if (trimmedInput.length == 1 || trimmedInput[1].split("/from ").length == 1
|| trimmedInput[1].split("/from ")[0].equals("")) {
throw new MissingDescriptionException();
}

Expand Down
4 changes: 3 additions & 1 deletion src/main/java/lemona/oop/Ui.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,11 @@ public String showLoadingError() {
* @return the string message to be printed.
*/
public String showDateTimeParsingError() {
return "I think you haven't had enough vitamin C."
String str = "I think you haven't had enough vitamin C."
+ "\nYour time format should be :"
+ "\n\t{ dd/MM/yyyy HHmm }"
+ "\nI suggest you take some LEMONA.";
System.out.println(str);
return str;
}
}
53 changes: 25 additions & 28 deletions src/test/java/ParserTest.java
Original file line number Diff line number Diff line change
@@ -1,40 +1,37 @@
package oop;

import lemona.oop.Storage;
import lemona.exceptions.MissingDescriptionException;
import lemona.oop.Parser;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;

import lemona.task.Task;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
public class StorageTest {
public class ParserTest {

@Test
public void stringToList_givenString_success(){
ArrayList<Task> tasks = new ArrayList<>();
String input = "[T] / [ ] / vitamin c";
Storage storage = new Storage("data/lemona.txt");
tasks = storage.stringToList(tasks, input);
assertEquals("[T][ ] vitamin c", tasks.get(0).print());
public void parseDates_givenString_success() {
try {
String input = "deadline take lemona /by 01/11/2022 2359";
String[] output = Parser.parseDates(Parser.trim(input));
String[] expectedOutput = {"deadline", "take lemona ","01/11/2022 2359"};
assertEquals(expectedOutput[0], output[0]);
assertEquals(expectedOutput[1], output[1]);
assertEquals(expectedOutput[2], output[2]);
} catch (MissingDescriptionException e) {
}
}

@Test void stringToList_dateTimeParse_exceptionThrown() {
ArrayList<Task> tasks = new ArrayList<>();
String input = "[D] / [ ] / vitamin c / 1/1/1";
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
Storage storage = new Storage("data/lemona.txt");
tasks = storage.stringToList(tasks, input);
System.setOut(System.out);
String actualOutput = outContent.toString().trim();
String output = "I think you haven't had enough vitamin C."
+ "\nYour time format should be :"
+ "\n\t{ dd/MM/yyyy HHmm }"
+ "\nI suggest you take some LEMONA.";

assertEquals(output.trim(), actualOutput.replace("\r\n", "\n"));
@Test
void parseDates_missingDescription_exceptionThrown() {
String input = "deadline /by 01/11/2022 2359";
try {
Parser.parseDates(Parser.trim(input));
} catch (MissingDescriptionException e) {
String expectedOutput = "I think you haven't had enough vitamin K." +
"\nYour input should be in format of:"
+ "\n\t{ deadline (Task) (/by DueDate) }"
+ "\nI suggest you take some LEMONA.";
assertEquals(expectedOutput, e.toString(Parser.trim(input)[0]));
}
}
}
8 changes: 3 additions & 5 deletions src/test/java/TaskListTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,9 @@ public void add_duplicateTasks_exceptionThrown() {

System.setOut(System.out);
String actualOutput = outContent.toString().trim();
String output = "\t______________________________________________________"
+ "\n\t I think you haven't had enough vitamin D."
+ "\n\t Your task is already existing in the list!"
+ "\n\t I suggest you take some LEMONA"
+ "\n\t______________________________________________________";
String output = "I think you haven't had enough vitamin D."
+ "\nYour task is already existing in the list!"
+ "\nI suggest you take some LEMONA";

assertEquals(output.trim(), actualOutput.replace("\r\n", "\n"));
}
Expand Down

0 comments on commit 78d95b0

Please sign in to comment.