diff --git a/.gitignore b/.gitignore
index ac96206f..f7ab597e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
+build/
.gradle/
\ No newline at end of file
diff --git a/.gradle/8.14/executionHistory/executionHistory.bin b/.gradle/8.14/executionHistory/executionHistory.bin
new file mode 100644
index 00000000..0e40d550
Binary files /dev/null and b/.gradle/8.14/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.14/expanded/expanded.lock b/.gradle/8.14/expanded/expanded.lock
new file mode 100644
index 00000000..e4bca16e
Binary files /dev/null and b/.gradle/8.14/expanded/expanded.lock differ
diff --git a/.gradle/8.14/fileHashes/resourceHashesCache.bin b/.gradle/8.14/fileHashes/resourceHashesCache.bin
new file mode 100644
index 00000000..627fd171
Binary files /dev/null and b/.gradle/8.14/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/9.1.0/checksums/checksums.lock b/.gradle/9.1.0/checksums/checksums.lock
new file mode 100644
index 00000000..c291e3a8
Binary files /dev/null and b/.gradle/9.1.0/checksums/checksums.lock differ
diff --git a/.gradle/9.1.0/checksums/md5-checksums.bin b/.gradle/9.1.0/checksums/md5-checksums.bin
new file mode 100644
index 00000000..d0012b1a
Binary files /dev/null and b/.gradle/9.1.0/checksums/md5-checksums.bin differ
diff --git a/.gradle/9.1.0/checksums/sha1-checksums.bin b/.gradle/9.1.0/checksums/sha1-checksums.bin
new file mode 100644
index 00000000..e0818a62
Binary files /dev/null and b/.gradle/9.1.0/checksums/sha1-checksums.bin differ
diff --git a/.gradle/9.1.0/executionHistory/executionHistory.bin b/.gradle/9.1.0/executionHistory/executionHistory.bin
new file mode 100644
index 00000000..76d8a3ad
Binary files /dev/null and b/.gradle/9.1.0/executionHistory/executionHistory.bin differ
diff --git a/.gradle/9.1.0/executionHistory/executionHistory.lock b/.gradle/9.1.0/executionHistory/executionHistory.lock
new file mode 100644
index 00000000..d242ea5b
Binary files /dev/null and b/.gradle/9.1.0/executionHistory/executionHistory.lock differ
diff --git a/.gradle/9.1.0/expanded/expanded.lock b/.gradle/9.1.0/expanded/expanded.lock
new file mode 100644
index 00000000..5bc641f6
Binary files /dev/null and b/.gradle/9.1.0/expanded/expanded.lock differ
diff --git a/build/test-results/test/binary/output.bin.idx b/.gradle/9.1.0/fileChanges/last-build.bin
similarity index 100%
rename from build/test-results/test/binary/output.bin.idx
rename to .gradle/9.1.0/fileChanges/last-build.bin
diff --git a/.gradle/9.1.0/fileHashes/fileHashes.bin b/.gradle/9.1.0/fileHashes/fileHashes.bin
new file mode 100644
index 00000000..2c48a686
Binary files /dev/null and b/.gradle/9.1.0/fileHashes/fileHashes.bin differ
diff --git a/.gradle/9.1.0/fileHashes/fileHashes.lock b/.gradle/9.1.0/fileHashes/fileHashes.lock
new file mode 100644
index 00000000..1e6947cf
Binary files /dev/null and b/.gradle/9.1.0/fileHashes/fileHashes.lock differ
diff --git a/.gradle/9.1.0/fileHashes/resourceHashesCache.bin b/.gradle/9.1.0/fileHashes/resourceHashesCache.bin
new file mode 100644
index 00000000..19617dc6
Binary files /dev/null and b/.gradle/9.1.0/fileHashes/resourceHashesCache.bin differ
diff --git a/build/test-results/test/binary/output.bin b/.gradle/9.1.0/gc.properties
similarity index 100%
rename from build/test-results/test/binary/output.bin
rename to .gradle/9.1.0/gc.properties
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
index ef901a0c..9fa4503b 100644
--- a/.gradle/buildOutputCleanup/cache.properties
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -1,2 +1,2 @@
-#Wed Dec 03 17:27:55 CET 2025
+#Wed Dec 03 20:34:21 CET 2025
gradle.version=8.14
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 00000000..affeca69
Binary files /dev/null and b/.gradle/file-system.probe differ
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..ffe7c8fc
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/Template.test.iml b/.idea/modules/Template.test.iml
new file mode 100644
index 00000000..bb71afac
--- /dev/null
+++ b/.idea/modules/Template.test.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 6fbda819..ea70b117 100644
--- a/build.gradle
+++ b/build.gradle
@@ -14,6 +14,7 @@ dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
+ implementation 'com.mysql:mysql-connector-j:9.5.0'
}
jacoco {
diff --git a/build/classes/java/main/hhn/temp/project/provider/Database.class b/build/classes/java/main/hhn/temp/project/provider/Database.class
index 90607670..bb1634f0 100644
Binary files a/build/classes/java/main/hhn/temp/project/provider/Database.class and b/build/classes/java/main/hhn/temp/project/provider/Database.class differ
diff --git a/build/libs/Template-1.0-SNAPSHOT.jar b/build/libs/Template-1.0-SNAPSHOT.jar
deleted file mode 100644
index 25c67ad0..00000000
Binary files a/build/libs/Template-1.0-SNAPSHOT.jar and /dev/null differ
diff --git a/build/reports/tests/test/css/base-style.css b/build/reports/tests/test/css/base-style.css
deleted file mode 100644
index 3ae6c587..00000000
--- a/build/reports/tests/test/css/base-style.css
+++ /dev/null
@@ -1,174 +0,0 @@
-
-body {
- margin: 0;
- padding: 0;
- font-family: sans-serif;
- font-size: 12pt;
-}
-
-body, a, a:visited {
- color: #303030;
-}
-
-#content {
- padding: 30px 50px;
-}
-
-#content h1 {
- font-size: 160%;
- margin-bottom: 10px;
-}
-
-#footer {
- margin-top: 100px;
- font-size: 80%;
- white-space: nowrap;
-}
-
-#footer, #footer a {
- color: #a0a0a0;
-}
-
-#line-wrapping-toggle {
- vertical-align: middle;
-}
-
-#label-for-line-wrapping-toggle {
- vertical-align: middle;
-}
-
-ul {
- margin-left: 0;
-}
-
-h1, h2, h3 {
- white-space: nowrap;
-}
-
-h2 {
- font-size: 120%;
-}
-
-.tab-container .tab-container {
- margin-left: 8px;
-}
-
-ul.tabLinks {
- padding: 0;
- margin-bottom: 0;
- overflow: auto;
- min-width: 800px;
- width: auto;
- border-bottom: solid 1px #aaa;
-}
-
-ul.tabLinks li {
- float: left;
- height: 100%;
- list-style: none;
- padding: 5px 10px;
- border-radius: 7px 7px 0 0;
- border: solid 1px transparent;
- border-bottom: none;
- margin-right: 6px;
- background-color: #f0f0f0;
-}
-
-ul.tabLinks li.deselected > a {
- color: #6d6d6d;
-}
-
-ul.tabLinks li:hover {
- background-color: #fafafa;
-}
-
-ul.tabLinks li.selected {
- background-color: #c5f0f5;
- border-color: #aaa;
-}
-
-ul.tabLinks a {
- font-size: 120%;
- display: block;
- outline: none;
- text-decoration: none;
- margin: 0;
- padding: 0;
-}
-
-ul.tabLinks li h2 {
- margin: 0;
- padding: 0;
-}
-
-div.tab {
-}
-
-div.selected {
- display: block;
-}
-
-div.deselected {
- display: none;
-}
-
-div.tab table {
- min-width: 350px;
- width: auto;
- border-collapse: collapse;
-}
-
-div.tab th, div.tab table {
- border-bottom: solid 1px #d0d0d0;
-}
-
-div.tab th {
- text-align: left;
- white-space: nowrap;
- padding-left: 6em;
-}
-
-div.tab th:first-child {
- padding-left: 0;
-}
-
-div.tab td {
- white-space: nowrap;
- padding-left: 6em;
- padding-top: 5px;
- padding-bottom: 5px;
-}
-
-div.tab td:first-child {
- padding-left: 0;
-}
-
-div.tab td.numeric, div.tab th.numeric {
- text-align: right;
-}
-
-span.code {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 1em;
-}
-
-span.code pre {
- font-size: 11pt;
- padding: 10px;
- margin: 0;
- background-color: #f7f7f7;
- border: solid 1px #d0d0d0;
- min-width: 700px;
- width: auto;
-}
-
-span.wrapped pre {
- word-wrap: break-word;
- white-space: pre-wrap;
- word-break: break-all;
-}
-
-label.hidden {
- display: none;
-}
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/MANIFEST.MF b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/MANIFEST.MF
deleted file mode 100644
index f323d783..00000000
--- a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Created-By: Apache Maven Bundle Plugin 6.0.0
-Build-Jdk-Spec: 21
-Build-Tool-Jdk-Spec: 21
-Automatic-Module-Name: org.jacoco.agent
-Bnd-LastModified: 1743583180503
-Bundle-Description: JaCoCo Agent
-Bundle-License: https://www.eclipse.org/legal/epl-2.0/
-Bundle-ManifestVersion: 2
-Bundle-Name: JaCoCo Agent
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-SymbolicName: org.jacoco.agent
-Bundle-Vendor: Mountainminds GmbH & Co. KG
-Bundle-Version: 0.8.13.202504020838
-Eclipse-SourceReferences: scm:git:git://github.com/jacoco/jacoco.git;pat
- h="org.jacoco.agent";commitId=78d5eff856bbe6129f05012e40c13d1840e20598
-Export-Package: org.jacoco.agent;version="0.8.13"
-Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
-Tool: Bnd-7.0.0.202310060912
-
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.properties b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.properties
deleted file mode 100644
index 4449f248..00000000
--- a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-artifactId=org.jacoco.agent
-groupId=org.jacoco
-version=0.8.13
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.xml b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.xml
deleted file mode 100644
index 7d70fb75..00000000
--- a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/META-INF/maven/org.jacoco/org.jacoco.agent/pom.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.jacoco
- org.jacoco.build
- 0.8.13
- ../org.jacoco.build
-
-
- org.jacoco.agent
-
- JaCoCo :: Agent
- JaCoCo Agent
-
-
- src
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- prepare-package
-
- copy
-
-
-
-
- ${project.groupId}
- org.jacoco.agent.rt
- all
- ${project.version}
- jacocoagent.jar
-
-
- ${project.build.directory}/classes
- false
- false
- true
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- attach-artifacts
- package
-
- attach-artifact
-
-
-
-
- ${project.build.directory}/classes/jacocoagent.jar
- jar
- runtime
-
-
-
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
-
-
- process-classes
-
- manifest
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- ${project.build.outputDirectory}/META-INF/MANIFEST.MF
-
-
-
-
-
-
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/about.html b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/about.html
deleted file mode 100644
index 7e924330..00000000
--- a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/about.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-About
-
-
-
-About This Content
-
-
- 2025/04/02
-
-
-License
-
-
- All Content in this distribution is made available by Mountainminds GmbH & Co.
- KG, Munich. Unless otherwise indicated below, the Content is provided to you
- under the terms and conditions of the Eclipse Public License Version 2.0
- ("EPL"). A copy of the EPL is available at
- https://www.eclipse.org/legal/epl-2.0/.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-Third Party Content
-
-
- The Content includes items that have been sourced from third parties as set
- out below.
-
-
-ASM
-
-
- ASM 9.8 is subject to the terms and
- conditions of the following license:
-
-
-
-ASM: a very small and fast Java bytecode manipulation framework
-Copyright (c) 2000-2011 INRIA, France Telecom
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of the copyright holders nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/jacocoagent.jar b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/jacocoagent.jar
deleted file mode 100644
index 3c3534c1..00000000
Binary files a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/jacocoagent.jar and /dev/null differ
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/AgentJar.class b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/AgentJar.class
deleted file mode 100644
index 40ffbe23..00000000
Binary files a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/AgentJar.class and /dev/null differ
diff --git a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/package-info.class b/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/package-info.class
deleted file mode 100644
index d36acf9b..00000000
Binary files a/build/tmp/.cache/expanded/zip_9892ccb804f78c0637616b68610d363f/org/jacoco/agent/package-info.class and /dev/null differ
diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF
deleted file mode 100644
index 59499bce..00000000
--- a/build/tmp/jar/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/git show bc0e30860cb3697296a4ef6ee22735a5c83cf522 b/git show bc0e30860cb3697296a4ef6ee22735a5c83cf522
new file mode 100644
index 00000000..28599ad1
--- /dev/null
+++ b/git show bc0e30860cb3697296a4ef6ee22735a5c83cf522
@@ -0,0 +1,44 @@
+[33mcommit bc0e30860cb3697296a4ef6ee22735a5c83cf522[m[33m ([m[1;36mHEAD[m[33m -> [m[1;32mdatabase[m[33m)[m
+Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
+Date: Wed Dec 3 17:30:33 2025 +0100
+
+ First database tests
+
+[33mcommit 26f7ecbee653b98739e75eb8c4707745f252a1a8[m[33m ([m[1;31morigin/main[m[33m, [m[1;31morigin/HEAD[m[33m, [m[1;32mmain[m[33m)[m
+Merge: 668a76e2 eed1390c
+Author: Ferryry
+Date: Wed Dec 3 16:44:45 2025 +0100
+
+ Merge pull request 'Skeleton' (#1) from Skeleton into main
+
+ Reviewed-on: https://home.luithardt.cloud:5400/KevinSchoenmayer/GseTDDUebungKCLR/pulls/1
+
+[33mcommit eed1390c6513f1b5e827fd6e09c91f54da7be463[m[33m ([m[1;31morigin/Skeleton[m[33m, [m[1;32mSkeleton[m[33m)[m
+Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
+Date: Wed Dec 3 16:42:41 2025 +0100
+
+ Remove database folder
+
+[33mcommit b732d8d4b50abc5893d138c6a574fef0025981e0[m
+Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
+Date: Wed Dec 3 16:38:10 2025 +0100
+
+ Initial Commit
+
+[33mcommit c5e26bf594b282ab3d665590d0535b61afa18247[m
+Author: KevinSchoenmayer
+Date: Wed Dec 3 16:28:17 2025 +0100
+
+ Rough Skeleton for Tests and Classes
+
+[33mcommit 668a76e26cfd908499bb74a7732269206062df86[m
+Author: KevinSchoenmayer
+Date: Wed Dec 3 15:26:09 2025 +0100
+
+ Initial Test Push
+
+[33mcommit 2d963c7fd8ab188625c0e2bc9203c4d55ee07aa3[m
+Author: KevinSchoenmayer
+Date: Wed Dec 3 15:18:41 2025 +0100
+
+ Initial commit
diff --git a/src/main/java/hhn/temp/project/provider/Database.java b/src/main/java/hhn/temp/project/provider/Database.java
index 8898bcb8..be2d5c74 100644
--- a/src/main/java/hhn/temp/project/provider/Database.java
+++ b/src/main/java/hhn/temp/project/provider/Database.java
@@ -1,5 +1,9 @@
package hhn.temp.project.provider;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.sql.SQLException;
+
public interface Database {
- public boolean connect();
+ public void connect() throws SQLException, IOException;
}
diff --git a/src/main/java/hhn/temp/project/provider/SimpleDatabaseManager.java b/src/main/java/hhn/temp/project/provider/SimpleDatabaseManager.java
new file mode 100644
index 00000000..941e74e4
--- /dev/null
+++ b/src/main/java/hhn/temp/project/provider/SimpleDatabaseManager.java
@@ -0,0 +1,41 @@
+package hhn.temp.project.provider;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Collection;
+import java.util.List;
+
+public class SimpleDatabaseManager implements DatabaseManager {
+
+ private Connection connection;
+
+ @Override
+ public void saveObjects(Collection objects) {
+
+ }
+
+ @Override
+ public Collection getObjects() {
+ return List.of();
+ }
+
+ @Override
+ public void saveObject(E object) {
+
+ }
+
+ @Override
+ public E getObject(int id) {
+ return null;
+ }
+
+ @Override
+ public void connect() throws SQLException, IOException {
+ connection = DriverManager.getConnection("jdbc:mysql://sql7.freesqldatabase.com/sql7810540?user=sql7810540&password=mXdJCFtDZz");
+ }
+}
diff --git a/test/hhn/temp/project/DatabaseBadCasesTest.java b/test/hhn/temp/project/DatabaseBadCasesTest.java
new file mode 100644
index 00000000..c9d45048
--- /dev/null
+++ b/test/hhn/temp/project/DatabaseBadCasesTest.java
@@ -0,0 +1,39 @@
+package hhn.temp.project;
+
+import hhn.temp.project.provider.DatabaseManager;
+import hhn.temp.project.provider.SimpleDatabaseManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+import java.sql.SQLException;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class DatabaseBadCasesTest {
+
+ private DatabaseManager databaseManager;
+
+ public class TestClass {
+ private int id;
+ private String dataString;
+ private int dataInteger;
+
+ public TestClass(int id, String dataString, int dataInteger) {
+ this.id = id;
+ this.dataString = dataString;
+ this.dataInteger = dataInteger;
+ }
+ }
+
+ @BeforeEach
+ public void setup() {
+ databaseManager = new SimpleDatabaseManager<>();
+ }
+
+ @Test
+ @DisplayName("Assert connection failed")
+ public void assertConnectionFailed() {
+ assertThrows(SQLException.class, () -> databaseManager.connect());
+ }
+}
\ No newline at end of file
diff --git a/test/hhn/temp/project/DatabaseGoodCasesTest.java b/test/hhn/temp/project/DatabaseGoodCasesTest.java
new file mode 100644
index 00000000..4f776ea7
--- /dev/null
+++ b/test/hhn/temp/project/DatabaseGoodCasesTest.java
@@ -0,0 +1,56 @@
+package hhn.temp.project;
+
+import hhn.temp.project.provider.DatabaseManager;
+import hhn.temp.project.provider.SimpleDatabaseManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+import java.io.IOException;
+import java.sql.SQLException;
+
+public class DatabaseGoodCasesTest {
+
+ private DatabaseManager databaseManager;
+
+ public class TestClass {
+ private int id;
+ private String dataString;
+ private int dataInteger;
+
+ public TestClass(int id, String dataString, int dataInteger) {
+ this.id = id;
+ this.dataString = dataString;
+ this.dataInteger = dataInteger;
+ }
+ }
+
+ @BeforeEach
+ public void setup() {
+ databaseManager = new SimpleDatabaseManager<>();
+ }
+
+ @Test
+ @DisplayName("Assert that the TestClass could be inserted into the database")
+ public void assertGetTestClass() throws SQLException, IOException {
+ TestClass testClass = new TestClass(1, "Hello World", 123);
+
+ databaseManager.connect();
+ databaseManager.getObject(1);
+ }
+
+ @Test
+ @DisplayName("Assert that the TestClass could be inserted into the database")
+ public void assertInsertTestClass() throws SQLException, IOException {
+ TestClass testClass = new TestClass(1, "Hello World", 123);
+
+ databaseManager.connect();
+ databaseManager.saveObject(testClass);
+ }
+
+ @Test
+ @DisplayName("Assert connecting to database")
+ public void assertConnectToDatabase() throws SQLException, IOException {
+ databaseManager.connect();
+ }
+}
\ No newline at end of file