diff --git a/src/main/java/com/booleanuk/core/Account.java b/src/main/java/com/booleanuk/core/Account.java new file mode 100644 index 0000000..6903852 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Account.java @@ -0,0 +1,27 @@ +package com.booleanuk.core; + + +public class Account { + private String email; + private String password; + private boolean disabled; + public Account(String email, String password){ + this.email = email; + this.password = password; + this.disabled = true; + } + public void toggleDisabled(){ + this.disabled = !disabled; + } + public boolean isDisabled() { + return disabled; + } + + public String getPassword() { + return password; + } + + public String getEmail() { + return email; + } +} diff --git a/src/main/java/com/booleanuk/core/AccountManager.java b/src/main/java/com/booleanuk/core/AccountManager.java new file mode 100644 index 0000000..be22ad6 --- /dev/null +++ b/src/main/java/com/booleanuk/core/AccountManager.java @@ -0,0 +1,50 @@ +package com.booleanuk.core; + +import java.util.ArrayList; + +public class AccountManager { + private ArrayList accounts; + public AccountManager(){ + accounts = new ArrayList<>(); + } + public String createUser(String email, String password){ + if(!email.contains("@")){ + return "invalid email"; + } + else if(password.length() < 8){ + return "invalid password"; + } + accounts.add(new Account(email, password)); + return "account created"; + } + public String loginUser(String email, String password) { + for (Account a : accounts) { + if (a.getEmail().equals(email) && a.isDisabled()) { + return "account disabled"; + } else if (a.getEmail().equals(email) && a.getPassword().equals(password)) { + return "login success"; + } + + + } + return "user not found"; + } + public void toggleUserDisabled(String email){ + for(Account a : accounts ){ + if(a.getEmail().equals(email)){ + a.toggleDisabled(); + return; + } + } + } + public Account getAccountByEmail(String email) { + for(Account a : accounts){ + if(a.getEmail().equals(email)){ + return a; + } + } + return null; + } + + +} diff --git a/src/main/java/com/booleanuk/core/TodoItem.java b/src/main/java/com/booleanuk/core/TodoItem.java index 655d825..8299b79 100644 --- a/src/main/java/com/booleanuk/core/TodoItem.java +++ b/src/main/java/com/booleanuk/core/TodoItem.java @@ -1,21 +1,27 @@ 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 void toggleStatus() { + this.status = !status; } + public boolean getStatus() { - public String getStatus() { return this.status; } + public String getTitle() { + return title; + } + + public String getDetail() { + return detail; + } } diff --git a/src/test/java/com/booleanuk/core/AccountAccountManagerTest.java b/src/test/java/com/booleanuk/core/AccountAccountManagerTest.java new file mode 100644 index 0000000..1ba2fc3 --- /dev/null +++ b/src/test/java/com/booleanuk/core/AccountAccountManagerTest.java @@ -0,0 +1,45 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class AccountAccountManagerTest { + @Test + public void testCreatingUserWithInvalidPassword(){ + AccountManager s = new AccountManager(); + Assertions.assertEquals("invalid password", s.createUser("email@email.com", "passwor")); + } + @Test + public void testCreatingUserWithInvalidEmail(){ + AccountManager s = new AccountManager(); + Assertions.assertEquals("invalid email", s.createUser("emailemail.com", "password")); + } + @Test + public void testCreatingAUserWithValidEmailAndPassword(){ + AccountManager s = new AccountManager(); + Assertions.assertEquals("account created", s.createUser("email@email.com", "password")); + } + + @Test + public void testNewUserDisabledWhenCreated(){ + AccountManager s = new AccountManager(); + s.createUser("email@email.com", "password"); + Assertions.assertTrue(s.getAccountByEmail("email@email.com").isDisabled()); + } + + @Test + public void testSetUserToNotDisabled(){ + AccountManager s = new AccountManager(); + s.createUser("email@email.com", "password"); + Assertions.assertTrue(s.getAccountByEmail("email@email.com").isDisabled()); + s.toggleUserDisabled("email@email.com"); + Assertions.assertFalse(s.getAccountByEmail("email@email.com").isDisabled()); + } + + @Test + public void testLoginToAccountThatIsDisabled(){ + AccountManager s = new AccountManager(); + s.createUser("email@email.com", "password"); + Assertions.assertEquals("account disabled", s.loginUser("email@email.com", "password")); + } +} diff --git a/src/test/java/com/booleanuk/core/TodoItemTest.java b/src/test/java/com/booleanuk/core/TodoItemTest.java index 095af82..6462656 100644 --- a/src/test/java/com/booleanuk/core/TodoItemTest.java +++ b/src/test/java/com/booleanuk/core/TodoItemTest.java @@ -4,5 +4,23 @@ import org.junit.jupiter.api.Test; class TodoItemTest { + @Test + public void testTodoItemGetNameAndDetailAndStatus(){ + TodoItem ti = new TodoItem("Dinner", "Make dinner"); + Assertions.assertEquals("Dinner", ti.getTitle()); + Assertions.assertEquals("Make dinner", ti.getDetail()); + } + @Test + public void testTodoItemInitialStatusSetToFalse(){ + TodoItem ti = new TodoItem("Dinner", "Make dinner"); + Assertions.assertFalse(ti.getStatus()); + } + + @Test + public void testTodoItemToggleStatusShouldBeTrue(){ + TodoItem ti = new TodoItem("Dinner", "Make dinner"); + ti.toggleStatus(); + Assertions.assertTrue(ti.getStatus()); + } }