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