diff --git a/config-test.txt b/config-test.txt new file mode 100644 index 0000000..055bc3b --- /dev/null +++ b/config-test.txt @@ -0,0 +1,9 @@ +db_host=170.75.166.204 +db_port=3306 +db_user=admin1 +db_database=pac_test +db_password=admin@Pac +tcp_port=80 +token_issuer=localhost +token_expiration=10 +groupQuitMinutes=10 \ No newline at end of file diff --git a/database-schem.sql b/database-schem.sql new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/database-schem.sql @@ -0,0 +1 @@ + diff --git a/src/be/jeffcheasey88/peeratcode/Main.java b/src/be/jeffcheasey88/peeratcode/Main.java index 6d20f99..f18664d 100644 --- a/src/be/jeffcheasey88/peeratcode/Main.java +++ b/src/be/jeffcheasey88/peeratcode/Main.java @@ -58,7 +58,6 @@ public class Main{ router.register(new Response(){ @Route(path = "^(.*)$", type = OPTIONS) - @Override public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception { writer.response(200, "Access-Control-Allow-Origin: *", "Access-Control-Allow-Methods: *", "Access-Control-Allow-Headers: *"); diff --git a/test/be/jeffcheasey88/peeratcode/TestDatabaseRepository.java b/test/be/jeffcheasey88/peeratcode/TestDatabaseRepository.java new file mode 100644 index 0000000..fa77978 --- /dev/null +++ b/test/be/jeffcheasey88/peeratcode/TestDatabaseRepository.java @@ -0,0 +1,53 @@ +package be.jeffcheasey88.peeratcode; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.sql.Connection; + +import be.jeffcheasey88.peeratcode.repository.DatabaseRepository; + +public class TestDatabaseRepository extends DatabaseRepository{ + + private Connection con; + private String schem; + + public TestDatabaseRepository(Configuration config, File databaseSchem){ + super(config); + + try{ + schem = ""; + BufferedReader reader = new BufferedReader(new FileReader(databaseSchem)); + String line; + while((line = reader.readLine()) != null) schem+=line+"\n"; + reader.close(); + }catch(Exception e){ + e.printStackTrace(); + } + } + + public void init(){ + try { + Method method = DatabaseRepository.class.getDeclaredMethod("ensureConnection"); + method.setAccessible(true); + method.invoke(this); + + Field field = DatabaseRepository.class.getDeclaredField("con"); + field.setAccessible(true); + this.con = (Connection) field.get(this); + }catch(Exception e){ + e.printStackTrace(); + System.out.println(e.getCause()); + } + } + + public void reset(){ + try{ + this.con.prepareStatement(schem).execute(); + }catch(Exception e){ + e.printStackTrace(); + } + } +} diff --git a/test/be/jeffcheasey88/peeratcode/webclient/WebClient.java b/test/be/jeffcheasey88/peeratcode/WebClient.java similarity index 98% rename from test/be/jeffcheasey88/peeratcode/webclient/WebClient.java rename to test/be/jeffcheasey88/peeratcode/WebClient.java index 313098a..370aaff 100644 --- a/test/be/jeffcheasey88/peeratcode/webclient/WebClient.java +++ b/test/be/jeffcheasey88/peeratcode/WebClient.java @@ -1,4 +1,4 @@ -package be.jeffcheasey88.peeratcode.webclient; +package be.jeffcheasey88.peeratcode; import static org.junit.Assert.fail; diff --git a/test/be/jeffcheasey88/peeratcode/routes/PlayerDetailsTests.java b/test/be/jeffcheasey88/peeratcode/routes/PlayerDetailsTests.java index 07bcd91..84f8cc9 100644 --- a/test/be/jeffcheasey88/peeratcode/routes/PlayerDetailsTests.java +++ b/test/be/jeffcheasey88/peeratcode/routes/PlayerDetailsTests.java @@ -9,7 +9,7 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import be.jeffcheasey88.peeratcode.Main; -import be.jeffcheasey88.peeratcode.webclient.WebClient; +import be.jeffcheasey88.peeratcode.WebClient; @TestInstance(Lifecycle.PER_CLASS) class PlayerDetailsTests { diff --git a/test/be/jeffcheasey88/peeratcode/routes/ScoreTests.java b/test/be/jeffcheasey88/peeratcode/routes/ScoreTests.java index ca1ffe5..54f50f0 100644 --- a/test/be/jeffcheasey88/peeratcode/routes/ScoreTests.java +++ b/test/be/jeffcheasey88/peeratcode/routes/ScoreTests.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import be.jeffcheasey88.peeratcode.Main; -import be.jeffcheasey88.peeratcode.webclient.WebClient; +import be.jeffcheasey88.peeratcode.WebClient; @TestInstance(Lifecycle.PER_CLASS) public class ScoreTests { diff --git a/test/be/jeffcheasey88/peeratcode/routes/TmpRoutesTests.java b/test/be/jeffcheasey88/peeratcode/routes/TmpRoutesTests.java index 5aec156..9a56278 100644 --- a/test/be/jeffcheasey88/peeratcode/routes/TmpRoutesTests.java +++ b/test/be/jeffcheasey88/peeratcode/routes/TmpRoutesTests.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import be.jeffcheasey88.peeratcode.Main; -import be.jeffcheasey88.peeratcode.webclient.WebClient; +import be.jeffcheasey88.peeratcode.WebClient; @TestInstance(Lifecycle.PER_CLASS) public class TmpRoutesTests { diff --git a/test/be/jeffcheasey88/peeratcode/routes/TriggerTests.java b/test/be/jeffcheasey88/peeratcode/routes/TriggerTests.java index d570c7e..8e89e6c 100644 --- a/test/be/jeffcheasey88/peeratcode/routes/TriggerTests.java +++ b/test/be/jeffcheasey88/peeratcode/routes/TriggerTests.java @@ -9,7 +9,7 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import be.jeffcheasey88.peeratcode.Main; -import be.jeffcheasey88.peeratcode.webclient.WebClient; +import be.jeffcheasey88.peeratcode.WebClient; @TestInstance(Lifecycle.PER_CLASS) public class TriggerTests { diff --git a/test/be/jeffcheasey88/peeratcode/userstories/BaseUserStoriesTest.java b/test/be/jeffcheasey88/peeratcode/userstories/BaseUserStoriesTest.java new file mode 100644 index 0000000..6f47a32 --- /dev/null +++ b/test/be/jeffcheasey88/peeratcode/userstories/BaseUserStoriesTest.java @@ -0,0 +1,28 @@ +package be.jeffcheasey88.peeratcode.userstories; + +import java.io.File; + +import be.jeffcheasey88.peeratcode.Configuration; +import be.jeffcheasey88.peeratcode.TestDatabaseRepository; + +public class BaseUserStoriesTest { + + private Configuration config; + private TestDatabaseRepository repo; + + public BaseUserStoriesTest(){} + + public void init(){ + this.config = new Configuration("config-test.txt"); + this.repo = new TestDatabaseRepository(config, new File("database-schem.sql")); + } + + public Configuration getConfig(){ + return this.config; + } + + public TestDatabaseRepository getRepository(){ + return this.repo; + } + +} diff --git a/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java b/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java new file mode 100644 index 0000000..6ae6699 --- /dev/null +++ b/test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java @@ -0,0 +1,73 @@ +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 RegisterTests 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); + } + + @AfterEach + public void stop(){ + server.interrupt(); + } + + @Test + public void normalRegister() throws Exception{ + client.register("test", "test", "test@peerat.dev", "te", "st", "my desc"); + client.assertResponseCode(200); + } + + @Test + public void pseudoAlreadyUse(){ + + } + + @Test + public void emailAlreadyUse(){ + + } + + @Test + public void emptyField(){ + + } + + @Test + public void lostField(){ + + } + + @Test + public void alreadyLoggedin(){ + + } +}