mirror of
https://github.com/smyalygames/kahoot-challenge-2025.git
synced 2025-05-18 15:14:12 +02:00
feat(test): add testing with files in Main
This commit is contained in:
parent
80c7f92e88
commit
3be78c0e9e
@ -6,6 +6,8 @@ import java.io.IOException;
|
|||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
@ -74,8 +76,63 @@ class MainTest {
|
|||||||
assertEquals("Invalid arguments, you need to define the text file to read from!\n", outContent.toString());
|
assertEquals("Invalid arguments, you need to define the text file to read from!\n", outContent.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("Invalid/Nonexistent file")
|
||||||
|
void invalidFile() {
|
||||||
|
arguments = new String[1];
|
||||||
|
|
||||||
|
arguments[0] = "doesNotExist.txt";
|
||||||
|
|
||||||
|
assertThrowsExactly(RuntimeException.class, () -> Main.main(arguments));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Normal test run")
|
@DisplayName("Normal test run")
|
||||||
void normalRun() {
|
void normalRun() throws IOException {
|
||||||
|
// List of emails to add to the file
|
||||||
|
List<String> emails = new ArrayList<>() {{
|
||||||
|
add("johndoe@gmail.com");
|
||||||
|
add("janedoe@gmail.com");
|
||||||
|
add("person@outlook.com");
|
||||||
|
add("totallylegitpresident@gmail.com");
|
||||||
|
add("google@yahoo.com");
|
||||||
|
add("person1st@outlook.com");
|
||||||
|
add("google+scam@gmail.com");
|
||||||
|
}};
|
||||||
|
|
||||||
|
Files.write(tempFile, emails);
|
||||||
|
|
||||||
|
// The expected output - \n has been added on the end due to the program quitting at the end
|
||||||
|
String expectedOutput = "gmail.com 4\noutlook.com 2\nyahoo.com 1\n";
|
||||||
|
|
||||||
|
// Add argument for filepath
|
||||||
|
arguments[0] = tempFile.toString();
|
||||||
|
|
||||||
|
Main.main(arguments);
|
||||||
|
|
||||||
|
assertEquals(expectedOutput, outContent.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("File with invalid emails")
|
||||||
|
void brokenData() throws IOException {
|
||||||
|
// List of emails, with some of the emails being invalid
|
||||||
|
List<String> emails = new ArrayList<>() {{
|
||||||
|
add("gmail.com");
|
||||||
|
add("janedoe@gmail.com");
|
||||||
|
add("person@outlook.com");
|
||||||
|
add("totallylegit@president@gmail.com");
|
||||||
|
add("google@yahoo");
|
||||||
|
add("person1st@outlook,com");
|
||||||
|
add("google+scam@gmail.com");
|
||||||
|
}};
|
||||||
|
|
||||||
|
Files.write(tempFile, emails);
|
||||||
|
|
||||||
|
// Add argument for filepath
|
||||||
|
arguments[0] = tempFile.toString();
|
||||||
|
|
||||||
|
// Checks for the fail from the email validation
|
||||||
|
assertThrowsExactly(IllegalArgumentException.class, () -> Main.main(arguments));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user