Compare commits
26 Commits
85446bc230
...
database
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f23b15ad4 | ||
|
|
3050405792 | ||
| e667389694 | |||
| 6ac08e2db1 | |||
| 20afbbf461 | |||
| 0b74bf5eea | |||
| 6ccb68285f | |||
| 0c83baec46 | |||
| 654305f2cd | |||
| a390509f87 | |||
| 760009b4d6 | |||
|
|
35e22bba99 | ||
|
|
3344ba67cc | ||
|
|
97990a3e76 | ||
| 4eb0f6c3bd | |||
|
|
0dd7fd4687 | ||
|
|
e9b2ad0a57 | ||
|
|
292d6c74c3 | ||
|
|
f2cc964d39 | ||
|
|
995fba6fce | ||
|
|
daafd7d09e | ||
|
|
41e711ab74 | ||
|
|
625e089a36 | ||
|
|
d9da291d45 | ||
|
|
b801ea7d21 | ||
|
|
8150fdbf13 |
@@ -1,2 +0,0 @@
|
|||||||
#Wed Dec 03 20:34:21 CET 2025
|
|
||||||
gradle.version=8.14
|
|
||||||
9
.idea/modules.xml
generated
Normal 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>
|
||||||
40
README.md
@@ -1,2 +1,40 @@
|
|||||||
# Temp-Java-Gradle
|
@Author Kevin Schoenmayer, Riley Schneider, Can Oezdemir, Lasse Grosshans
|
||||||
|
|
||||||
|
Volle Dokumentation mit Bildern, Vorbereitungen und Klassendiagramm unter
|
||||||
|
https://docs.google.com/document/d/1iPl3XoZdvn1zqYCNlzHklEf_bRBGnQm41bAEaWz_s0w/edit?usp=sharing
|
||||||
|
|
||||||
|
|
||||||
|
Voraussetzungen:
|
||||||
|
Docker (inkl. Docker Compose)
|
||||||
|
Java 17
|
||||||
|
Git
|
||||||
|
|
||||||
|
Projekt bauen, testen und starten:
|
||||||
|
|
||||||
|
1. Projekt klonen:
|
||||||
|
git clone https://home.luithardt.cloud:5400/KevinSchoenmayer/GseTDDUebungKCLR
|
||||||
|
|
||||||
|
2. Zu ...\GseTDDUebungKCLR\docker in cmd navigieren
|
||||||
|
Docker starten:
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
3. Tabellenerstellung fuer die Testumgebung:
|
||||||
|
Verbinden Sie sich mit dem Programm Ihrer Wahl mit der Datenbank (z.B. HeidiSQL). Die Anmeldeinformationen finden Sie in der compose.yml-Datei.
|
||||||
|
Fuehren Sie nun auf der Datenbank folgende SQL-Befehle aus dieser Dateien aus:
|
||||||
|
resources\sql\createTaskTable.sql
|
||||||
|
resources\sql\createWorkerTable.sql
|
||||||
|
Sie sollten in Ihrer Datenbank nun zwei neue Tabellen sehen: Task und Worker. Wenn dem so sei, koennen Sie mit Punkt (6) fortfahren.
|
||||||
|
|
||||||
|
4. Projekt starten:
|
||||||
|
gradle cleanRun --console=plain --quiet
|
||||||
|
Jetzt werden die Tests durchgefuehrt und in
|
||||||
|
...\GseTDDUebungKCLR\build\reports\tests\index.html
|
||||||
|
gespeichert (genaue Adresse fuer .html wird automatisch angegeben),
|
||||||
|
die Jacoco Test Coverage erzeugt und in
|
||||||
|
...\GseTDDUebungKCLR\build\reports\jacoco\html\index.html
|
||||||
|
gespeichert (genaue Adresse fuer .html wird automatisch angegeben),
|
||||||
|
und das Programm in der Command Line gestartet.
|
||||||
|
|
||||||
|
Nutze ?, um dir die Befehle anzeigen zu lassen.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
103
build.gradle
@@ -1,6 +1,7 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'jacoco'
|
id 'jacoco'
|
||||||
|
id 'application'
|
||||||
}
|
}
|
||||||
|
|
||||||
group = 'hhn.temp.project'
|
group = 'hhn.temp.project'
|
||||||
@@ -17,11 +18,6 @@ dependencies {
|
|||||||
implementation 'com.mysql:mysql-connector-j:9.5.0'
|
implementation 'com.mysql:mysql-connector-j:9.5.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
jacoco {
|
|
||||||
toolVersion = '0.8.13'
|
|
||||||
reportsDirectory.set(layout.buildDirectory.dir('customJacocoReportDir'))
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
java {
|
java {
|
||||||
@@ -35,6 +31,7 @@ sourceSets {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test configuration
|
||||||
test {
|
test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
testLogging {
|
testLogging {
|
||||||
@@ -42,13 +39,105 @@ test {
|
|||||||
exceptionFormat "full"
|
exceptionFormat "full"
|
||||||
showStandardStreams = true
|
showStandardStreams = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generate test reports in a specific location
|
||||||
|
reports {
|
||||||
|
html.outputLocation.set(layout.buildDirectory.dir("reports/tests"))
|
||||||
|
junitXml.outputLocation.set(layout.buildDirectory.dir("reports/tests"))
|
||||||
|
}
|
||||||
|
|
||||||
finalizedBy jacocoTestReport
|
finalizedBy jacocoTestReport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jacoco configuration
|
||||||
|
jacoco {
|
||||||
|
toolVersion = '0.8.13'
|
||||||
|
reportsDirectory.set(layout.buildDirectory.dir('reports/jacoco'))
|
||||||
|
}
|
||||||
|
|
||||||
jacocoTestReport {
|
jacocoTestReport {
|
||||||
dependsOn test
|
dependsOn test
|
||||||
reports {
|
reports {
|
||||||
xml.required = false
|
xml.required = true
|
||||||
csv.required = false
|
csv.required = false
|
||||||
html.outputLocation.set(layout.buildDirectory.dir('jacocoHtml'))
|
html.required = true
|
||||||
|
html.outputLocation.set(layout.buildDirectory.dir("reports/jacoco/html"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Application configuration
|
||||||
|
application {
|
||||||
|
mainClass = "hhn.temp.project.Main"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom task to print information after build
|
||||||
|
task printInfo {
|
||||||
|
dependsOn test, jacocoTestReport
|
||||||
|
doLast {
|
||||||
|
println("\n" + "="*50)
|
||||||
|
println("BUILD AND TESTS COMPLETED SUCCESSFULLY!")
|
||||||
|
println("="*50)
|
||||||
|
println("\nTest Results Location:")
|
||||||
|
println(" HTML: ${layout.buildDirectory.get()}/reports/tests/index.html")
|
||||||
|
println(" XML: ${layout.buildDirectory.get()}/reports/tests/TEST-*.xml")
|
||||||
|
|
||||||
|
println("\nJacoco Coverage Reports:")
|
||||||
|
println(" HTML: ${layout.buildDirectory.get()}/reports/jacoco/html/index.html")
|
||||||
|
println(" XML: ${layout.buildDirectory.get()}/reports/jacoco/test/jacocoTestReport.xml")
|
||||||
|
|
||||||
|
println("\nTo run the application:")
|
||||||
|
println(" gradle run --console=plain")
|
||||||
|
println("\nTo run tests and generate coverage reports:")
|
||||||
|
println(" gradle test jacocoTestReport")
|
||||||
|
println("="*50)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom task that combines clean, test, jacocoTestReport
|
||||||
|
task cleanTestReport {
|
||||||
|
dependsOn clean, test, jacocoTestReport
|
||||||
|
description = 'Clean build and run tests with coverage reports'
|
||||||
|
group = 'verification'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configure the standard run task
|
||||||
|
run {
|
||||||
|
dependsOn test, jacocoTestReport
|
||||||
|
standardInput = System.in
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
println("\n" + "="*50)
|
||||||
|
println("TESTS COMPLETED - STARTING APPLICATION...")
|
||||||
|
println("="*50)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create an alias task
|
||||||
|
task cleanRun {
|
||||||
|
dependsOn clean, run
|
||||||
|
description = 'Clean build, run tests with coverage, then run the application'
|
||||||
|
group = 'application'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alternative: Create a separate task that doesn't chain dependencies
|
||||||
|
task startApp(type: JavaExec) {
|
||||||
|
description = 'Start the application (without running tests first)'
|
||||||
|
group = 'application'
|
||||||
|
|
||||||
|
classpath = sourceSets.main.runtimeClasspath
|
||||||
|
mainClass = application.mainClass
|
||||||
|
standardInput = System.in
|
||||||
|
standardOutput = System.out
|
||||||
|
|
||||||
|
// Configure to run in foreground
|
||||||
|
systemProperties System.getProperties()
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
println("\n" + "="*50)
|
||||||
|
println("STARTING APPLICATION...")
|
||||||
|
println("="*50)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make test and jacocoTestReport trigger the info print
|
||||||
|
test.finalizedBy printInfo
|
||||||
@@ -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> > <a href="index.source.html" class="el_package">hhn.temp.project</a> > <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<Integer, Worker> workerMap;
|
|
||||||
Map<Integer, Task> taskMap;
|
|
||||||
int workerIdCounter;
|
|
||||||
int taskIdCounter;
|
|
||||||
|
|
||||||
<span class="fc" id="L14"> public AssignmentManager() {</span>
|
|
||||||
<span class="fc" id="L15"> workerMap = new HashMap<>();</span>
|
|
||||||
<span class="fc" id="L16"> taskMap = new HashMap<>();</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("WorkerId must exist and name or description can't be null");</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("Task Id does not exist");</span>
|
|
||||||
}
|
|
||||||
<span class="fc" id="L38"> return taskMap.get(taskId);</span>
|
|
||||||
}
|
|
||||||
public Map<Integer, Task> 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("Task Id or Worker Id does not exist");</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("Task Id does not exist");</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("Task Id or Worker Id does not exist");</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("Task Id or Worker Id does not exist");</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>
|
|
||||||
@@ -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> > <a href="index.source.html" class="el_package">hhn.temp.project</a> > <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>
|
|
||||||
@@ -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> > <a href="index.html" class="el_package">hhn.temp.project</a> > <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>
|
|
||||||
@@ -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> > <a href="index.source.html" class="el_package">hhn.temp.project</a> > <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>
|
|
||||||
@@ -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> > <a href="index.html" class="el_package">hhn.temp.project</a> > <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>
|
|
||||||
@@ -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> > <a href="index.source.html" class="el_package">hhn.temp.project</a> > <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>
|
|
||||||
@@ -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> > <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>
|
|
||||||
@@ -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> > <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>
|
|
||||||
@@ -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>
|
|
||||||
|
Before Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 709 B |
|
Before Width: | Height: | Size: 586 B |
|
Before Width: | Height: | Size: 67 B |
|
Before Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 227 B |
@@ -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; }
|
|
||||||
|
Before Width: | Height: | Size: 91 B |
@@ -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;
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 213 B |
|
Before Width: | Height: | Size: 58 B |
@@ -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;
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
Before Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 67 B |
@@ -1,150 +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> >
|
|
||||||
<a href="../packages/hhn.temp.project.html">hhn.temp.project</a> > BadCasesTest</div>
|
|
||||||
<div id="summary">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="summaryGroup">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox" id="tests">
|
|
||||||
<div class="counter">8</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.021s</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>
|
|
||||||
<li>
|
|
||||||
<a href="#">Standard output</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.004s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert non-existent commands are recognized as such</td>
|
|
||||||
<td class="success">assertInvalidCommandsDontCrash()</td>
|
|
||||||
<td class="success">0.001s</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.004s</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.003s</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.002s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert that removing a non-existent worker throws an Exception</td>
|
|
||||||
<td class="success">assertRemovingNonExistentWorkerFails()</td>
|
|
||||||
<td class="success">0.002s</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.003s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="tab">
|
|
||||||
<h2>Standard output</h2>
|
|
||||||
<span class="code">
|
|
||||||
<pre>Unknown command. Type 'help' for available commands.
|
|
||||||
</pre>
|
|
||||||
</span>
|
|
||||||
</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 04.01.2026, 16:32:20</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,251 +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> >
|
|
||||||
<a href="../packages/hhn.temp.project.html">hhn.temp.project</a> > GoodCasesTest</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">2</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.051s</div>
|
|
||||||
<p>duration</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox failures" id="successRate">
|
|
||||||
<div class="percent">84%</div>
|
|
||||||
<p>successful</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="tab-container">
|
|
||||||
<ul class="tabLinks">
|
|
||||||
<li>
|
|
||||||
<a href="#">Failed tests</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Tests</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Standard output</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="tab">
|
|
||||||
<h2>Failed tests</h2>
|
|
||||||
<div class="test">
|
|
||||||
<a name="assertEditingTasksIsPossibleThroughUi()"></a>
|
|
||||||
<h3 class="failures">Check that editing is possible through UI</h3>
|
|
||||||
<span class="code">
|
|
||||||
<pre>org.opentest4j.AssertionFailedError: expected: <Walk> but was: <Run>
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
|
|
||||||
at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1141)
|
|
||||||
at app//hhn.temp.project.GoodCasesTest.assertEditingTasksIsPossibleThroughUi(GoodCasesTest.java:133)
|
|
||||||
at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
</pre>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="test">
|
|
||||||
<a name="assertRemoveWorkerActuallyRemoves()"></a>
|
|
||||||
<h3 class="failures">Assert that removing a worker removes the worker from the worker list</h3>
|
|
||||||
<span class="code">
|
|
||||||
<pre>org.opentest4j.AssertionFailedError: Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown.
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
|
|
||||||
at app//org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:73)
|
|
||||||
at app//org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)
|
|
||||||
at app//org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3111)
|
|
||||||
at app//hhn.temp.project.GoodCasesTest.assertRemoveWorkerActuallyRemoves(GoodCasesTest.java:153)
|
|
||||||
at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
</pre>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<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">Check that every required surface command actually works</td>
|
|
||||||
<td class="success">assertCommandsAreRecognized()</td>
|
|
||||||
<td class="success">0.004s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert deleted Tasks no longer show up in the List</td>
|
|
||||||
<td class="success">assertDeletedTasksDisappear()</td>
|
|
||||||
<td class="success">0.001s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">Check that editing is possible through UI</td>
|
|
||||||
<td class="failures">assertEditingTasksIsPossibleThroughUi()</td>
|
|
||||||
<td class="failures">0.008s</td>
|
|
||||||
<td class="failures">failed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert existing Tasks can be edited</td>
|
|
||||||
<td class="success">assertExistingTasksCanBeEdited()</td>
|
|
||||||
<td class="success">0.003s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Check that every task command works</td>
|
|
||||||
<td class="success">assertFinishingTasksIsPossibleThroughUi()</td>
|
|
||||||
<td class="success">0.005s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Check Getters</td>
|
|
||||||
<td class="success">assertGettersWorkCorrectly()</td>
|
|
||||||
<td class="success">0.014s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">Assert that removing a worker removes the worker from the worker list</td>
|
|
||||||
<td class="failures">assertRemoveWorkerActuallyRemoves()</td>
|
|
||||||
<td class="failures">0.005s</td>
|
|
||||||
<td class="failures">failed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert that removing Workers is possible through the UI</td>
|
|
||||||
<td class="success">assertRemovingWorkersIsPossibleThroughUI()</td>
|
|
||||||
<td class="success">0.002s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">Assert that the Scanner is actually started when AM calls start</td>
|
|
||||||
<td class="success">assertScannerExists()</td>
|
|
||||||
<td class="success">0.002s</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.004s</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">0.001s</td>
|
|
||||||
<td class="success">passed</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="tab">
|
|
||||||
<h2>Standard output</h2>
|
|
||||||
<span class="code">
|
|
||||||
<pre>Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter new name;description: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Available commands:
|
|
||||||
createWorker - Create a new worker
|
|
||||||
createTask - Create a new task
|
|
||||||
selectTask - Select a task to work with
|
|
||||||
listWorkers - List all workers
|
|
||||||
help/? - Show this help
|
|
||||||
exit - Exit the program
|
|
||||||
Available commands:
|
|
||||||
createWorker - Create a new worker
|
|
||||||
createTask - Create a new task
|
|
||||||
selectTask - Select a task to work with
|
|
||||||
listWorkers - List all workers
|
|
||||||
help/? - Show this help
|
|
||||||
exit - Exit the program
|
|
||||||
Enter worker name: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter worker ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Task marked as finished
|
|
||||||
Task marked as unfinished
|
|
||||||
Task removed
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Enter worker ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Worker removed
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
</pre>
|
|
||||||
</span>
|
|
||||||
</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 04.01.2026, 16:32:20</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -1,191 +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">25</div>
|
|
||||||
<p>tests</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox" id="failures">
|
|
||||||
<div class="counter">5</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">1.810s</div>
|
|
||||||
<p>duration</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox failures" id="successRate">
|
|
||||||
<div class="percent">80%</div>
|
|
||||||
<p>successful</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="tab-container">
|
|
||||||
<ul class="tabLinks">
|
|
||||||
<li>
|
|
||||||
<a href="#">Failed tests</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Packages</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Classes</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="tab">
|
|
||||||
<h2>Failed tests</h2>
|
|
||||||
<ul class="linkList">
|
|
||||||
<li>
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertConnectToDatabase()">Assert connecting to database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertGetTestClass()">Assert that the TestClass could be inserted into the database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertInsertTestClass()">Assert that the TestClass could be inserted into the database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>.
|
|
||||||
<a href="classes/hhn.temp.project.GoodCasesTest.html#assertEditingTasksIsPossibleThroughUi()">Check that editing is possible through UI</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>.
|
|
||||||
<a href="classes/hhn.temp.project.GoodCasesTest.html#assertRemoveWorkerActuallyRemoves()">Assert that removing a worker removes the worker from the worker list</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<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="failures">
|
|
||||||
<a href="packages/hhn.temp.project.html">hhn.temp.project</a>
|
|
||||||
</td>
|
|
||||||
<td>25</td>
|
|
||||||
<td>5</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>1.810s</td>
|
|
||||||
<td class="failures">80%</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>8</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.021s</td>
|
|
||||||
<td class="success">100%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseBadCasesTest.html">hhn.temp.project.DatabaseBadCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.027s</td>
|
|
||||||
<td class="success">100%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">
|
|
||||||
<a href="classes/hhn.temp.project.DatabaseGoodCasesTest.html">hhn.temp.project.DatabaseGoodCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>3</td>
|
|
||||||
<td>3</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>1.711s</td>
|
|
||||||
<td class="failures">0%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">
|
|
||||||
<a href="classes/hhn.temp.project.GoodCasesTest.html">hhn.temp.project.GoodCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>13</td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.051s</td>
|
|
||||||
<td class="failures">84%</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 04.01.2026, 16:32:20</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -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));
|
|
||||||
@@ -1,161 +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> > hhn.temp.project</div>
|
|
||||||
<div id="summary">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="summaryGroup">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox" id="tests">
|
|
||||||
<div class="counter">25</div>
|
|
||||||
<p>tests</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox" id="failures">
|
|
||||||
<div class="counter">5</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">1.810s</div>
|
|
||||||
<p>duration</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div class="infoBox failures" id="successRate">
|
|
||||||
<div class="percent">80%</div>
|
|
||||||
<p>successful</p>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="tab-container">
|
|
||||||
<ul class="tabLinks">
|
|
||||||
<li>
|
|
||||||
<a href="#">Failed tests</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Classes</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="tab">
|
|
||||||
<h2>Failed tests</h2>
|
|
||||||
<ul class="linkList">
|
|
||||||
<li>
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertConnectToDatabase()">Assert connecting to database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertGetTestClass()">Assert that the TestClass could be inserted into the database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>.
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html#assertInsertTestClass()">Assert that the TestClass could be inserted into the database</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>.
|
|
||||||
<a href="../classes/hhn.temp.project.GoodCasesTest.html#assertEditingTasksIsPossibleThroughUi()">Check that editing is possible through UI</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>.
|
|
||||||
<a href="../classes/hhn.temp.project.GoodCasesTest.html#assertRemoveWorkerActuallyRemoves()">Assert that removing a worker removes the worker from the worker list</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td class="success">
|
|
||||||
<a href="../classes/hhn.temp.project.BadCasesTest.html">BadCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>8</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.021s</td>
|
|
||||||
<td class="success">100%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="success">
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseBadCasesTest.html">DatabaseBadCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.027s</td>
|
|
||||||
<td class="success">100%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">
|
|
||||||
<a href="../classes/hhn.temp.project.DatabaseGoodCasesTest.html">DatabaseGoodCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>3</td>
|
|
||||||
<td>3</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>1.711s</td>
|
|
||||||
<td class="failures">0%</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="failures">
|
|
||||||
<a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>
|
|
||||||
</td>
|
|
||||||
<td>13</td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>0</td>
|
|
||||||
<td>0.051s</td>
|
|
||||||
<td class="failures">84%</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 04.01.2026, 16:32:20</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<testsuite name="hhn.temp.project.BadCasesTest" tests="8" skipped="0" failures="0" errors="0" timestamp="2026-01-04T15:32:20.146Z" hostname="KEVIN-THINKPAD" time="0.035">
|
|
||||||
<properties/>
|
|
||||||
<testcase name="Assert List isn't empty after adding a task" classname="hhn.temp.project.BadCasesTest" time="0.004"/>
|
|
||||||
<testcase name="Assert non-existent commands are recognized as such" classname="hhn.temp.project.BadCasesTest" time="0.001"/>
|
|
||||||
<testcase name="Assert that Remove Task is programmed defensively" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
|
|
||||||
<testcase name="Assert that removing a non-existent worker throws an Exception" classname="hhn.temp.project.BadCasesTest" time="0.002"/>
|
|
||||||
<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.004"/>
|
|
||||||
<testcase name="Assert that un-/finishing a Task only works with valid parameters" classname="hhn.temp.project.BadCasesTest" time="0.003"/>
|
|
||||||
<testcase name="Assert that added tasks can't be Null" classname="hhn.temp.project.BadCasesTest" time="0.003"/>
|
|
||||||
<system-out><![CDATA[Unknown command. Type 'help' for available commands.
|
|
||||||
]]></system-out>
|
|
||||||
<system-err><![CDATA[]]></system-err>
|
|
||||||
</testsuite>
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<testsuite name="hhn.temp.project.GoodCasesTest" tests="13" skipped="0" failures="2" errors="0" timestamp="2026-01-04T15:32:20.071Z" hostname="KEVIN-THINKPAD" time="0.067">
|
|
||||||
<properties/>
|
|
||||||
<testcase name="Check Getters" classname="hhn.temp.project.GoodCasesTest" time="0.014"/>
|
|
||||||
<testcase name="Check that editing is possible through UI" classname="hhn.temp.project.GoodCasesTest" time="0.008">
|
|
||||||
<failure message="org.opentest4j.AssertionFailedError: expected: <Walk> but was: <Run>" type="org.opentest4j.AssertionFailedError">org.opentest4j.AssertionFailedError: expected: <Walk> but was: <Run>
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
|
|
||||||
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
|
|
||||||
at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1141)
|
|
||||||
at app//hhn.temp.project.GoodCasesTest.assertEditingTasksIsPossibleThroughUi(GoodCasesTest.java:133)
|
|
||||||
at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
</failure>
|
|
||||||
</testcase>
|
|
||||||
<testcase name="Check that every required surface command actually works" classname="hhn.temp.project.GoodCasesTest" time="0.004"/>
|
|
||||||
<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.001"/>
|
|
||||||
<testcase name="Check that every task command works" classname="hhn.temp.project.GoodCasesTest" time="0.005"/>
|
|
||||||
<testcase name="Assert that a Worker can add a Task" classname="hhn.temp.project.GoodCasesTest" time="0.001"/>
|
|
||||||
<testcase name="Assert that removing Workers is possible through the UI" classname="hhn.temp.project.GoodCasesTest" time="0.002"/>
|
|
||||||
<testcase name="Assert existing Tasks can be edited" classname="hhn.temp.project.GoodCasesTest" time="0.003"/>
|
|
||||||
<testcase name="Assert that removing a worker removes the worker from the worker list" classname="hhn.temp.project.GoodCasesTest" time="0.005">
|
|
||||||
<failure message="org.opentest4j.AssertionFailedError: Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown." type="org.opentest4j.AssertionFailedError">org.opentest4j.AssertionFailedError: Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown.
|
|
||||||
at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
|
|
||||||
at app//org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:73)
|
|
||||||
at app//org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)
|
|
||||||
at app//org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3111)
|
|
||||||
at app//hhn.temp.project.GoodCasesTest.assertRemoveWorkerActuallyRemoves(GoodCasesTest.java:153)
|
|
||||||
at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
|
|
||||||
</failure>
|
|
||||||
</testcase>
|
|
||||||
<testcase name="Assert that the Scanner is actually started when AM calls start" classname="hhn.temp.project.GoodCasesTest" time="0.002"/>
|
|
||||||
<testcase name="Assert that Task State is actually changed when submitted as finished" classname="hhn.temp.project.GoodCasesTest" time="0.004"/>
|
|
||||||
<testcase name="Assert deleted Tasks no longer show up in the List" classname="hhn.temp.project.GoodCasesTest" time="0.001"/>
|
|
||||||
<system-out><![CDATA[Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter new name;description: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Available commands:
|
|
||||||
createWorker - Create a new worker
|
|
||||||
createTask - Create a new task
|
|
||||||
selectTask - Select a task to work with
|
|
||||||
listWorkers - List all workers
|
|
||||||
help/? - Show this help
|
|
||||||
exit - Exit the program
|
|
||||||
Available commands:
|
|
||||||
createWorker - Create a new worker
|
|
||||||
createTask - Create a new task
|
|
||||||
selectTask - Select a task to work with
|
|
||||||
listWorkers - List all workers
|
|
||||||
help/? - Show this help
|
|
||||||
exit - Exit the program
|
|
||||||
Enter worker name: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter worker ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Enter task ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Task marked as finished
|
|
||||||
Task marked as unfinished
|
|
||||||
Task removed
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Enter worker ID: Error: Cannot invoke "java.util.Scanner.nextLine()" because "this.scanner" is null
|
|
||||||
Worker removed
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
Unknown command. Type 'help' for available commands.
|
|
||||||
]]></system-out>
|
|
||||||
<system-err><![CDATA[]]></system-err>
|
|
||||||
</testsuite>
|
|
||||||
19
docker/compose.yml
Normal 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:
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
[33mcommit bc0e30860cb3697296a4ef6ee22735a5c83cf522[m[33m ([m[1;36mHEAD[m[33m -> [m[1;32mdatabase[m[33m)[m
|
|
||||||
Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
|
|
||||||
Date: Wed Dec 3 17:30:33 2025 +0100
|
|
||||||
|
|
||||||
First database tests
|
|
||||||
|
|
||||||
[33mcommit 26f7ecbee653b98739e75eb8c4707745f252a1a8[m[33m ([m[1;31morigin/main[m[33m, [m[1;31morigin/HEAD[m[33m, [m[1;32mmain[m[33m)[m
|
|
||||||
Merge: 668a76e2 eed1390c
|
|
||||||
Author: Ferryry <rileymika99@gmail.com>
|
|
||||||
Date: Wed Dec 3 16:44:45 2025 +0100
|
|
||||||
|
|
||||||
Merge pull request 'Skeleton' (#1) from Skeleton into main
|
|
||||||
|
|
||||||
Reviewed-on: https://home.luithardt.cloud:5400/KevinSchoenmayer/GseTDDUebungKCLR/pulls/1
|
|
||||||
|
|
||||||
[33mcommit eed1390c6513f1b5e827fd6e09c91f54da7be463[m[33m ([m[1;31morigin/Skeleton[m[33m, [m[1;32mSkeleton[m[33m)[m
|
|
||||||
Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
|
|
||||||
Date: Wed Dec 3 16:42:41 2025 +0100
|
|
||||||
|
|
||||||
Remove database folder
|
|
||||||
|
|
||||||
[33mcommit b732d8d4b50abc5893d138c6a574fef0025981e0[m
|
|
||||||
Author: Riley Schneider <88947587+Ferryry@users.noreply.github.com>
|
|
||||||
Date: Wed Dec 3 16:38:10 2025 +0100
|
|
||||||
|
|
||||||
Initial Commit
|
|
||||||
|
|
||||||
[33mcommit c5e26bf594b282ab3d665590d0535b61afa18247[m
|
|
||||||
Author: KevinSchoenmayer <kschoenmay@stud.hs-heilbronn.de>
|
|
||||||
Date: Wed Dec 3 16:28:17 2025 +0100
|
|
||||||
|
|
||||||
Rough Skeleton for Tests and Classes
|
|
||||||
|
|
||||||
[33mcommit 668a76e26cfd908499bb74a7732269206062df86[m
|
|
||||||
Author: KevinSchoenmayer <kschoenmay@stud.hs-heilbronn.de>
|
|
||||||
Date: Wed Dec 3 15:26:09 2025 +0100
|
|
||||||
|
|
||||||
Initial Test Push
|
|
||||||
|
|
||||||
[33mcommit 2d963c7fd8ab188625c0e2bc9203c4d55ee07aa3[m
|
|
||||||
Author: KevinSchoenmayer <kschoenmay@stud.hs-heilbronn.de>
|
|
||||||
Date: Wed Dec 3 15:18:41 2025 +0100
|
|
||||||
|
|
||||||
Initial commit
|
|
||||||
1
resources/sql/CountAllFieldsTask.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT COUNT(*) AS total FROM Task
|
||||||
1
resources/sql/CountAllFieldsWorker.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT COUNT(*) AS total FROM Worker
|
||||||
1
resources/sql/DeleteTaskTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DELETE FROM Task WHERE taskid = ?
|
||||||
1
resources/sql/InsertTaskTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
INSERT INTO Task (taskid, name, description, workerid, taskstate) VALUES (?, ?, ?, ?, ?)
|
||||||
1
resources/sql/InsertWorkerTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
INSERT INTO Worker (workerid, name) VALUES (?, ?)
|
||||||
1
resources/sql/SelectAllTask.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT * FROM Task
|
||||||
1
resources/sql/SelectAllWorker.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT * FROM Worker
|
||||||
1
resources/sql/SelectTaskById.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT * FROM Task WHERE taskid = ? LIMIT 1
|
||||||
1
resources/sql/SelectTaskTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT * FROM Task WHERE workerid = ?
|
||||||
1
resources/sql/SelectWorkerById.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SELECT * FROM Worker WHERE workerid = ? LIMIT 1
|
||||||
1
resources/sql/UpdateTaskTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
UPDATE Task SET name = ?, description = ?, taskstate = ? WHERE taskid = ?
|
||||||
1
resources/sql/UpdateWorkerTable.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
UPDATE Worker SET workerid = ?, name = ? WHERE workerid = ?
|
||||||
8
resources/sql/createTaskTable.sql
Normal 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
|
||||||
|
);
|
||||||
5
resources/sql/createWorkerTable.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
CREATE TABLE Worker (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
workerid INT,
|
||||||
|
name VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||