Added Tests for TaskState Changes. Actually added functionality to pass that test.

This commit is contained in:
2025-12-03 19:20:24 +01:00
parent 20daf315ca
commit 7640b1ef35
33 changed files with 122 additions and 59 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -54,5 +54,20 @@ public class AssignmentManager {
} }
<span class="fc" id="L55"> taskMap.remove(taskId);</span> <span class="fc" id="L55"> taskMap.remove(taskId);</span>
<span class="fc" id="L56"> }</span> <span class="fc" id="L56"> }</span>
public void finishTask(int workerId, int taskId) {
<span class="pc bpc" id="L58" title="2 of 4 branches missed."> if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {</span>
<span class="nc" id="L59"> throw new IllegalArgumentException(&quot;Task Id or Worker Id does not exist&quot;);</span>
}
<span class="fc" id="L61"> Task task = taskMap.get(taskId);</span>
<span class="fc" id="L62"> task.setTaskState(TaskState.FINISHED);</span>
<span class="fc" id="L63"> }</span>
public void unfinishTask(int workerId, int taskId) {
<span class="pc bpc" id="L65" title="2 of 4 branches missed."> if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {</span>
<span class="nc" id="L66"> throw new IllegalArgumentException(&quot;Task Id or Worker Id does not exist&quot;);</span>
}
<span class="fc" id="L68"> Task task = taskMap.get(taskId);</span>
<span class="fc" id="L69"> task.setTaskState(TaskState.IN_PROGRESS);</span>
<span class="fc" id="L70"> }</span>
} }
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html> </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html>

File diff suppressed because one or more lines are too long

View File

@@ -6,31 +6,39 @@ public class Task {
int taskId; int taskId;
int workerId; int workerId;
AssignmentManager manager; AssignmentManager manager;
<span class="fc" id="L9"> public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {</span> TaskState state;
<span class="fc" id="L10"> this.manager = manager;</span> <span class="fc" id="L10"> public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {</span>
<span class="fc" id="L11"> this.name = name;</span> <span class="fc" id="L11"> this.manager = manager;</span>
<span class="fc" id="L12"> this.description = description;</span> <span class="fc" id="L12"> this.name = name;</span>
<span class="fc" id="L13"> this.taskId = taskId;</span> <span class="fc" id="L13"> this.description = description;</span>
<span class="fc" id="L14"> this.workerId = workerId;</span> <span class="fc" id="L14"> this.taskId = taskId;</span>
<span class="fc" id="L15"> }</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() { public String getName() {
<span class="fc" id="L18"> return name;</span> <span class="fc" id="L20"> return name;</span>
} }
public void setName(String name) { public void setName(String name) {
<span class="fc" id="L21"> this.name = name;</span> <span class="fc" id="L23"> this.name = name;</span>
<span class="fc" id="L22"> }</span> <span class="fc" id="L24"> }</span>
public String getDescription() { public String getDescription() {
<span class="fc" id="L24"> return description;</span> <span class="fc" id="L26"> return description;</span>
} }
public void setDescription(String description) { public void setDescription(String description) {
<span class="fc" id="L27"> this.description = description;</span> <span class="fc" id="L29"> this.description = description;</span>
<span class="fc" id="L28"> }</span> <span class="fc" id="L30"> }</span>
public int getTaskId() { public int getTaskId() {
<span class="nc" id="L30"> return taskId;</span> <span class="nc" id="L32"> return taskId;</span>
} }
public int getWorkerId() { public int getWorkerId() {
<span class="nc" id="L33"> return workerId;</span> <span class="nc" 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>
} }
} }

View File

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

