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 @@ +commit bc0e30860cb3697296a4ef6ee22735a5c83cf522 (HEAD -> database) +Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com> +Date: Wed Dec 3 17:30:33 2025 +0100 + + First database tests + +commit 26f7ecbee653b98739e75eb8c4707745f252a1a8 (origin/main, origin/HEAD, main) +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 + +commit eed1390c6513f1b5e827fd6e09c91f54da7be463 (origin/Skeleton, Skeleton) +Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com> +Date: Wed Dec 3 16:42:41 2025 +0100 + + Remove database folder + +commit b732d8d4b50abc5893d138c6a574fef0025981e0 +Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com> +Date: Wed Dec 3 16:38:10 2025 +0100 + + Initial Commit + +commit c5e26bf594b282ab3d665590d0535b61afa18247 +Author: KevinSchoenmayer +Date: Wed Dec 3 16:28:17 2025 +0100 + + Rough Skeleton for Tests and Classes + +commit 668a76e26cfd908499bb74a7732269206062df86 +Author: KevinSchoenmayer +Date: Wed Dec 3 15:26:09 2025 +0100 + + Initial Test Push + +commit 2d963c7fd8ab188625c0e2bc9203c4d55ee07aa3 +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