aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/musichub/main/Main.java14
-rw-r--r--src/main/java/musichub/util/LogHandler.java68
-rw-r--r--src/main/java/musichub/util/PathValidation.java (renamed from src/main/java/musichub/business/PathValidation.java)2
-rw-r--r--src/test/java/musichub/util/LogHandlerTest.java41
-rw-r--r--src/test/java/musichub/util/PathValidationTest.java (renamed from src/test/java/musichub/business/PathValidationTest.java)4
5 files changed, 124 insertions, 5 deletions
diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
index e2e4731..e7ca721 100644
--- a/src/main/java/musichub/main/Main.java
+++ b/src/main/java/musichub/main/Main.java
@@ -1,6 +1,7 @@
package musichub.main;
import musichub.business.*;
+import musichub.util.LogHandler;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
@@ -9,7 +10,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
-import static musichub.business.PathValidation.isPathValid;
+import static musichub.util.PathValidation.isPathValid;
public class Main {
public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
@@ -93,7 +94,9 @@ public class Main {
System.out.println("Song content: ");
String content = scan.nextLine();
if (!isPathValid(content)) {
- System.out.println("The music file was not found with the path you've provided.\nType h for available commands");
+ String logMsg = "The music file was not found with the path you've provided.";
+ LogHandler.write(logMsg, "WARNING"); //write a line in the log file
+ System.out.println(logMsg + "\nType h for available commands");
choice = scan.nextLine();
break;
}
@@ -240,6 +243,12 @@ public class Main {
printAvailableCommands();
choice = scan.nextLine();
break;
+ case 'o':
+ //consult the app logs
+ LogHandler.read();
+ System.out.println("Type h for available commands");
+ choice = scan.nextLine();
+ break;
default:
break;
@@ -260,6 +269,7 @@ public class Main {
System.out.println("p: create a new playlist from existing songs and audio books");
System.out.println("-: delete an existing playlist");
System.out.println("s: save elements, albums, playlists");
+ System.out.println("o: consult the app logs");
System.out.println("q: quit program");
}
} \ No newline at end of file
diff --git a/src/main/java/musichub/util/LogHandler.java b/src/main/java/musichub/util/LogHandler.java
new file mode 100644
index 0000000..988b149
--- /dev/null
+++ b/src/main/java/musichub/util/LogHandler.java
@@ -0,0 +1,68 @@
+package musichub.util;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardOpenOption;
+import java.sql.Timestamp;
+
+/**
+ * Class offering a log writing method.
+ *
+ * @author Aimeric ADJUTOR
+ * @version 1.0
+ */
+
+public final class LogHandler {
+
+ /**
+ * Method that just throws an AssertionError if the class is called
+ *
+ * @throws AssertionError you can't instantiate this class
+ * @author Aimeric ADJUTOR
+ */
+
+ public LogHandler() {
+ throw new AssertionError("You just can't instantiate this class.");
+ }
+
+ /**
+ * Method that writes a log message to spoteezer.log
+ *
+ * @param msg the message to write
+ * @param type the type of log
+ * @throws IOException if the file's not there
+ */
+ public static void write(String msg, String type) throws IOException {
+
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+
+ //Create the log using the given message
+ String logMsg = "\n[" + timestamp + "] " + type + ": " + msg;
+
+ // Define the file name of the file
+ Path fileName = Path.of("log/spoteezer.log");
+
+ // Write into the file
+ Files.writeString(fileName, logMsg, StandardOpenOption.APPEND);
+
+
+ }
+
+ /**
+ * Method that prints the content of spoteezer.log
+ *
+ * @throws IOException if the file's not there
+ */
+ public static void read() throws IOException {
+ Path fileName = Path.of("log/spoteezer.log");
+
+ // Read the content of the file
+ String file_content = Files.readString(fileName);
+
+ // Print the content inside the file
+ System.out.println("\n" + file_content + "\n");
+
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/util/PathValidation.java
index b0281ba..df11388 100644
--- a/src/main/java/musichub/business/PathValidation.java
+++ b/src/main/java/musichub/util/PathValidation.java
@@ -1,4 +1,4 @@
-package musichub.business;
+package musichub.util;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
new file mode 100644
index 0000000..17b47f6
--- /dev/null
+++ b/src/test/java/musichub/util/LogHandlerTest.java
@@ -0,0 +1,41 @@
+package musichub.util;
+
+
+import org.junit.jupiter.api.Test;
+
+import java.io.IOException;
+
+import static musichub.util.LogHandler.read;
+import static musichub.util.LogHandler.write;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class LogHandlerTest {
+ @Test
+ void testWrite() {
+ try {
+ write("JUnit test", "INFO");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ void testRead() {
+ try {
+ read();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ void testLogHandlerClass() {
+ try {
+ LogHandler logHandlerClass = new LogHandler();
+ } catch (Error ex) {
+ assertTrue(ex instanceof AssertionError);
+ assertEquals("You just can't instantiate this class.", ex.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/util/PathValidationTest.java
index fffbdde..4c7a3d6 100644
--- a/src/test/java/musichub/business/PathValidationTest.java
+++ b/src/test/java/musichub/util/PathValidationTest.java
@@ -1,9 +1,9 @@
-package musichub.business;
+package musichub.util;
import org.junit.jupiter.api.Test;
-import static musichub.business.PathValidation.isPathValid;
+import static musichub.util.PathValidation.isPathValid;
import static org.junit.jupiter.api.Assertions.*;
public class PathValidationTest {