Question: I'm running my code in Java Eclipse and noticing yellow and red highlights. Could you please help me understand the reasons behind these errors?
I'm running my code in Java Eclipse and noticing yellow and red highlights. Could you please help me understand the reasons behind these errors?
Whenever I run the coverage as (JUnit) for the TaskTest it should to be 80% or higher, but instead mine is showing 75.1%.
I am also having a little problem whenever I run the coverage as (JUnit) for TestServiceTest. I was able to get the coverage at 92.7%, which is good, but I do see a section the is highlighted yellow, do I need to worry about that section?
My Code
Task.java
package Task;
public class Task {
private final String taskId;
private String name;
private String description;
public Task(String taskId, String name, String description) {
// Validate length of task ID
if (taskId == null || taskId.length() > 10) {
throw new IllegalArgumentException("ID cannot be longer than 10 characters");
}
// Validate length of name
if (name == null || name.length() > 20) {
throw new IllegalArgumentException("Name cannot be longer than 20 characters");
}
// Validate length of description
if (description == null || description.length() > 50) {
throw new IllegalArgumentException("Description cannot be longer than 50 characters");
}
this.taskId = taskId;
this.name = name;
this.description = description;
}
public String getTaskId() {
return taskId;
}
public String getName() {
return name;
}
public void setName(String name) {
if (name == null || name.length() > 20) {
throw new IllegalArgumentException("Name cannot be longer than 20 characters");
}
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
if (description == null || description.length() > 50) {
throw new IllegalArgumentException("Description cannot be longer than 50 characters");
}
this.description = description;
}
}
TaskService.java
package Task;
import java.util.HashMap;
import java.util.Map;
public class TaskService {
private final Map
public void addTask(Task task) {
taskMap.put(task.getTaskId(), task);
}
public void deleteTask(String taskId) {
taskMap.remove(taskId);
}
public void updateTaskName(String taskId, String newName) {
Task task = taskMap.get(taskId);
if (task == null) {
throw new IllegalArgumentException("Task with ID " + taskId + " not found");
}
task.setName(newName);
}
public void updateTaskDescription(String taskId, String newDescription) {
Task task = taskMap.get(taskId);
if (task == null) {
throw new IllegalArgumentException("Task with ID " + taskId + " not found");
}
task.setDescription(newDescription);
}
public Task getTaskById(String taskId) {
return taskMap.get(taskId);
}
}
TaskTest.java
package test;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertThrows;
import Task.Task;
import org.junit.jupiter.api.Test;
class TaskTest {
@Test
void testTaskInitialization() {
Task task = new Task("1", "TaskName", "TaskDescription");
assertEquals("1", task.getTaskId());
assertEquals("TaskName", task.getName());
assertEquals("TaskDescription", task.getDescription());
}
@Test
void testTaskNameUpdate() {
Task task = new Task("1", "TaskName", "TaskDescription");
task.setName("NewTaskName");
assertEquals("NewTaskName", task.getName());
}
@Test
void testTaskDescriptionUpdate() {
Task task = new Task("1", "TaskName", "TaskDescription");
task.setDescription("NewTaskDescription");
assertEquals("NewTaskDescription", task.getDescription());
}
@Test
void testGettersAndSetters() {
Task task = new Task("1", "InitialName", "InitialDescription");
task.setName("UpdatedName");
task.setDescription("UpdatedDescription");
assertEquals("UpdatedName", task.getName());
assertEquals("UpdatedDescription", task.getDescription());
}
@Test
void testEdgeCasesForStringLength() {
String tenCharacters = "1234567890"; // 10 characters
String twentyCharacters = "12345678901234567890"; // 20 characters
String fiftyCharacters = "12345678901234567890123456789012345678901234567890"; // 50 characters
Task task = new Task(tenCharacters, twentyCharacters, fiftyCharacters);
assertEquals(tenCharacters, task.getTaskId());
assertEquals(twentyCharacters, task.getName());
assertEquals(fiftyCharacters, task.getDescription());
}
@Test
void testTaskConstructorWithNullValues() {
assertThrows(IllegalArgumentException.class, () -> new Task(null, "ValidName", "ValidDescription"));
assertThrows(IllegalArgumentException.class, () -> new Task("1", null, "ValidDescription"));
assertThrows(IllegalArgumentException.class, () -> new Task("1", "ValidName", null));
}
@Test
void testTaskConstructorWithLongValues() {
assertThrows(IllegalArgumentException.class, () -> new Task("12345678901", "ValidName", "ValidDescription"));
assertThrows(IllegalArgumentException.class, () -> new Task("1", "NameThatIsWayTooLongToBeValid", "ValidDescription"));
assertThrows(IllegalArgumentException.class, () -> new Task("1", "ValidName", "DescriptionThatIsWayTooLongToBeValidAndShouldThrowAnException"));
}
}
TaskServiceTest.java
package test;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertThrows;
import Task.TaskService;
import Task.Task;
import org.junit.jupiter.api.Test;
class TaskServiceTest {
@Test
void testAddTask() {
TaskService taskService = new TaskService();
Task task = new Task("1", "TaskName", "TaskDescription");
taskService.addTask(task);
assertEquals(task, taskService.getTaskById("1"));
}
@Test
void testDeleteTask() {
TaskService taskService = new TaskService();
Task task = new Task("1", "TaskName", "TaskDescription");
taskService.addTask(task);
taskService.deleteTask("1");
assertNull(taskService.getTaskById("1"));
}
@Test
void testDeleteNonExistentTask() {
TaskService taskService = new TaskService();
taskService.deleteTask("nonExistentId"); // assuming no exception is thrown for deleting a non-existent task
assertNull(taskService.getTaskById("nonExistentId"));
}
@Test
void testUpdateTaskName() {
TaskService taskService = new TaskService();
Task task = new Task("1", "TaskName", "TaskDescription");
taskService.addTask(task);
taskService.updateTaskName("1", "NewTaskName");
assertEquals("NewTaskName", taskService.getTaskById("1").getName());
}
@Test
void testUpdateTaskDescription() {
TaskService taskService = new TaskService();
Task task = new Task("1", "TaskName", "TaskDescription");
taskService.addTask(task);
taskService.updateTaskDescription("1", "NewTaskDescription");
assertEquals("NewTaskDescription", taskService.getTaskById("1").getDescription());
}
@Test
void testUpdateTaskNameForNonExistentID() {
TaskService taskService = new TaskService();
assertThrows(IllegalArgumentException.class, () -> taskService.updateTaskName("nonExistentId", "NewName"));
}
@Test
void testUpdateTaskDescriptionForNonExistentID() {
TaskService taskService = new TaskService();
assertThrows(IllegalArgumentException.class, () -> taskService.updateTaskDescription("nonExistentId", "NewDescription"));
}
}
After Running Coverage As (JUnit) for TaskTest.java:
TaskTest.Java

After Running the Coverage As (JUnit) for TestServiceTest.java:
TestServiceTest.java
Task.java 3 TaskService.java 3 public class Task ( 12 13 16 17 18 20 21 22 23 24 25 26 27 28 30 316 32 private final String taskId: private String name: private String description; Task Test.java public Task (String taskid, String name, String description) { // Validate length of task ID if (taskId = null || taskid.length() > 10) { throw new IllegalArgumentException ("ID cannot be longer than 10 characters"); } } } // Validate length of name if (name == null || name.length() > 20) { throw new IllegalArgumentException ("Name cannot be longer than 20 characters"); } TaskServiceTest.java // Validate length of description if (description = null II description.length() > 50) { throw new IllegalArgumentException ("Description cannot be longer than 50 characters"); public String getTaskId() { return taskid; this.taskId = taskId: this.name name; this.description description; public String getName() { return name;
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
