From 941439d6347d9df700203313a80cb5adb45cc5c2 Mon Sep 17 00:00:00 2001
From: inseo <i32kim@uwaterloo.ca>
Date: Mon, 13 Feb 2023 23:59:15 -0500
Subject: [PATCH] JUNIT5 has been added in dependencies in all gradle files.
 Implemented two unit tests for file management. Fixed bug.

---
 .idea/modules.xml                             |  8 +++++++
 .../utilities/notes-multi.utilities.test.iml  |  8 +++++++
 app/build.gradle                              |  5 +++++
 console/build.gradle                          |  5 +++++
 .../kotlin/notes/multi/console/Console.kt     |  2 +-
 utilities/build.gradle                        |  5 +++++
 .../notes/multi/utilities/Filemanager.kt      |  7 +++++-
 utilities/src/test/kotlin/FilemanagerTest.kt  | 22 +++++++++++++++++++
 8 files changed, 60 insertions(+), 2 deletions(-)
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/modules/utilities/notes-multi.utilities.test.iml
 create mode 100644 utilities/src/test/kotlin/FilemanagerTest.kt

diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..7220744
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/utilities/notes-multi.utilities.test.iml" filepath="$PROJECT_DIR$/.idea/modules/utilities/notes-multi.utilities.test.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules/utilities/notes-multi.utilities.test.iml b/.idea/modules/utilities/notes-multi.utilities.test.iml
new file mode 100644
index 0000000..65dae19
--- /dev/null
+++ b/.idea/modules/utilities/notes-multi.utilities.test.iml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$/../../../utilities/src/test">
+      <sourceFolder url="file://$MODULE_DIR$/../../../utilities/src/test/kotlin" isTestSource="true" />
+    </content>
+  </component>
+</module>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e3faad0..840aa75 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,9 +9,14 @@ plugins {
 dependencies {
     implementation 'org.apache.commons:commons-text'
     implementation project(':utilities')
+    testImplementation 'org.jetbrains.kotlin:kotlin-test'
 }
 
 application {
     // Define the main class for the application.
     mainClass = 'notes.multi.app.AppKt'
 }
+
+test {
+    useJUnitPlatform()
+}
diff --git a/console/build.gradle b/console/build.gradle
index 178bd49..127f593 100644
--- a/console/build.gradle
+++ b/console/build.gradle
@@ -9,9 +9,14 @@ plugins {
 dependencies {
     implementation 'org.apache.commons:commons-text'
     implementation project(':utilities')
+    testImplementation 'org.jetbrains.kotlin:kotlin-test'
 }
 
 application {
     // Define the main class for the application.
     mainClass = 'notes.multi.console.ConsoleKt'
 }
+
+test {
+    useJUnitPlatform()
+}
diff --git a/console/src/main/kotlin/notes/multi/console/Console.kt b/console/src/main/kotlin/notes/multi/console/Console.kt
index 647d117..7db3c27 100644
--- a/console/src/main/kotlin/notes/multi/console/Console.kt
+++ b/console/src/main/kotlin/notes/multi/console/Console.kt
@@ -9,6 +9,6 @@ fun main() {
     // thesea re test functions feel free to use
     val f = Filemanager("${System.getProperty("user.dir")}/test/", "hello.txt")
     f.writefile("hello world")
-   println(f.openfile())
     f.deletefile()
+    println(f.openfile())
 }
diff --git a/utilities/build.gradle b/utilities/build.gradle
index 7ebfb8e..5a6881d 100644
--- a/utilities/build.gradle
+++ b/utilities/build.gradle
@@ -8,4 +8,9 @@ plugins {
 
 dependencies {
     api project(':list')
+    testImplementation 'org.jetbrains.kotlin:kotlin-test'
+}
+
+test {
+    useJUnitPlatform()
 }
diff --git a/utilities/src/main/kotlin/notes/multi/utilities/Filemanager.kt b/utilities/src/main/kotlin/notes/multi/utilities/Filemanager.kt
index 0f0e3bd..2551ace 100644
--- a/utilities/src/main/kotlin/notes/multi/utilities/Filemanager.kt
+++ b/utilities/src/main/kotlin/notes/multi/utilities/Filemanager.kt
@@ -24,7 +24,9 @@ class Filemanager(private val dir: String, private val name: String) {
     // create and write to that file
     fun writefile(line:String) {
         filepath.writeText(line)
-        listfiles.add(filepath)
+        if (!listfiles.contains(filepath)) {
+            listfiles.add(filepath)
+        }
     }
 
     // opens and read the existing file
@@ -39,6 +41,9 @@ class Filemanager(private val dir: String, private val name: String) {
 
     fun deletefile():Boolean {
         listfiles.remove(filepath)
+        for (i in listfiles) {
+            println("Not Deleted!")
+        }
         return filepath.delete()
     }
 
diff --git a/utilities/src/test/kotlin/FilemanagerTest.kt b/utilities/src/test/kotlin/FilemanagerTest.kt
new file mode 100644
index 0000000..e2eb36a
--- /dev/null
+++ b/utilities/src/test/kotlin/FilemanagerTest.kt
@@ -0,0 +1,22 @@
+import notes.multi.utilities.Filemanager
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+internal class FilemanagerTest {
+    private val testmanager: Filemanager = Filemanager("${System.getProperty("user.dir")}/testfolder/", "hello.txt")
+
+    @Test
+    fun createreadfile() {
+        val expected = "hello from the moon"
+        testmanager.writefile(expected)
+        assertEquals(expected, testmanager.openfile())
+    }
+
+    @Test
+    fun ReadNoneExistingFile() {
+        val expected = ""
+        testmanager.writefile("walking to the mooon")
+        testmanager.deletefile()
+        assertEquals(expected, testmanager.openfile())
+    }
+}
\ No newline at end of file
-- 
GitLab