View File

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

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>hhn.temp.project</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <span class="el_package">hhn.temp.project</span></div><h1>hhn.temp.project</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">26 of 219</td><td class="ctr2">88 %</td><td class="bar">4 of 14</td><td class="ctr2">71 %</td><td class="ctr1">7</td><td class="ctr2">25</td><td class="ctr1">6</td><td class="ctr2">52</td><td class="ctr1">3</td><td class="ctr2">18</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="TaskState.html" class="el_class">TaskState</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k3">1</td><td class="ctr1" id="l0">1</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/redbar.gif" width="4" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="32" alt="32"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">7</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">15</td><td class="ctr1" id="j0">2</td><td class="ctr2" id="k0">7</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="AssignmentManager.html" class="el_class">AssignmentManager</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="116" height="10" title="146" alt="146"/></td><td class="ctr2" id="c1">96 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">71 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">14</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i0">28</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">7</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="11" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">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> <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>hhn.temp.project</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Template</a> &gt; <span class="el_package">hhn.temp.project</span></div><h1>hhn.temp.project</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">21 of 285</td><td class="ctr2">92 %</td><td class="bar">8 of 22</td><td class="ctr2">63 %</td><td class="ctr1">10</td><td class="ctr2">33</td><td class="ctr1">5</td><td class="ctr2">66</td><td class="ctr1">2</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/redbar.gif" width="8" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="111" height="10" title="192" alt="192"/></td><td class="ctr2" id="c2">92 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="14" alt="14"/></td><td class="ctr2" id="e0">63 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">20</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">38</td><td class="ctr1" id="j1">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/redbar.gif" width="3" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="42" alt="42"/></td><td class="ctr2" id="c3">87 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">9</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">19</td><td class="ctr1" id="j0">2</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="c0">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="c1">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>

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<?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">26 of 219</td><td class="ctr2">88 %</td><td class="bar">4 of 14</td><td class="ctr2">71 %</td><td class="ctr1">7</td><td class="ctr2">25</td><td class="ctr1">6</td><td class="ctr2">52</td><td class="ctr1">3</td><td class="ctr2">18</td><td class="ctr1">1</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/redbar.gif" width="14" height="10" title="26" alt="26"/><img src="jacoco-resources/greenbar.gif" width="105" height="10" title="193" alt="193"/></td><td class="ctr2" id="c0">88 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/><img src="jacoco-resources/greenbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">71 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">25</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">52</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">18</td><td class="ctr1" id="l0">1</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> <?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">21 of 285</td><td class="ctr2">92 %</td><td class="bar">8 of 22</td><td class="ctr2">63 %</td><td class="ctr1">10</td><td class="ctr2">33</td><td class="ctr1">5</td><td class="ctr2">66</td><td class="ctr1">2</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/redbar.gif" width="8" height="10" title="21" alt="21"/><img src="jacoco-resources/greenbar.gif" width="111" height="10" title="264" alt="264"/></td><td class="ctr2" id="c0">92 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="43" height="10" title="8" alt="8"/><img src="jacoco-resources/greenbar.gif" width="76" height="10" title="14" alt="14"/></td><td class="ctr2" id="e0">63 %</td><td class="ctr1" id="f0">10</td><td class="ctr2" id="g0">33</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">66</td><td class="ctr1" id="j0">2</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>

File diff suppressed because one or more lines are too long

View File

