26 Commits

Author SHA1 Message Date
760009b4d6 Merge pull request 'Implemented database functionality' (#4) from database into main
Reviewed-on: #4

Tried with a few extra steps. Needs a ReadME, but works otherwise.
2025-12-18 21:13:10 +01:00
Riley Schneider
35e22bba99 Added MySQL functionality 2025-12-18 10:01:58 +01:00
Riley Schneider
3344ba67cc Updated files and created compose.yml for internal database usage 2025-12-14 17:53:04 +01:00
Riley Schneider
97990a3e76 Deleted unnecessary files. 2025-12-08 21:15:46 +01:00
4eb0f6c3bd Merge pull request 'database' (#3) from database into main
Reviewed-on: #3
2025-12-08 18:10:07 +01:00
Riley Schneider
0dd7fd4687 Provide mock-like DB manager for integration testing 2025-12-08 18:06:43 +01:00
Riley Schneider
e9b2ad0a57 Heavily refactored DatabaseManager.java and SimpleDatabaseManager.java. Fully refactored DatabaseGoodCasesTest.java and DatabaseBadCasesTest.java. 2025-12-08 17:50:21 +01:00
Riley Schneider
292d6c74c3 Implemented Update method 2025-12-03 23:17:31 +01:00
Riley Schneider
f2cc964d39 Added new tests that needs to be implemented. 2025-12-03 23:04:21 +01:00
Riley Schneider
995fba6fce Added a placeholder method to delete objects from the database. 2025-12-03 22:29:52 +01:00
Riley Schneider
daafd7d09e Fixed a typo in the query 2025-12-03 22:24:04 +01:00
Riley Schneider
41e711ab74 Added resultSet.next() 2025-12-03 22:22:30 +01:00
Riley Schneider
625e089a36 Prepared new tests 2025-12-03 22:10:24 +01:00
Riley Schneider
d9da291d45 Added first sql-queries into the SimpleDatabaseManager.java (Still failing / Red Errors) 2025-12-03 21:45:26 +01:00
Riley Schneider
b801ea7d21 Added NotImplementedException, edited some DatabaseGoodCasesTest tests. 2025-12-03 20:52:47 +01:00
Riley Schneider
8150fdbf13 Updated from origin/main 2025-12-03 20:42:23 +01:00
0db43fe51a Fixed Merge Conflicts, uploaded local main 2025-12-03 20:37:10 +01:00
90fbacadaa Merge pull request 'database' (#2) from database into main
Reviewed-on: #2
2025-12-03 20:16:49 +01:00
Riley Schneider
57144fa772 Updated MySQL Methods, Tests and Information accordingly. (High security risk btw) 2025-12-03 20:15:28 +01:00
Riley Schneider
d3488f1f1c Update connect method in SimpleDatabaseManager.java 2025-12-03 18:26:13 +01:00
Riley Schneider
382aad70f7 Updated gitignore 2025-12-03 18:24:42 +01:00
Riley Schneider
dbebcad97d First runnable tests for Database / Commented out Good/BadCasesTests (not relevant to this branch) 2025-12-03 18:23:07 +01:00
Riley Schneider
ec0abd85b9 Merge remote-tracking branch 'origin/database' into database
# Conflicts:
#	.gradle/8.14/executionHistory/executionHistory.lock
#	.gradle/8.14/fileHashes/fileHashes.bin
#	.gradle/8.14/fileHashes/fileHashes.lock
#	.gradle/buildOutputCleanup/buildOutputCleanup.lock
#	.gradle/buildOutputCleanup/cache.properties
#	build/classes/java/main/hhn/temp/project/provider/DatabaseManager.class
#	build/tmp/compileJava/previous-compilation-data.bin
#	src/main/java/hhn/temp/project/provider/SimpleDatabaseManager.java
#	test/hhn/temp/project/BadCasesTest.java
#	test/hhn/temp/project/DatabaseBadCasesTest.java
#	test/hhn/temp/project/DatabaseGoodCasesTest.java
#	test/hhn/temp/project/GoodCasesTest.java
2025-12-03 18:20:36 +01:00
Riley Schneider
04f2087456 First runnable tests for Database / Commented out Good/BadCasesTests (not relevant to this branch) 2025-12-03 18:19:48 +01:00
Riley Schneider
0c4f092312 Backup 2025-12-03 17:49:06 +01:00
Riley Schneider
bc0e30860c First database tests 2025-12-03 17:30:33 +01:00
106 changed files with 739 additions and 3962 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
build/
.gradle/ .gradle/

View File

@@ -1,2 +0,0 @@
#Wed Dec 03 17:27:55 CET 2025
gradle.version=8.14

9
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Template.iml" filepath="$PROJECT_DIR$/.idea/modules/Template.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/Template.test.iml" filepath="$PROJECT_DIR$/.idea/modules/Template.test.iml" />
</modules>
</component>
</project>

8
.idea/modules/Template.test.iml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="AdditionalModuleElements">
<content url="file://$MODULE_DIR$/../../src/test" dumb="true">
<sourceFolder url="file://$MODULE_DIR$/../../src/test/resources" type="java-test-resource" />
</content>
</component>
</module>

View File

@@ -14,6 +14,7 @@ dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0') testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'com.mysql:mysql-connector-j:9.5.0'
} }
jacoco { jacoco {

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AssignmentManager.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.source.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_source">AssignmentManager.java</span></div><h1>AssignmentManager.java</h1><pre class="source lang-java linenums">package hhn.temp.project;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AssignmentManager {
Map&lt;Integer, Worker&gt; workerMap;
Map&lt;Integer, Task&gt; taskMap;
int workerIdCounter;
int taskIdCounter;
<span class="fc" id="L14"> public AssignmentManager() {</span>
<span class="fc" id="L15"> workerMap = new HashMap&lt;&gt;();</span>
<span class="fc" id="L16"> taskMap = new HashMap&lt;&gt;();</span>
<span class="fc" id="L17"> int workerIdCounter = 1000;</span>
<span class="fc" id="L18"> int taskIdCounter = 0;</span>
<span class="fc" id="L19"> }</span>
public int createWorker(String name) {
<span class="fc" id="L22"> Worker worker = new Worker(name, ++workerIdCounter);</span>
<span class="fc" id="L23"> workerMap.put(workerIdCounter, worker);</span>
<span class="fc" id="L24"> return workerIdCounter;</span>
}
public int addTask(int workerId, String name, String description) {
<span class="pc bpc" id="L27" title="1 of 6 branches missed."> if (!workerMap.containsKey(workerId) || name == null || description == null) {</span>
<span class="fc" id="L28"> throw new IllegalArgumentException(&quot;WorkerId must exist and name or description can't be null&quot;);</span>
}
<span class="fc" id="L30"> Task task = new Task(++taskIdCounter, workerId, name, description, this);</span>
<span class="fc" id="L31"> taskMap.put(taskIdCounter, task);</span>
<span class="fc" id="L32"> return taskIdCounter;</span>
}
public Task getTask(int taskId) {
<span class="fc bfc" id="L35" title="All 2 branches covered."> if (!taskMap.containsKey(taskId)) {</span>
<span class="fc" id="L36"> throw new IllegalArgumentException(&quot;Task Id does not exist&quot;);</span>
}
<span class="fc" id="L38"> return taskMap.get(taskId);</span>
}
public Map&lt;Integer, Task&gt; getTaskMap() {
<span class="fc" id="L41"> return taskMap;</span>
}
public void editTask(int workerId, int taskId, String name, String description) {
<span class="fc bfc" id="L44" title="All 4 branches covered."> if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {</span>
<span class="fc" id="L45"> throw new IllegalArgumentException(&quot;Task Id or Worker Id does not exist&quot;);</span>
}
<span class="fc" id="L47"> Task task = taskMap.get(taskId);</span>
<span class="fc" id="L48"> task.setName(name);</span>
<span class="fc" id="L49"> task.setDescription(description);</span>
<span class="fc" id="L50"> }</span>
public void removeTask(int taskId) {
<span class="fc bfc" id="L52" title="All 2 branches covered."> if (!taskMap.containsKey(taskId)) {</span>
<span class="fc" id="L53"> throw new IllegalArgumentException(&quot;Task Id does not exist&quot;);</span>
}
<span class="fc" id="L55"> taskMap.remove(taskId);</span>
<span class="fc" id="L56"> }</span>
public void finishTask(int workerId, int taskId) {
<span class="pc bpc" id="L58" title="1 of 4 branches missed."> if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {</span>
<span class="fc" id="L59"> throw new IllegalArgumentException(&quot;Task Id or Worker Id does not exist&quot;);</span>
}
<span class="fc" id="L61"> Task task = taskMap.get(taskId);</span>
<span class="fc" id="L62"> task.setTaskState(TaskState.FINISHED);</span>
<span class="fc" id="L63"> }</span>
public void unfinishTask(int workerId, int taskId) {
<span class="pc bpc" id="L65" title="1 of 4 branches missed."> if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {</span>
<span class="fc" id="L66"> throw new IllegalArgumentException(&quot;Task Id or Worker Id does not exist&quot;);</span>
}
<span class="fc" id="L68"> Task task = taskMap.get(taskId);</span>
<span class="fc" id="L69"> task.setTaskState(TaskState.IN_PROGRESS);</span>
<span class="fc" id="L70"> }</span>
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

File diff suppressed because one or more lines are too long

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Task.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.source.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_source">Task.java</span></div><h1>Task.java</h1><pre class="source lang-java linenums">package hhn.temp.project;
public class Task {
String name;
String description;
int taskId;
int workerId;
AssignmentManager manager;
TaskState state;
<span class="fc" id="L10"> public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {</span>
<span class="fc" id="L11"> this.manager = manager;</span>
<span class="fc" id="L12"> this.name = name;</span>
<span class="fc" id="L13"> this.description = description;</span>
<span class="fc" id="L14"> this.taskId = taskId;</span>
<span class="fc" id="L15"> this.workerId = workerId;</span>
<span class="fc" id="L16"> this.state = TaskState.IN_PROGRESS;</span>
<span class="fc" id="L17"> }</span>
public String getName() {
<span class="fc" id="L20"> return name;</span>
}
public void setName(String name) {
<span class="fc" id="L23"> this.name = name;</span>
<span class="fc" id="L24"> }</span>
public String getDescription() {
<span class="fc" id="L26"> return description;</span>
}
public void setDescription(String description) {
<span class="fc" id="L29"> this.description = description;</span>
<span class="fc" id="L30"> }</span>
public int getTaskId() {
<span class="fc" id="L32"> return taskId;</span>
}
public int getWorkerId() {
<span class="fc" id="L35"> return workerId;</span>
}
public void setTaskState(TaskState state) {
<span class="fc" id="L38"> this.state = state;</span>
<span class="fc" id="L39"> }</span>
public TaskState getTaskState() {
<span class="fc" id="L41"> return state;</span>
}
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>TaskState</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_class">TaskState</span></div><h1>TaskState</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 15</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="TaskState.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>TaskState.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.source.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_source">TaskState.java</span></div><h1>TaskState.java</h1><pre class="source lang-java linenums">package hhn.temp.project;
<span class="fc" id="L3">public enum TaskState {</span>
<span class="fc" id="L4"> IN_PROGRESS,</span>
<span class="fc" id="L5"> FINISHED;</span>
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Worker</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_class">Worker</span></div><h1>Worker</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 15</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">6</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Worker.java.html#L6" class="el_method">Worker(String, int)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Worker.java.html#L12" class="el_method">getName()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Worker.java.html#L15" class="el_method">getId()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Worker.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <a href="index.source.html" class="el_package">hhn.temp.project</a> &gt; <span class="el_source">Worker.java</span></div><h1>Worker.java</h1><pre class="source lang-java linenums">package hhn.temp.project;
public class Worker {
String name;
int workerId;
<span class="fc" id="L6"> public Worker(String name, int workerId) {</span>
<span class="fc" id="L7"> this.name = name;</span>
<span class="fc" id="L8"> this.workerId = workerId;</span>
<span class="fc" id="L9"> }</span>
public String getName() {
<span class="fc" id="L12"> return name;</span>
}
public int getId() {
<span class="fc" id="L15"> return workerId;</span>
}
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>hhn.temp.project</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <span class="el_package">hhn.temp.project</span></div><h1>hhn.temp.project</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 285</td><td class="ctr2">100 %</td><td class="bar">3 of 22</td><td class="ctr2">86 %</td><td class="ctr1">3</td><td class="ctr2">33</td><td class="ctr1">0</td><td class="ctr2">66</td><td class="ctr1">0</td><td class="ctr2">22</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="AssignmentManager.html" class="el_class">AssignmentManager</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="207" alt="207"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="103" height="10" title="19" alt="19"/></td><td class="ctr2" id="e0">86 %</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">20</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">38</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="Task.html" class="el_class">Task</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="48" alt="48"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">9</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">19</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="TaskState.html" class="el_class">TaskState</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k3">1</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a3"><a href="Worker.html" class="el_class">Worker</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>hhn.temp.project</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <span class="el_package">hhn.temp.project</span></div><h1>hhn.temp.project</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 285</td><td class="ctr2">100 %</td><td class="bar">3 of 22</td><td class="ctr2">86 %</td><td class="ctr1">3</td><td class="ctr2">33</td><td class="ctr1">0</td><td class="ctr2">66</td><td class="ctr1">0</td><td class="ctr2">22</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="AssignmentManager.java.html" class="el_source">AssignmentManager.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="207" alt="207"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="103" height="10" title="19" alt="19"/></td><td class="ctr2" id="e0">86 %</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">20</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">38</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="Task.java.html" class="el_source">Task.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="48" alt="48"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">9</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">19</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a3"><a href="Worker.java.html" class="el_source">Worker.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="TaskState.java.html" class="el_source">TaskState.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Template</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">Template</span></div><h1>Template</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 285</td><td class="ctr2">100 %</td><td class="bar">3 of 22</td><td class="ctr2">86 %</td><td class="ctr1">3</td><td class="ctr2">33</td><td class="ctr1">0</td><td class="ctr2">66</td><td class="ctr1">0</td><td class="ctr2">22</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="hhn.temp.project/index.html" class="el_package">hhn.temp.project</a></td><td class="bar" id="b0"><img src="jacoco-resources/greenbar.gif" width="120" height="10" title="285" alt="285"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="jacoco-resources/greenbar.gif" width="103" height="10" title="19" alt="19"/></td><td class="ctr2" id="e0">86 %</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">33</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">66</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">4</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

View File

@@ -1,13 +0,0 @@
/* Pretty printing styles. Used with prettify.js. */
.str { color: #2A00FF; }
.kwd { color: #7F0055; font-weight:bold; }
.com { color: #3F5FBF; }
.typ { color: #606; }
.lit { color: #066; }
.pun { color: #660; }
.pln { color: #000; }
.tag { color: #008; }
.atn { color: #606; }
.atv { color: #080; }
.dec { color: #606; }

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

View File

@@ -1,243 +0,0 @@
body, td {
font-family:sans-serif;
font-size:10pt;
}
h1 {
font-weight:bold;
font-size:18pt;
}
.breadcrumb {
border:#d6d3ce 1px solid;
padding:2px 4px 2px 4px;
}
.breadcrumb .info {
float:right;
}
.breadcrumb .info a {
margin-left:8px;
}
.el_report {
padding-left:18px;
background-image:url(report.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_group {
padding-left:18px;
background-image:url(group.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_bundle {
padding-left:18px;
background-image:url(bundle.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_package {
padding-left:18px;
background-image:url(package.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_class {
padding-left:18px;
background-image:url(class.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_source {
padding-left:18px;
background-image:url(source.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_method {
padding-left:18px;
background-image:url(method.gif);
background-position:left center;
background-repeat:no-repeat;
}
.el_session {
padding-left:18px;
background-image:url(session.gif);
background-position:left center;
background-repeat:no-repeat;
}
pre.source {
border:#d6d3ce 1px solid;
font-family:monospace;
}
pre.source ol {
margin-bottom: 0px;
margin-top: 0px;
}
pre.source li {
border-left: 1px solid #D6D3CE;
color: #A0A0A0;
padding-left: 0px;
}
pre.source span.fc {
background-color:#ccffcc;
}
pre.source span.nc {
background-color:#ffaaaa;
}
pre.source span.pc {
background-color:#ffffcc;
}
pre.source span.bfc {
background-image: url(branchfc.gif);
background-repeat: no-repeat;
background-position: 2px center;
}
pre.source span.bfc:hover {
background-color:#80ff80;
}
pre.source span.bnc {
background-image: url(branchnc.gif);
background-repeat: no-repeat;
background-position: 2px center;
}
pre.source span.bnc:hover {
background-color:#ff8080;
}
pre.source span.bpc {
background-image: url(branchpc.gif);
background-repeat: no-repeat;
background-position: 2px center;
}
pre.source span.bpc:hover {
background-color:#ffff80;
}
table.coverage {
empty-cells:show;
border-collapse:collapse;
}
table.coverage thead {
background-color:#e0e0e0;
}
table.coverage thead td {
white-space:nowrap;
padding:2px 14px 0px 6px;
border-bottom:#b0b0b0 1px solid;
}
table.coverage thead td.bar {
border-left:#cccccc 1px solid;
}
table.coverage thead td.ctr1 {
text-align:right;
border-left:#cccccc 1px solid;
}
table.coverage thead td.ctr2 {
text-align:right;
padding-left:2px;
}
table.coverage thead td.sortable {
cursor:pointer;
background-image:url(sort.gif);
background-position:right center;
background-repeat:no-repeat;
}
table.coverage thead td.up {
background-image:url(up.gif);
}
table.coverage thead td.down {
background-image:url(down.gif);
}
table.coverage tbody td {
white-space:nowrap;
padding:2px 6px 2px 6px;
border-bottom:#d6d3ce 1px solid;
}
table.coverage tbody tr:hover {
background: #f0f0d0 !important;
}
table.coverage tbody td.bar {
border-left:#e8e8e8 1px solid;
}
table.coverage tbody td.ctr1 {
text-align:right;
padding-right:14px;
border-left:#e8e8e8 1px solid;
}
table.coverage tbody td.ctr2 {
text-align:right;
padding-right:14px;
padding-left:2px;
}
table.coverage tfoot td {
white-space:nowrap;
padding:2px 6px 2px 6px;
}
table.coverage tfoot td.bar {
border-left:#e8e8e8 1px solid;
}
table.coverage tfoot td.ctr1 {
text-align:right;
padding-right:14px;
border-left:#e8e8e8 1px solid;
}
table.coverage tfoot td.ctr2 {
text-align:right;
padding-right:14px;
padding-left:2px;
}
.footer {
margin-top:20px;
border-top:#d6d3ce 1px solid;
padding-top:2px;
font-size:8pt;
color:#a0a0a0;
}
.footer a {
color:#a0a0a0;
}
.right {
float:right;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 B

View File

@@ -1,148 +0,0 @@
/*******************************************************************************
* Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Marc R. Hoffmann - initial API and implementation
*
*******************************************************************************/
(function () {
/**
* Sets the initial sorting derived from the hash.
*
* @param linkelementids
* list of element ids to search for links to add sort inidcator
* hash links
*/
function initialSort(linkelementids) {
window.linkelementids = linkelementids;
var hash = window.location.hash;
if (hash) {
var m = hash.match(/up-./);
if (m) {
var header = window.document.getElementById(m[0].charAt(3));
if (header) {
sortColumn(header, true);
}
return;
}
var m = hash.match(/dn-./);
if (m) {
var header = window.document.getElementById(m[0].charAt(3));
if (header) {
sortColumn(header, false);
}
return
}
}
}
/**
* Sorts the columns with the given header dependening on the current sort state.
*/
function toggleSort(header) {
var sortup = header.className.indexOf('down ') == 0;
sortColumn(header, sortup);
}
/**
* Sorts the columns with the given header in the given direction.
*/
function sortColumn(header, sortup) {
var table = header.parentNode.parentNode.parentNode;
var body = table.tBodies[0];
var colidx = getNodePosition(header);
resetSortedStyle(table);
var rows = body.rows;
var sortedrows = [];
for (var i = 0; i < rows.length; i++) {
r = rows[i];
sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
}
var hash;
if (sortup) {
for (var i = sortedrows.length - 1; i >= 0; i--) {
body.appendChild(sortedrows[i]);
}
header.className = 'up ' + header.className;
hash = 'up-' + header.id;
} else {
for (var i = 0; i < sortedrows.length; i++) {
body.appendChild(sortedrows[i]);
}
header.className = 'down ' + header.className;
hash = 'dn-' + header.id;
}
setHash(hash);
}
/**
* Adds the sort indicator as a hash to the document URL and all links.
*/
function setHash(hash) {
window.document.location.hash = hash;
ids = window.linkelementids;
for (var i = 0; i < ids.length; i++) {
setHashOnAllLinks(document.getElementById(ids[i]), hash);
}
}
/**
* Extend all links within the given tag with the given hash.
*/
function setHashOnAllLinks(tag, hash) {
links = tag.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var a = links[i];
var href = a.href;
var hashpos = href.indexOf("#");
if (hashpos != -1) {
href = href.substring(0, hashpos);
}
a.href = href + "#" + hash;
}
}
/**
* Calculates the position of a element within its parent.
*/
function getNodePosition(element) {
var pos = -1;
while (element) {
element = element.previousSibling;
pos++;
}
return pos;
}
/**
* Remove the sorting indicator style from all headers.
*/
function resetSortedStyle(table) {
for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
if (c.className) {
if (c.className.indexOf('down ') == 0) {
c.className = c.className.slice(5);
}
if (c.className.indexOf('up ') == 0) {
c.className = c.className.slice(3);
}
}
}
}
window['initialSort'] = initialSort;
window['toggleSort'] = toggleSort;
})();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 B

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,128 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - BadCasesTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>BadCasesTest</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt;
<a href="../packages/hhn.temp.project.html">hhn.temp.project</a> &gt; BadCasesTest</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">6</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.057s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a href="#">Tests</a>
</li>
</ul>
<div class="tab">
<h2>Tests</h2>
<table>
<thead>
<tr>
<th>Test</th>
<th>Method name</th>
<th>Duration</th>
<th>Result</th>
</tr>
</thead>
<tr>
<td class="success">Assert Add Task is programmed defensively</td>
<td class="success">assertAddTaskOnlyAcceptsValidParameters()</td>
<td class="success">0.002s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert only existing tasks can be edited</td>
<td class="success">assertEditOnlyExistingTasks()</td>
<td class="success">0.002s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert List isn't empty after adding a task</td>
<td class="success">assertListNowEmptyAfterAdd()</td>
<td class="success">0.046s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that added tasks can't be Null</td>
<td class="success">assertNewTasksAreNotNull()</td>
<td class="success">0.002s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that Remove Task is programmed defensively</td>
<td class="success">assertRemoveTaskOnlyAcceptsValidParameters()</td>
<td class="success">0.003s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that un-/finishing a Task only works with valid parameters</td>
<td class="success">assertTaskStateChangesOnlyAcceptsValidParameters()</td>
<td class="success">0.002s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:35:34</p>
</div>
</div>
</body>
</html>

View File

@@ -1,134 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - GoodCasesTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>GoodCasesTest</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt;
<a href="../packages/hhn.temp.project.html">hhn.temp.project</a> &gt; GoodCasesTest</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">7</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.007s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a href="#">Tests</a>
</li>
</ul>
<div class="tab">
<h2>Tests</h2>
<table>
<thead>
<tr>
<th>Test</th>
<th>Method name</th>
<th>Duration</th>
<th>Result</th>
</tr>
</thead>
<tr>
<td class="success">Assert deleted Tasks no longer show up in the List</td>
<td class="success">assertDeletedTasksDisappear()</td>
<td class="success">0s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert existing Tasks can be edited</td>
<td class="success">assertExistingTasksCanBeEdited()</td>
<td class="success">0s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Check Getters</td>
<td class="success">assertGettersWorkCorrectly()</td>
<td class="success">0.003s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that Task State is actually changed when submitted as finished</td>
<td class="success">assertTaskStateChanges()</td>
<td class="success">0.002s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that added Tasks are added to the List</td>
<td class="success">assertTasksShowInList()</td>
<td class="success">0.001s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that a Worker can add a Task</td>
<td class="success">assertWorkerCanAddTask()</td>
<td class="success">0.001s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that Worker can remove Task</td>
<td class="success">assertWorkerCanRemoveOwnTask()</td>
<td class="success">0s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:35:34</p>
</div>
</div>
</body>
</html>

View File

@@ -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;
}

View File

@@ -1,84 +0,0 @@
#summary {
margin-top: 30px;
margin-bottom: 40px;
}
#summary table {
border-collapse: collapse;
}
#summary td {
vertical-align: top;
}
.breadcrumbs, .breadcrumbs a {
color: #606060;
}
.infoBox {
width: 110px;
padding-top: 15px;
padding-bottom: 15px;
text-align: center;
}
.infoBox p {
margin: 0;
}
.counter, .percent {
font-size: 120%;
font-weight: bold;
margin-bottom: 8px;
}
#duration {
width: 125px;
}
#successRate, .summaryGroup {
border: solid 2px #d0d0d0;
-moz-border-radius: 10px;
border-radius: 10px;
}
#successRate {
width: 140px;
margin-left: 35px;
}
#successRate .percent {
font-size: 180%;
}
.success, .success a {
color: #008000;
}
div.success, #successRate.success {
background-color: #bbd9bb;
border-color: #008000;
}
.failures, .failures a {
color: #b60808;
}
.skipped, .skipped a {
color: #c09853;
}
div.failures, #successRate.failures {
background-color: #ecdada;
border-color: #b60808;
}
ul.linkList {
padding-left: 0;
}
ul.linkList li {
list-style: none;
margin-bottom: 5px;
}

View File

@@ -1,143 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Test Summary</title>
<link href="css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<script src="js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Test Summary</h1>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">13</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.064s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a href="#">Packages</a>
</li>
<li>
<a href="#">Classes</a>
</li>
</ul>
<div class="tab">
<h2>Packages</h2>
<table>
<thead>
<tr>
<th>Package</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tbody>
<tr>
<td class="success">
<a href="packages/hhn.temp.project.html">hhn.temp.project</a>
</td>
<td>13</td>
<td>0</td>
<td>0</td>
<td>0.064s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
</div>
<div class="tab">
<h2>Classes</h2>
<table>
<thead>
<tr>
<th>Class</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tbody>
<tr>
<td class="success">
<a href="classes/hhn.temp.project.BadCasesTest.html">hhn.temp.project.BadCasesTest</a>
</td>
<td>6</td>
<td>0</td>
<td>0</td>
<td>0.057s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="classes/hhn.temp.project.GoodCasesTest.html">hhn.temp.project.GoodCasesTest</a>
</td>
<td>7</td>
<td>0</td>
<td>0</td>
<td>0.007s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:35:34</p>
</div>
</div>
</body>
</html>

View File

@@ -1,218 +0,0 @@
(function (window, document) {
"use strict";
function changeElementClass(element, classValue) {
if (element.getAttribute("className")) {
element.setAttribute("className", classValue);
} else {
element.setAttribute("class", classValue);
}
}
function getClassAttribute(element) {
if (element.getAttribute("className")) {
return element.getAttribute("className");
} else {
return element.getAttribute("class");
}
}
function addClass(element, classValue) {
changeElementClass(element, getClassAttribute(element) + " " + classValue);
}
function removeClass(element, classValue) {
changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
}
function getCheckBox() {
return document.getElementById("line-wrapping-toggle");
}
function getLabelForCheckBox() {
return document.getElementById("label-for-line-wrapping-toggle");
}
function findCodeBlocks() {
const codeBlocks = [];
const tabContainers = getTabContainers();
for (let i = 0; i < tabContainers.length; i++) {
const spans = tabContainers[i].getElementsByTagName("span");
for (let i = 0; i < spans.length; ++i) {
if (spans[i].className.indexOf("code") >= 0) {
codeBlocks.push(spans[i]);
}
}
}
return codeBlocks;
}
function forAllCodeBlocks(operation) {
const codeBlocks = findCodeBlocks();
for (let i = 0; i < codeBlocks.length; ++i) {
operation(codeBlocks[i], "wrapped");
}
}
function toggleLineWrapping() {
const checkBox = getCheckBox();
if (checkBox.checked) {
forAllCodeBlocks(addClass);
} else {
forAllCodeBlocks(removeClass);
}
}
function initControls() {
if (findCodeBlocks().length > 0) {
const checkBox = getCheckBox();
const label = getLabelForCheckBox();
checkBox.onclick = toggleLineWrapping;
checkBox.checked = false;
removeClass(label, "hidden");
}
}
class TabManager {
baseId;
tabs;
titles;
headers;
constructor(baseId, tabs, titles, headers) {
this.baseId = baseId;
this.tabs = tabs;
this.titles = titles;
this.headers = headers;
}
select(i) {
this.deselectAll();
changeElementClass(this.tabs[i], "tab selected");
changeElementClass(this.headers[i], "selected");
while (this.headers[i].firstChild) {
this.headers[i].removeChild(this.headers[i].firstChild);
}
const a = document.createElement("a");
a.appendChild(document.createTextNode(this.titles[i]));
this.headers[i].appendChild(a);
}
deselectAll() {
for (let i = 0; i < this.tabs.length; i++) {
changeElementClass(this.tabs[i], "tab deselected");
changeElementClass(this.headers[i], "deselected");
while (this.headers[i].firstChild) {
this.headers[i].removeChild(this.headers[i].firstChild);
}
const a = document.createElement("a");
const id = this.baseId + "-tab" + i;
a.setAttribute("id", id);
a.setAttribute("href", "#tab" + i);
a.onclick = () => {
this.select(i);
return false;
};
a.appendChild(document.createTextNode(this.titles[i]));
this.headers[i].appendChild(a);
}
}
}
function getTabContainers() {
const tabContainers = Array.from(document.getElementsByClassName("tab-container"));
// Used by existing TabbedPageRenderer users, which have not adjusted to use TabsRenderer yet.
const legacyContainer = document.getElementById("tabs");
if (legacyContainer) {
tabContainers.push(legacyContainer);
}
return tabContainers;
}
function initTabs() {
let tabGroups = 0;
function createTab(num, container) {
const tabElems = findTabs(container);
const tabManager = new TabManager("tabs" + num, tabElems, findTitles(tabElems), findHeaders(container));
tabManager.select(0);
}
const tabContainers = getTabContainers();
for (let i = 0; i < tabContainers.length; i++) {
createTab(tabGroups, tabContainers[i]);
tabGroups++;
}
return true;
}
function findTabs(container) {
return findChildElements(container, "DIV", "tab");
}
function findHeaders(container) {
const owner = findChildElements(container, "UL", "tabLinks");
return findChildElements(owner[0], "LI", null);
}
function findTitles(tabs) {
const titles = [];
for (let i = 0; i < tabs.length; i++) {
const tab = tabs[i];
const header = findChildElements(tab, "H2", null)[0];
header.parentNode.removeChild(header);
if (header.innerText) {
titles.push(header.innerText);
} else {
titles.push(header.textContent);
}
}
return titles;
}
function findChildElements(container, name, targetClass) {
const elements = [];
const children = container.childNodes;
for (let i = 0; i < children.length; i++) {
const child = children.item(i);
if (child.nodeType === 1 && child.nodeName === name) {
if (targetClass && child.className.indexOf(targetClass) < 0) {
continue;
}
elements.push(child);
}
}
return elements;
}
// Entry point.
window.onload = function() {
initTabs();
initControls();
};
} (window, window.document));

View File

@@ -1,113 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Package hhn.temp.project</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Package hhn.temp.project</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt; hhn.temp.project</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">13</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.064s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div class="tab-container">
<ul class="tabLinks">
<li>
<a href="#">Classes</a>
</li>
</ul>
<div class="tab">
<h2>Classes</h2>
<table>
<thead>
<tr>
<th>Class</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tr>
<td class="success">
<a href="../classes/hhn.temp.project.BadCasesTest.html">BadCasesTest</a>
</td>
<td>6</td>
<td>0</td>
<td>0</td>
<td>0.057s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>
</td>
<td>7</td>
<td>0</td>
<td>0</td>
<td>0.007s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:35:34</p>
</div>
</div>
</body>
</html>

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="hhn.temp.project.BadCasesTest" tests="6" skipped="0" failures="0" errors="0" timestamp="2025-12-03T18:35:34.515Z" hostname="KEVIN-THINKPAD" time="0.067">
<properties/>
<testcase name="Assert List isn't empty after adding a task" classname="hhn.temp.project.BadCasesTest" time="0.046"/>
<testcase name="Assert that Remove Task is programmed defensively" classname="hhn.temp.project.BadCasesTest" time="0.003"/>
<testcase name="Assert Add Task is programmed defensively" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
<testcase name="Assert only existing tasks can be edited" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
<testcase name="Assert that un-/finishing a Task only works with valid parameters" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
<testcase name="Assert that added tasks can't be Null" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="hhn.temp.project.GoodCasesTest" tests="7" skipped="0" failures="0" errors="0" timestamp="2025-12-03T18:35:34.587Z" hostname="KEVIN-THINKPAD" time="0.013">
<properties/>
<testcase name="Check Getters" classname="hhn.temp.project.GoodCasesTest" time="0.003"/>
<testcase name="Assert that added Tasks are added to the List" classname="hhn.temp.project.GoodCasesTest" time="0.001"/>
<testcase name="Assert that Worker can remove Task" classname="hhn.temp.project.GoodCasesTest" time="0.0"/>
<testcase name="Assert that a Worker can add a Task" classname="hhn.temp.project.GoodCasesTest" time="0.001"/>
<testcase name="Assert existing Tasks can be edited" classname="hhn.temp.project.GoodCasesTest" time="0.0"/>
<testcase name="Assert that Task State is actually changed when submitted as finished" classname="hhn.temp.project.GoodCasesTest" time="0.002"/>
<testcase name="Assert deleted Tasks no longer show up in the List" classname="hhn.temp.project.GoodCasesTest" time="0.0"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>

View File

@@ -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

View File

@@ -1,3 +0,0 @@
artifactId=org.jacoco.agent
groupId=org.jacoco
version=0.8.13

View File

@@ -1,106 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0
SPDX-License-Identifier: EPL-2.0
Contributors:
Evgeny Mandrikov - initial API and implementation
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.build</artifactId>
<version>0.8.13</version>
<relativePath>../org.jacoco.build</relativePath>
</parent>
<artifactId>org.jacoco.agent</artifactId>
<name>JaCoCo :: Agent</name>
<description>JaCoCo Agent</description>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.agent.rt</artifactId>
<classifier>all</classifier>
<version>${project.version}</version>
<destFileName>jacocoagent.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/classes/jacocoagent.jar</file>
<type>jar</type>
<classifier>runtime</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>About</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body lang="EN-US">
<h2>About This Content</h2>
<p>
2025/04/02
</p>
<h3>License</h3>
<p>
All Content in this distribution is made available by Mountainminds GmbH &amp; 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
(&quot;EPL&quot;). A copy of the EPL is available at
<a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
For purposes of the EPL, "Program" will mean the Content.
</p>
<h3>Third Party Content</h3>
<p>
The Content includes items that have been sourced from third parties as set
out below.
</p>
<h4>ASM</h4>
<p>
<a href="https://asm.ow2.io/">ASM 9.8</a> is subject to the terms and
conditions of the following license:
</p>
<pre>
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.
</pre>
</body>
</html>

View File

@@ -1,2 +0,0 @@
Manifest-Version: 1.0

19
docker/compose.yml Normal file
View File

@@ -0,0 +1,19 @@
version: "3.9"
services:
mysql:
image: mysql:8.0
container_name: mysql-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: sql7810540
MYSQL_USER: sql7810540
MYSQL_PASSWORD: mXdJCFtDZz
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:

View File

@@ -0,0 +1 @@
SELECT COUNT(*) AS total FROM Task

View File

@@ -0,0 +1 @@
SELECT COUNT(*) AS total FROM Worker

View File

@@ -0,0 +1 @@
SELECT * FROM Task

View File

@@ -0,0 +1 @@
SELECT * FROM Worker

View File

@@ -0,0 +1 @@
SELECT * FROM Task WHERE taskid = ? LIMIT 1

View File

@@ -0,0 +1 @@
SELECT * FROM Worker WHERE workerid = ? LIMIT 1

View File

@@ -0,0 +1 @@
UPDATE Worker SET workerid = ?, name = ? WHERE workerid = ?

View File

@@ -0,0 +1,8 @@
CREATE TABLE Task (
id INT AUTO_INCREMENT PRIMARY KEY,
taskid INT,
name VARCHAR(255) NOT NULL,
description TEXT,
workerid INT,
taskstate BIT
);

View File

@@ -0,0 +1,5 @@
CREATE TABLE Worker (
id INT AUTO_INCREMENT PRIMARY KEY,
workerid INT,
name VARCHAR(255) NOT NULL
);

View File

@@ -0,0 +1 @@
DELETE FROM Task WHERE taskid = ?

View File

@@ -0,0 +1 @@
INSERT INTO Task (taskid, name, description, workerid, taskstate) VALUES (?, ?, ?, ?, ?)

View File

@@ -0,0 +1 @@
INSERT INTO Worker (workerid, name) VALUES (?, ?)

View File

@@ -0,0 +1 @@
SELECT * FROM Task WHERE workerid = ?

View File

@@ -0,0 +1 @@
UPDATE Task SET name = ?, description = ?, taskstate = ? WHERE taskid = ?

View File

@@ -27,7 +27,7 @@ public class AssignmentManager {
if (!workerMap.containsKey(workerId) || name == null || description == null) { if (!workerMap.containsKey(workerId) || name == null || description == null) {
throw new IllegalArgumentException("WorkerId must exist and name or description can't be null"); throw new IllegalArgumentException("WorkerId must exist and name or description can't be null");
} }
Task task = new Task(++taskIdCounter, workerId, name, description, this); Task task = new Task(++taskIdCounter, workerId, name, description);
taskMap.put(taskIdCounter, task); taskMap.put(taskIdCounter, task);
return taskIdCounter; return taskIdCounter;
} }

Some files were not shown because too many files have changed in this diff Show More