diff --git a/ClassModel.png b/ClassModel.png new file mode 100644 index 0000000..8f90300 Binary files /dev/null and b/ClassModel.png differ diff --git a/src/main/java/com/booleanuk/core/BankAccount.java b/src/main/java/com/booleanuk/core/BankAccount.java new file mode 100644 index 0000000..a9b1552 --- /dev/null +++ b/src/main/java/com/booleanuk/core/BankAccount.java @@ -0,0 +1,22 @@ +package com.booleanuk.core; + +public class BankAccount { + private int balance; + + public BankAccount(double openingBalance) { + this.setBalance(openingBalance); + } + + public void depositAmount(double deposit) { + double newTotal = this.getBalance() + deposit; + this.setBalance(newTotal); + } + + public double getBalance() { + return this.balance/100.0; + } + + private void setBalance(double balance) { + this.balance = (int) (balance * 100); + } +} diff --git a/src/main/java/com/booleanuk/core/TodoItem.java b/src/main/java/com/booleanuk/core/TodoItem.java index 655d825..4f1fa16 100644 --- a/src/main/java/com/booleanuk/core/TodoItem.java +++ b/src/main/java/com/booleanuk/core/TodoItem.java @@ -1,21 +1,37 @@ package com.booleanuk.core; public class TodoItem { - public String title; - public String detail; - public String status; + private String title; + private String detail; + private boolean 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 = false; } - public void setStatus(String status) { - this.status = status; + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } + + public void setStatus() { + this.status = !this.status; } public String getStatus() { - return this.status; + return this.status?"Done":"Pending"; } } diff --git a/src/main/java/com/booleanuk/core/TrafficLight.java b/src/main/java/com/booleanuk/core/TrafficLight.java new file mode 100644 index 0000000..26ec0f7 --- /dev/null +++ b/src/main/java/com/booleanuk/core/TrafficLight.java @@ -0,0 +1,20 @@ +package com.booleanuk.core; + +public class TrafficLight { + private String colour; + public TrafficLight() { + this.colour = "green"; + } + + public boolean canGo() { + return this.colour.equals("green"); + } + + public void setGreen() { + this.colour = "green"; + } + + public void setRed() { + this.colour = "red"; + } +} \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/UserAccount.java b/src/main/java/com/booleanuk/core/UserAccount.java new file mode 100644 index 0000000..a8273cf --- /dev/null +++ b/src/main/java/com/booleanuk/core/UserAccount.java @@ -0,0 +1,51 @@ +package com.booleanuk.core; + +public class UserAccount { + private String emailAddress; + private String password; + private boolean isActivated; + + public UserAccount() { + this.isActivated = false; + } + + public String getEmailAddress() { + return emailAddress; + } + + public boolean setEmailAddress(String emailAddress) { + if (emailAddress.contains("@")){ + this.emailAddress = emailAddress; + System.out.println("Email set successfully."); + return true; + } else { + System.out.println("Invalid email address format."); + return false; + } + } + + public String getPassword() { + return password; + } + + public boolean setPassword(String password) { + if (password.length()<8){ + System.out.println("Password should be at least 8 characters long."); + return false; + } else { + this.password = password; + System.out.println("Password set successfully."); + return true; + } + + } + + public boolean getAccountStatus() { + System.out.println(!isActivated?"The account has not been activated yet.":"The account is currently active."); + return isActivated; + } + + public void activateAccount() { + isActivated = true; + } +} diff --git a/src/test/java/com/booleanuk/core/TodoItemTest.java b/src/test/java/com/booleanuk/core/TodoItemTest.java index 095af82..da4bcc8 100644 --- a/src/test/java/com/booleanuk/core/TodoItemTest.java +++ b/src/test/java/com/booleanuk/core/TodoItemTest.java @@ -4,5 +4,52 @@ import org.junit.jupiter.api.Test; class TodoItemTest { + @Test + public void shouldHaveTitle(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + Assertions.assertEquals("Walk Dog", tdi.getTitle()); + } + @Test + public void titleShouldChange(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + tdi.setTitle("Walk Family Dog"); + Assertions.assertEquals("Walk Family Dog", tdi.getTitle()); + } + + @Test + public void shouldHaveDetails(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + Assertions.assertEquals("Take Ralf out in the afternoon.", tdi.getDetail()); + } + + @Test + public void detailsShouldChange(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + tdi.setDetail("Take Ralf out in the evening."); + Assertions.assertEquals("Take Ralf out in the evening.", tdi.getDetail()); + } + + @Test + public void shouldStartAsPending(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + Assertions.assertEquals("Pending", tdi.getStatus()); + } + + @Test + public void shouldChangeStatusToDone(){ + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + tdi.setStatus(); + Assertions.assertEquals("Done", tdi.getStatus()); + } + + @Test + public void shouldCycleBackToPendingIfActuallyNotDone() { + TodoItem tdi = new TodoItem("Walk Dog", "Take Ralf out in the afternoon."); + Assertions.assertEquals("Pending", tdi.getStatus()); + tdi.setStatus(); + Assertions.assertEquals("Done", tdi.getStatus()); + tdi.setStatus(); + Assertions.assertEquals("Pending", tdi.getStatus()); + } } diff --git a/src/test/java/com/booleanuk/core/UserAccountTest.java b/src/test/java/com/booleanuk/core/UserAccountTest.java new file mode 100644 index 0000000..5209d30 --- /dev/null +++ b/src/test/java/com/booleanuk/core/UserAccountTest.java @@ -0,0 +1,42 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class UserAccountTest { + @Test + public void newAccountShouldBeDisabled() { + UserAccount acc = new UserAccount(); + Assertions.assertFalse(acc.getAccountStatus()); + } + + @Test + public void accountShouldActivate() { + UserAccount acc = new UserAccount(); + acc.activateAccount(); + Assertions.assertTrue(acc.getAccountStatus()); + } + + @Test + public void shouldHavePasswordCheck() { + UserAccount acc = new UserAccount(); + Assertions.assertFalse(acc.setPassword("abcdef")); + Assertions.assertTrue(acc.setPassword("12345678")); + } + + @Test + public void shouldHaveEmailCheck() { + UserAccount acc = new UserAccount(); + Assertions.assertFalse(acc.setEmailAddress("wrongEmailFormat.com")); + Assertions.assertTrue(acc.setEmailAddress("correctEmail@format.com")); + } + + @Test + public void onSuccessfulCreationShouldGetData() { + UserAccount acc = new UserAccount(); + Assertions.assertTrue(acc.setEmailAddress("correctEmail@format.com")); + Assertions.assertTrue(acc.setPassword("12345678")); + Assertions.assertEquals("correctEmail@format.com", acc.getEmailAddress()); + Assertions.assertEquals("12345678", acc.getPassword()); + } +}