I'm running my code in Java Eclipse and noticing yellow and red highlights. Could you please help
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?
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:
Auditing Cases An Interactive Learning Approach
ISBN: 978-0132423502
4th Edition
Authors: Steven M Glover, Douglas F Prawitt