@@ -650,7 +650,7 @@ code + .copy-button {
<script type="text/javascript"> <script type="text/javascript">
function configurationCacheProblems() { return ( function configurationCacheProblems() { return (
// begin-report-data // begin-report-data
{"diagnostics":[{"locations":[{}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.14/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('exceptionFormat = <value>') instead."}]]}],"problemsReport":{"totalProblemCount":1,"buildName":"Template","requestedTasks":"jacocoTestCoverageVerification","documentationLink":"https://docs.gradle.org/8.14/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}} {"diagnostics":[{"locations":[{}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.14/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('exceptionFormat = <value>') instead."}]]}],"problemsReport":{"totalProblemCount":1,"buildName":"Template","requestedTasks":"test","documentationLink":"https://docs.gradle.org/8.14/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
// end-report-data // end-report-data
);} );}
</script> </script>

View File

@@ -41,7 +41,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.044s</div> <div class="counter">0.045s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@@ -78,19 +78,19 @@
<tr> <tr>
<td class="success">Assert only existing tasks can be edited</td> <td class="success">Assert only existing tasks can be edited</td>
<td class="success">assertEditOnlyExistingTasks()</td> <td class="success">assertEditOnlyExistingTasks()</td>
<td class="success">0.006s</td> <td class="success">0.005s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
<tr> <tr>
<td class="success">Assert List isn't empty after adding a task</td> <td class="success">Assert List isn't empty after adding a task</td>
<td class="success">assertListNowEmptyAfterAdd()</td> <td class="success">assertListNowEmptyAfterAdd()</td>
<td class="success">0.036s</td> <td class="success">0.037s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
<tr> <tr>
<td class="success">Assert that added tasks can't be Null</td> <td class="success">Assert that added tasks can't be Null</td>
<td class="success">assertNewTasksAreNotNull()</td> <td class="success">assertNewTasksAreNotNull()</td>
<td class="success">0.002s</td> <td class="success">0.003s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
</table> </table>
@@ -103,7 +103,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:03:16</p> <a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:19:51</p>
</div> </div>
</div> </div>
</body> </body>

View File

@@ -23,7 +23,7 @@
<tr> <tr>
<td> <td>
<div class="infoBox" id="tests"> <div class="infoBox" id="tests">
<div class="counter">6</div> <div class="counter">7</div>
<p>tests</p> <p>tests</p>
</div> </div>
</td> </td>
@@ -41,7 +41,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.010s</div> <div class="counter">0.013s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@@ -78,7 +78,7 @@
<tr> <tr>
<td class="success">Assert deleted Tasks no longer show up in the List</td> <td class="success">Assert deleted Tasks no longer show up in the List</td>
<td class="success">assertDeletedTasksDisappear()</td> <td class="success">assertDeletedTasksDisappear()</td>
<td class="success">0.001s</td> <td class="success">0.002s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
<tr> <tr>
@@ -90,7 +90,13 @@
<tr> <tr>
<td class="success">Check Getters</td> <td class="success">Check Getters</td>
<td class="success">assertGettersWorkCorrectly()</td> <td class="success">assertGettersWorkCorrectly()</td>
<td class="success">0.005s</td> <td class="success">0.004s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="success">Assert that Task State is actually changed when submitted as finished</td>
<td class="success">assertTaskStateChanges()</td>
<td class="success">0.002s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
<tr> <tr>
@@ -102,7 +108,7 @@
<tr> <tr>
<td class="success">Assert that a Worker can add a Task</td> <td class="success">Assert that a Worker can add a Task</td>
<td class="success">assertWorkerCanAddTask()</td> <td class="success">assertWorkerCanAddTask()</td>
<td class="success">0.001s</td> <td class="success">0.002s</td>
<td class="success">passed</td> <td class="success">passed</td>
</tr> </tr>
<tr> <tr>
@@ -121,7 +127,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:03:16</p> <a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:19:51</p>
</div> </div>
</div> </div>
</body> </body>

View File

@@ -20,7 +20,7 @@
<tr> <tr>
<td> <td>
<div class="infoBox" id="tests"> <div class="infoBox" id="tests">
<div class="counter">9</div> <div class="counter">10</div>
<p>tests</p> <p>tests</p>
</div> </div>
</td> </td>
@@ -38,7 +38,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.054s</div> <div class="counter">0.058s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@@ -82,10 +82,10 @@
<td class="success"> <td class="success">
<a href="packages/hhn.temp.project.html">hhn.temp.project</a> <a href="packages/hhn.temp.project.html">hhn.temp.project</a>
</td> </td>
<td>9</td> <td>10</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.054s</td> <td>0.058s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
@@ -112,17 +112,17 @@
<td>3</td> <td>3</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.044s</td> <td>0.045s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
<tr> <tr>
<td class="success"> <td class="success">
<a href="classes/hhn.temp.project.GoodCasesTest.html">hhn.temp.project.GoodCasesTest</a> <a href="classes/hhn.temp.project.GoodCasesTest.html">hhn.temp.project.GoodCasesTest</a>
</td> </td>
<td>6</td> <td>7</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.010s</td> <td>0.013s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</tbody> </tbody>
@@ -136,7 +136,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:03:16</p> <a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:19:51</p>
</div> </div>
</div> </div>
</body> </body>

View File

@@ -22,7 +22,7 @@
<tr> <tr>
<td> <td>
<div class="infoBox" id="tests"> <div class="infoBox" id="tests">
<div class="counter">9</div> <div class="counter">10</div>
<p>tests</p> <p>tests</p>
</div> </div>
</td> </td>
@@ -40,7 +40,7 @@
</td> </td>
<td> <td>
<div class="infoBox" id="duration"> <div class="infoBox" id="duration">
<div class="counter">0.054s</div> <div class="counter">0.058s</div>
<p>duration</p> <p>duration</p>
</div> </div>
</td> </td>
@@ -83,17 +83,17 @@
<td>3</td> <td>3</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.044s</td> <td>0.045s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
<tr> <tr>
<td class="success"> <td class="success">
<a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a> <a href="../classes/hhn.temp.project.GoodCasesTest.html">GoodCasesTest</a>
</td> </td>
<td>6</td> <td>7</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0.010s</td> <td>0.013s</td>
<td class="success">100%</td> <td class="success">100%</td>
</tr> </tr>
</table> </table>
@@ -106,7 +106,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label> </label>
</div>Generated by </div>Generated by
<a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:03:16</p> <a href="https://www.gradle.org">Gradle 8.14</a> at 03.12.2025, 19:19:51</p>
</div> </div>
</div> </div>
</body> </body>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<testsuite name="hhn.temp.project.BadCasesTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2025-12-03T18:03:16.604Z" hostname="KEVIN-THINKPAD" time="0.047"> <testsuite name="hhn.temp.project.BadCasesTest" tests="3" skipped="0" failures="0" errors="0" timestamp="2025-12-03T18:19:51.018Z" hostname="KEVIN-THINKPAD" time="0.047">
<properties/> <properties/>
<testcase name="Assert List isn't empty after adding a task" classname="hhn.temp.project.BadCasesTest" time="0.036"/> <testcase name="Assert List isn't empty after adding a task" classname="hhn.temp.project.BadCasesTest" time="0.037"/>
<testcase name="Assert only existing tasks can be edited" classname="hhn.temp.project.BadCasesTest" time="0.006"/> <testcase name="Assert only existing tasks can be edited" classname="hhn.temp.project.BadCasesTest" time="0.005"/>
<testcase name="Assert that added tasks can't be Null" classname="hhn.temp.project.BadCasesTest" time="0.002"/> <testcase name="Assert that added tasks can't be Null" classname="hhn.temp.project.BadCasesTest" time="0.003"/>
<system-out><![CDATA[]]></system-out> <system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err> <system-err><![CDATA[]]></system-err>
</testsuite> </testsuite>

View File

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

View File

@@ -54,4 +54,19 @@ public class AssignmentManager {
} }
taskMap.remove(taskId); taskMap.remove(taskId);
} }
public void finishTask(int workerId, int taskId) {
if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {
throw new IllegalArgumentException("Task Id or Worker Id does not exist");
}
Task task = taskMap.get(taskId);
task.setTaskState(TaskState.FINISHED);
}
public void unfinishTask(int workerId, int taskId) {
if (!workerMap.containsKey(workerId) || !taskMap.containsKey(taskId)) {
throw new IllegalArgumentException("Task Id or Worker Id does not exist");
}
Task task = taskMap.get(taskId);
task.setTaskState(TaskState.IN_PROGRESS);
}
} }

