From 14b12634f8adc17572835fe16c811c813bd0af15 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Mon, 4 Sep 2023 12:44:48 +0200 Subject: [PATCH] Base test --- .gitignore | 1 + database-schem.sql | 1 + .../peeratcode/TestDatabaseRepository.java | 53 ++++++++++++++ .../peeratcode/{webclient => }/WebClient.java | 2 +- .../peeratcode/routes/PlayerDetailsTests.java | 2 +- .../peeratcode/routes/ScoreTests.java | 2 +- .../peeratcode/routes/TmpRoutesTests.java | 2 +- .../peeratcode/routes/TriggerTests.java | 2 +- .../userstories/BaseUserStoriesTest.java | 28 +++++++ .../peeratcode/userstories/RegisterTests.java | 73 +++++++++++++++++++ 10 files changed, 161 insertions(+), 5 deletions(-) create mode 100644 database-schem.sql create mode 100644 test/be/jeffcheasey88/peeratcode/TestDatabaseRepository.java rename test/be/jeffcheasey88/peeratcode/{webclient => }/WebClient.java (98%) create mode 100644 test/be/jeffcheasey88/peeratcode/userstories/BaseUserStoriesTest.java create mode 100644 test/be/jeffcheasey88/peeratcode/userstories/RegisterTests.java diff --git a/.gitignore b/.gitignore index c5a661b..68fa72b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ bin/ .project config.txt +config-test.txt dist/ testApi/ .apt_generated/* 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/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(){ + + } +}