From ebabcf4d2cd521c72ffe5d6711e7da1dbf987f8b Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Mon, 4 Sep 2023 14:15:38 +0200 Subject: [PATCH] Login Test + refractor hashcode & equals for players --- .../peeratcode/model/Player.java | 8 +- .../peeratcode/userstories/LoginTests.java | 77 +++++++++++++++++++ .../peeratcode/userstories/RegisterTests.java | 34 +++++--- 3 files changed, 105 insertions(+), 14 deletions(-) create mode 100644 test/be/jeffcheasey88/peeratcode/userstories/LoginTests.java diff --git a/src/be/jeffcheasey88/peeratcode/model/Player.java b/src/be/jeffcheasey88/peeratcode/model/Player.java index 2eb6ea2..d005140 100644 --- a/src/be/jeffcheasey88/peeratcode/model/Player.java +++ b/src/be/jeffcheasey88/peeratcode/model/Player.java @@ -8,7 +8,7 @@ import java.util.Set; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -public class Player implements Comparable { +public class Player implements Comparable{ private String pseudo; private String email; private String firstname; @@ -184,8 +184,8 @@ public class Player implements Comparable { } @Override - public int hashCode() { - return Objects.hash(email, pseudo); + public int hashCode(){ + return Objects.hash(email); } @Override @@ -197,6 +197,6 @@ public class Player implements Comparable { if (getClass() != obj.getClass()) return false; Player other = (Player) obj; - return Objects.equals(email, other.email) && Objects.equals(pseudo, other.pseudo); + return Objects.equals(email, other.email); } } diff --git a/test/be/jeffcheasey88/peeratcode/userstories/LoginTests.java b/test/be/jeffcheasey88/peeratcode/userstories/LoginTests.java new file mode 100644 index 0000000..bb612b8 --- /dev/null +++ b/test/be/jeffcheasey88/peeratcode/userstories/LoginTests.java @@ -0,0 +1,77 @@ +package be.jeffcheasey88.peeratcode.userstories; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; + +import be.jeffcheasey88.peeratcode.Main; +import be.jeffcheasey88.peeratcode.WebClient; + +@TestInstance(Lifecycle.PER_METHOD) +public class LoginTests extends BaseUserStoriesTest{ + + private Thread server; + private WebClient client; + + @BeforeEach + public void init(){ + super.init(); + getRepository().init(); + getRepository().reset(); + + server = new Thread(new Runnable(){ + @Override + public void run(){ + try { + Main.main(null); + } catch (Exception e){ + e.printStackTrace(); + }; + } + }); + server.start(); + client = new WebClient("localhost", 80); + + try { + client.register("user", "password", "mail@peerat.dev", "firstname", "lastname", "description"); + client.assertResponseCode(200); + client.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @AfterEach + public void stop(){ + server.interrupt(); + } + + @Test + public void normalLogin() throws Exception{ + client.auth("user", "password"); + client.assertResponseCode(200); + + } + + @Test + public void wrongPassword() throws Exception{ + client.auth("user", "password1"); + client.assertResponseCode(400); + } + + @Test + public void wrongUsername() throws Exception{ + client.auth("user1", "password"); + client.assertResponseCode(400); + } + + @Test + public void alreadyLoggedin() throws Exception{ + client.auth("user", "password"); + client.assertResponseCode(200); + client.auth("user", "password"); + client.assertResponseCode(403); + } +} diff --git a/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java b/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java index 6ae6699..00314ac 100644 --- a/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java +++ b/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.userstories; +import org.json.simple.JSONObject; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -47,27 +48,40 @@ public class RegisterTests extends BaseUserStoriesTest{ } @Test - public void pseudoAlreadyUse(){ - + public void pseudoAlreadyUse() throws Exception{ + client.register("test", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(200); + client.disconnect(); + client.register("test", "test", "test1@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(400); } @Test - public void emailAlreadyUse(){ - + public void emailAlreadyUse() throws Exception{ + client.register("test", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(200); + client.disconnect(); + client.register("test1", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(400); } @Test - public void emptyField(){ - + public void emptyField() throws Exception{ + client.register("","","",",","",""); + client.assertResponseCode(400); } @Test - public void lostField(){ - + public void lostField() throws Exception{ + client.route("/register", "POST", new JSONObject().toJSONString()); + client.assertResponseCode(400); } @Test - public void alreadyLoggedin(){ - + public void alreadyLoggedin() throws Exception{ + client.register("test", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(200); + client.register("test1", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(403); } }