Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2014-07-18 06:52:38 +0000
committerJan Bartel2014-07-18 07:02:41 +0000
commitd580c3279b5c99e2211063fbcc7e159228628981 (patch)
tree3db0fdea947aa47797690712c2aee8be3d1e0674
parente9a77b6ac76f10e9caca3cee0d76a443df05ae3d (diff)
downloadorg.eclipse.jetty.project-d580c3279b5c99e2211063fbcc7e159228628981.tar.gz
org.eclipse.jetty.project-d580c3279b5c99e2211063fbcc7e159228628981.tar.xz
org.eclipse.jetty.project-d580c3279b5c99e2211063fbcc7e159228628981.zip
Make LoginService tests use single database and drop and recreate tables
-rw-r--r--tests/test-loginservice/src/test/java/org/eclipse/jetty/DataSourceLoginServiceTest.java33
-rw-r--r--tests/test-loginservice/src/test/java/org/eclipse/jetty/DatabaseLoginServiceTestServer.java44
-rw-r--r--tests/test-loginservice/src/test/java/org/eclipse/jetty/JdbcLoginServiceTest.java27
-rw-r--r--tests/test-loginservice/src/test/resources/droptables.sql6
-rw-r--r--tests/test-loginservice/src/test/resources/jdbcrealm.properties2
5 files changed, 72 insertions, 40 deletions
diff --git a/tests/test-loginservice/src/test/java/org/eclipse/jetty/DataSourceLoginServiceTest.java b/tests/test-loginservice/src/test/java/org/eclipse/jetty/DataSourceLoginServiceTest.java
index b635cb5980..8a695557b2 100644
--- a/tests/test-loginservice/src/test/java/org/eclipse/jetty/DataSourceLoginServiceTest.java
+++ b/tests/test-loginservice/src/test/java/org/eclipse/jetty/DataSourceLoginServiceTest.java
@@ -53,29 +53,42 @@ import org.junit.Test;
*/
public class DataSourceLoginServiceTest
{
+
+
public static final String _content = "This is some protected content";
private static File _docRoot;
- private static File _dbRoot;
private static HttpClient _client;
private static String __realm = "DSRealm";
private static URI _baseUri;
private static final int __cacheInterval = 200;
private static DatabaseLoginServiceTestServer _testServer;
+
+
+
@BeforeClass
public static void setUp() throws Exception
{
- _docRoot = MavenTestingUtils.getTargetTestingDir(DataSourceLoginServiceTest.class.getSimpleName());
- FS.ensureEmpty(_docRoot);
-
+
+ _docRoot = MavenTestingUtils.getTargetTestingDir("loginservice-test");
+ FS.ensureDirExists(_docRoot);
+
File content = new File(_docRoot,"input.txt");
FileOutputStream out = new FileOutputStream(content);
out.write(_content.getBytes("utf-8"));
out.close();
- File scriptFile = MavenTestingUtils.getTestResourceFile("createdb.sql");
- _dbRoot = DatabaseLoginServiceTestServer.createDB(scriptFile,"dstest");
+ //clear previous runs
+ File scriptFile = MavenTestingUtils.getTestResourceFile("droptables.sql");
+ int result = DatabaseLoginServiceTestServer.runscript(scriptFile);
+ //ignore result as derby spits errors for dropping tables that dont exist
+
+ //create afresh
+ scriptFile = MavenTestingUtils.getTestResourceFile("createdb.sql");
+ result = DatabaseLoginServiceTestServer.runscript(scriptFile);
+ assertThat("runScript result",result, is(0));
+
_testServer = new DatabaseLoginServiceTestServer();
_testServer.setResourceBase(_docRoot.getAbsolutePath());
_testServer.setLoginService(configureLoginService());
@@ -115,7 +128,8 @@ public class DataSourceLoginServiceTest
//create a datasource
EmbeddedDataSource ds = new EmbeddedDataSource();
- ds.setDatabaseName(_dbRoot.getAbsolutePath());
+ File db = new File (DatabaseLoginServiceTestServer.getDbRoot(), "loginservice");
+ ds.setDatabaseName(db.getAbsolutePath());
org.eclipse.jetty.plus.jndi.Resource binding = new org.eclipse.jetty.plus.jndi.Resource(null, "dstest",
ds);
assertThat("Created binding for dstest", binding, notNullValue());
@@ -157,9 +171,10 @@ public class DataSourceLoginServiceTest
protected void changePassword (String user, String newpwd) throws Exception
{
Loader.loadClass(this.getClass(), "org.apache.derby.jdbc.EmbeddedDriver").newInstance();
- try (Connection connection = DriverManager.getConnection("jdbc:derby:dstest", "", ""))
+ try (Connection connection = DriverManager.getConnection(DatabaseLoginServiceTestServer.__dbURL, "", "");
+ Statement stmt = connection.createStatement())
{
- Statement stmt = connection.createStatement();
+ connection.setAutoCommit(true);
stmt.executeUpdate("update users set pwd='"+newpwd+"' where username='"+user+"'");
}
diff --git a/tests/test-loginservice/src/test/java/org/eclipse/jetty/DatabaseLoginServiceTestServer.java b/tests/test-loginservice/src/test/java/org/eclipse/jetty/DatabaseLoginServiceTestServer.java
index 322e407c65..8f81f4e4bb 100644
--- a/tests/test-loginservice/src/test/java/org/eclipse/jetty/DatabaseLoginServiceTestServer.java
+++ b/tests/test-loginservice/src/test/java/org/eclipse/jetty/DatabaseLoginServiceTestServer.java
@@ -19,9 +19,6 @@
package org.eclipse.jetty;
-import static org.hamcrest.Matchers.*;
-import static org.junit.Assert.*;
-
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -65,6 +62,7 @@ import org.eclipse.jetty.util.security.Constraint;
*/
public class DatabaseLoginServiceTestServer
{
+ protected static String __dbURL = "jdbc:derby:loginservice;create=true";
protected Server _server;
protected static String _protocol;
protected static URI _baseUri;
@@ -74,30 +72,30 @@ public class DatabaseLoginServiceTestServer
private static File commonDerbySystemHome;
protected static String _requestContent;
- protected static File createDB(File scriptFile, String dbName) throws Exception
+ protected static File _dbRoot;
+
+
+ static
{
- if(commonDerbySystemHome == null)
- {
- commonDerbySystemHome = MavenTestingUtils.getTargetTestingDir("derby-system-common");
- FS.ensureEmpty(commonDerbySystemHome);
- System.setProperty("derby.system.home", commonDerbySystemHome.getAbsolutePath());
- }
-
- String dbUrl = "jdbc:derby:directory:" + dbName + ";create=true";
-
+ _dbRoot = new File(MavenTestingUtils.getTargetTestingDir("loginservice-test"), "derby");
+ FS.ensureDirExists(_dbRoot);
+ System.setProperty("derby.system.home", _dbRoot.getAbsolutePath());
+ }
+
+ public static File getDbRoot ()
+ {
+ return _dbRoot;
+ }
+
+ public static int runscript (File scriptFile) throws Exception
+ {
+ //System.err.println("Running script:"+scriptFile.getAbsolutePath());
try (FileInputStream fileStream = new FileInputStream(scriptFile))
{
Loader.loadClass(fileStream.getClass(), "org.apache.derby.jdbc.EmbeddedDriver").newInstance();
- Connection connection = DriverManager.getConnection(dbUrl, "", "");
-
- OutputStream out = new ByteArrayOutputStream();
- int result = ij.runScript(connection, fileStream, "UTF-8", out, "UTF-8");
-
- assertThat("runScript result",result, is(0));
-
- File dbRoot = new File(commonDerbySystemHome, dbName);
- assertThat("exists: " + dbRoot, dbRoot.exists(), is(true));
- return dbRoot;
+ Connection connection = DriverManager.getConnection(__dbURL, "", "");
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ return ij.runScript(connection, fileStream, "UTF-8", out, "UTF-8");
}
}
diff --git a/tests/test-loginservice/src/test/java/org/eclipse/jetty/JdbcLoginServiceTest.java b/tests/test-loginservice/src/test/java/org/eclipse/jetty/JdbcLoginServiceTest.java
index 8ff5aa8d52..3a21d68149 100644
--- a/tests/test-loginservice/src/test/java/org/eclipse/jetty/JdbcLoginServiceTest.java
+++ b/tests/test-loginservice/src/test/java/org/eclipse/jetty/JdbcLoginServiceTest.java
@@ -18,8 +18,10 @@
package org.eclipse.jetty;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+
+
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
import java.io.File;
import java.io.FileInputStream;
@@ -49,6 +51,8 @@ import org.junit.Test;
public class JdbcLoginServiceTest
{
+
+
private static String _content =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In quis felis nunc. "+
"Quisque suscipit mauris et ante auctor ornare rhoncus lacus aliquet. Pellentesque "+
@@ -68,22 +72,31 @@ public class JdbcLoginServiceTest
private static String __realm = "JdbcRealm";
private static URI _baseUri;
private static DatabaseLoginServiceTestServer _testServer;
+
+
@BeforeClass
public static void setUp() throws Exception
{
- _docRoot = MavenTestingUtils.getTargetTestingDir(JdbcLoginServiceTest.class.getSimpleName());
- FS.ensureEmpty(_docRoot);
-
+ _docRoot = MavenTestingUtils.getTargetTestingDir("loginservice-test");
+ FS.ensureDirExists(_docRoot);
File content = new File(_docRoot,"input.txt");
+
try (FileOutputStream out = new FileOutputStream(content))
{
out.write(_content.getBytes("utf-8"));
}
+
+ //drop any tables that might have existed
+ File scriptFile = MavenTestingUtils.getTestResourceFile("droptables.sql");
+ int result = DatabaseLoginServiceTestServer.runscript(scriptFile);
+ //ignore result, if the tables dont already exist, derby spits out an error
- File scriptFile = MavenTestingUtils.getTestResourceFile("createdb.sql");
- DatabaseLoginServiceTestServer.createDB(scriptFile,"jdbcrealm");
+ //create the tables afresh
+ scriptFile = MavenTestingUtils.getTestResourceFile("createdb.sql");
+ result = DatabaseLoginServiceTestServer.runscript(scriptFile);
+ assertThat("runScript result",result, is(0));
File jdbcRealmFile = MavenTestingUtils.getTestResourceFile("jdbcrealm.properties");
diff --git a/tests/test-loginservice/src/test/resources/droptables.sql b/tests/test-loginservice/src/test/resources/droptables.sql
new file mode 100644
index 0000000000..3a9132d83e
--- /dev/null
+++ b/tests/test-loginservice/src/test/resources/droptables.sql
@@ -0,0 +1,6 @@
+DROP TABLE roles;
+
+DROP TABLE users;
+
+DROP TABLE user_roles;
+
diff --git a/tests/test-loginservice/src/test/resources/jdbcrealm.properties b/tests/test-loginservice/src/test/resources/jdbcrealm.properties
index bb79638ed6..9045aa1484 100644
--- a/tests/test-loginservice/src/test/resources/jdbcrealm.properties
+++ b/tests/test-loginservice/src/test/resources/jdbcrealm.properties
@@ -1,5 +1,5 @@
jdbcdriver = org.apache.derby.jdbc.EmbeddedDriver
-url = jdbc:derby:jdbcrealm
+url = jdbc:derby:loginservice
username =
password =
usertable = users

Back to the top