View File

@@ -6,12 +6,14 @@ public class Task {
int taskId; int taskId;
int workerId; int workerId;
AssignmentManager manager; AssignmentManager manager;
TaskState state;
public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) { public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {
this.manager = manager; this.manager = manager;
this.name = name; this.name = name;
this.description = description; this.description = description;
this.taskId = taskId; this.taskId = taskId;
this.workerId = workerId; this.workerId = workerId;
this.state = TaskState.IN_PROGRESS;
} }
public String getName() { public String getName() {
@@ -32,5 +34,11 @@ public class Task {
public int getWorkerId() { public int getWorkerId() {
return workerId; return workerId;
} }
public void setTaskState(TaskState state) {
this.state = state;
}
public TaskState getTaskState() {
return state;
}
} }

View File

@@ -66,5 +66,15 @@ public class GoodCasesTest {
//This one may be somewhat nonsensical, but it ensures the getId works so one may iterate over the workerMap //This one may be somewhat nonsensical, but it ensures the getId works so one may iterate over the workerMap
assertEquals(manager.workerMap.get(workerId).getId(), workerId); assertEquals(manager.workerMap.get(workerId).getId(), workerId);
} }
@Test
@DisplayName("Assert that Task State is actually changed when submitted as finished")
public void assertTaskStateChanges() {
int workerId = manager.createWorker("Alfred");
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
manager.finishTask(workerId, taskId);
assertSame(TaskState.FINISHED, manager.getTask(taskId).getTaskState());
manager.unfinishTask(workerId, taskId);
assertSame(TaskState.IN_PROGRESS, manager.getTask(taskId).getTaskState());
}
} }