diff --git a/src/main/java/com/booleanuk/core/TodoItem.java b/src/main/java/com/booleanuk/core/TodoItem.java index 655d825..2ec8c45 100644 --- a/src/main/java/com/booleanuk/core/TodoItem.java +++ b/src/main/java/com/booleanuk/core/TodoItem.java @@ -1,21 +1,51 @@ package com.booleanuk.core; public class TodoItem { - public String title; - public String detail; - public String status; + private String title; + private String detail; + private String status; - public TodoItem(String title, String detail, String status) { + public TodoItem(String title, String detail) { this.title = title; this.detail = detail; - this.status = status; + this.status = "incomplete"; + } + + public TodoItem(String title, String detail, String status) { + this(title, detail); + } + + public void changeStatus() { + if (status.equals("incomplete")) { + status = "complete"; + } else { + status = "incomplete"; + } } public void setStatus(String status) { - this.status = status; + if ((status.equals("incomplete") || status.equals("complete")) && !status.equals(this.status)) { + changeStatus(); + } } public String getStatus() { return this.status; } + + public String getTitle() { + return this.title; + } + + public String getDetail() { + return this.detail; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setDetail(String detail) { + this.detail = detail; + } } diff --git a/src/main/java/com/booleanuk/core/abstractionExercise2.png b/src/main/java/com/booleanuk/core/abstractionExercise2.png new file mode 100644 index 0000000..2305d90 Binary files /dev/null and b/src/main/java/com/booleanuk/core/abstractionExercise2.png differ diff --git a/src/test/java/com/booleanuk/core/TodoItemTest.java b/src/test/java/com/booleanuk/core/TodoItemTest.java index 095af82..a70d245 100644 --- a/src/test/java/com/booleanuk/core/TodoItemTest.java +++ b/src/test/java/com/booleanuk/core/TodoItemTest.java @@ -5,4 +5,45 @@ class TodoItemTest { + @Test + public void testGetTitle() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("Walk", todoItem.getTitle()); + } + + @Test + public void testGetDetail() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("Walk 5 km", todoItem.getDetail()); + } + + @Test + public void testGetStatus() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("incomplete", todoItem.getStatus()); + } + + @Test + public void testSetStatus() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("incomplete", todoItem.getStatus()); + todoItem.setStatus("complete"); + Assertions.assertEquals("complete", todoItem.getStatus()); + } + + @Test + public void testSetTitle() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("Walk", todoItem.getTitle()); + todoItem.setTitle("Jog"); + Assertions.assertEquals("Jog", todoItem.getTitle()); + } + + @Test + public void testSetDetail() { + TodoItem todoItem = new TodoItem("Walk", "Walk 5 km", "incomplete"); + Assertions.assertEquals("Walk 5 km", todoItem.getDetail()); + todoItem.setDetail("Jog 5 km"); + Assertions.assertEquals("Jog 5 km", todoItem.getDetail()); + } }