mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-12-25 10:07:35 +01:00
#392 Add datasource integration tests
This commit is contained in:
parent
12691a12f1
commit
27b1fa770f
@ -224,12 +224,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
return source.getAccountsRegistered();
|
return source.getAccountsRegistered();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateName(final String oldOne, final String newOne) { // unused method
|
|
||||||
source.updateName(oldOne, newOne);
|
|
||||||
cachedAuths.invalidate(oldOne);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateRealName(String user, String realName) {
|
public boolean updateRealName(String user, String realName) {
|
||||||
boolean result = source.updateRealName(user, realName);
|
boolean result = source.updateRealName(user, realName);
|
||||||
|
@ -169,14 +169,6 @@ public interface DataSource {
|
|||||||
*/
|
*/
|
||||||
int getAccountsRegistered();
|
int getAccountsRegistered();
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateName.
|
|
||||||
*
|
|
||||||
* @param oldOne String
|
|
||||||
* @param newOne String
|
|
||||||
*/
|
|
||||||
void updateName(String oldOne, String newOne);
|
|
||||||
|
|
||||||
boolean updateRealName(String user, String realName);
|
boolean updateRealName(String user, String realName);
|
||||||
|
|
||||||
boolean updateIp(String user, String ip);
|
boolean updateIp(String user, String ip);
|
||||||
|
@ -599,14 +599,6 @@ public class FlatFile implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateName(String oldOne, String newOne) {
|
|
||||||
PlayerAuth auth = this.getAuth(oldOne);
|
|
||||||
auth.setNickname(newOne);
|
|
||||||
this.saveAuth(auth);
|
|
||||||
this.removeAuth(oldOne);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateRealName(String user, String realName) {
|
public boolean updateRealName(String user, String realName) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package fr.xephi.authme.datasource;
|
package fr.xephi.authme.datasource;
|
||||||
|
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import com.zaxxer.hikari.pool.HikariPool.PoolInitializationException;
|
import com.zaxxer.hikari.pool.HikariPool.PoolInitializationException;
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
@ -81,6 +82,7 @@ public class MySQL implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
MySQL(NewSetting settings, HikariDataSource hikariDataSource) {
|
MySQL(NewSetting settings, HikariDataSource hikariDataSource) {
|
||||||
this.host = settings.getProperty(DatabaseSettings.MYSQL_HOST);
|
this.host = settings.getProperty(DatabaseSettings.MYSQL_HOST);
|
||||||
this.port = settings.getProperty(DatabaseSettings.MYSQL_PORT);
|
this.port = settings.getProperty(DatabaseSettings.MYSQL_PORT);
|
||||||
@ -817,18 +819,6 @@ public class MySQL implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateName(String oldOne, String newOne) {
|
|
||||||
String sql = "UPDATE " + tableName + " SET " + col.NAME + "=? WHERE " + col.NAME + "=?;";
|
|
||||||
try (Connection con = getConnection(); PreparedStatement pst = con.prepareStatement(sql)) {
|
|
||||||
pst.setString(1, newOne);
|
|
||||||
pst.setString(2, oldOne);
|
|
||||||
pst.executeUpdate();
|
|
||||||
} catch (SQLException ex) {
|
|
||||||
logSqlException(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateRealName(String user, String realName) {
|
public boolean updateRealName(String user, String realName) {
|
||||||
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
|
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
|
||||||
|
@ -523,21 +523,6 @@ public class SQLite implements DataSource {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateName(String oldOne, String newOne) {
|
|
||||||
PreparedStatement pst = null;
|
|
||||||
try {
|
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + col.NAME + "=? WHERE " + col.NAME + "=?;");
|
|
||||||
pst.setString(1, newOne);
|
|
||||||
pst.setString(2, oldOne);
|
|
||||||
pst.executeUpdate();
|
|
||||||
} catch (SQLException ex) {
|
|
||||||
logSqlException(ex);
|
|
||||||
} finally {
|
|
||||||
close(pst);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateRealName(String user, String realName) {
|
public boolean updateRealName(String user, String realName) {
|
||||||
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
|
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
|
||||||
|
@ -4,15 +4,18 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
|
|||||||
import fr.xephi.authme.security.crypts.HashedPassword;
|
import fr.xephi.authme.security.crypts.HashedPassword;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static fr.xephi.authme.datasource.AuthMeMatchers.equalToHash;
|
import static fr.xephi.authme.datasource.AuthMeMatchers.equalToHash;
|
||||||
import static fr.xephi.authme.datasource.AuthMeMatchers.hasAuthBasicData;
|
import static fr.xephi.authme.datasource.AuthMeMatchers.hasAuthBasicData;
|
||||||
import static fr.xephi.authme.datasource.AuthMeMatchers.hasAuthLocation;
|
import static fr.xephi.authme.datasource.AuthMeMatchers.hasAuthLocation;
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
import static org.hamcrest.Matchers.hasItem;
|
||||||
import static org.hamcrest.Matchers.hasSize;
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
import static org.hamcrest.Matchers.nullValue;
|
import static org.hamcrest.Matchers.nullValue;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
import static org.junit.Assume.assumeThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract class for data source integration tests.
|
* Abstract class for data source integration tests.
|
||||||
@ -201,4 +204,92 @@ public abstract class AbstractDataSourceIntegrationTest {
|
|||||||
assertThat(dataSource.getAuth("user"), hasAuthLocation(143, -42.12, 29.47, "the_end"));
|
assertThat(dataSource.getAuth("user"), hasAuthLocation(143, -42.12, 29.47, "the_end"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldDeletePlayers() {
|
||||||
|
// given
|
||||||
|
DataSource dataSource = getDataSource();
|
||||||
|
List<String> playersToDelete = Arrays.asList("bobby", "doesNotExist");
|
||||||
|
assumeThat(dataSource.getAccountsRegistered(), equalTo(2));
|
||||||
|
|
||||||
|
// when
|
||||||
|
dataSource.purgeBanned(playersToDelete);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(dataSource.getAccountsRegistered(), equalTo(1));
|
||||||
|
assertThat(dataSource.isAuthAvailable("bobby"), equalTo(false));
|
||||||
|
assertThat(dataSource.isAuthAvailable("user"), equalTo(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldUpdateEmail() {
|
||||||
|
// given
|
||||||
|
DataSource dataSource = getDataSource();
|
||||||
|
String email = "new-user@mail.tld";
|
||||||
|
PlayerAuth userAuth = PlayerAuth.builder().name("user").email(email).build();
|
||||||
|
PlayerAuth invalidAuth = PlayerAuth.builder().name("invalid").email("addr@example.com").build();
|
||||||
|
|
||||||
|
// when
|
||||||
|
boolean response1 = dataSource.updateEmail(userAuth);
|
||||||
|
boolean response2 = dataSource.updateEmail(invalidAuth);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(response1 && response2, equalTo(true));
|
||||||
|
assertThat(dataSource.getAllAuths(), hasItem(hasAuthBasicData("user", "user", email, "34.56.78.90")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldUpdateIp() {
|
||||||
|
// given
|
||||||
|
DataSource dataSource = getDataSource();
|
||||||
|
String ip = "250.230.67.73";
|
||||||
|
|
||||||
|
// when
|
||||||
|
boolean response1 = dataSource.updateIp("bobby", ip);
|
||||||
|
boolean response2 = dataSource.updateIp("bogus", "123.123.123.123");
|
||||||
|
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(response1 && response2, equalTo(true));
|
||||||
|
assertThat(dataSource.getAllAuths(), hasItem(hasAuthBasicData("bobby", "Bobby", "your@email.com", ip)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldCountAuths() {
|
||||||
|
// given
|
||||||
|
DataSource dataSource = getDataSource();
|
||||||
|
|
||||||
|
// when
|
||||||
|
int initialCount = dataSource.getAccountsRegistered();
|
||||||
|
for (int i = 0; i < 4; ++i) {
|
||||||
|
dataSource.saveAuth(PlayerAuth.builder().name("test-" + i).build());
|
||||||
|
}
|
||||||
|
int endCount = dataSource.getAccountsRegistered();
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(initialCount, equalTo(2));
|
||||||
|
assertThat(endCount, equalTo(6));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldGetAllUsersByIp() {
|
||||||
|
// given
|
||||||
|
DataSource dataSource = getDataSource();
|
||||||
|
|
||||||
|
// when
|
||||||
|
List<String> initialList = dataSource.getAllAuthsByIp("123.45.67.89");
|
||||||
|
List<String> emptyList = dataSource.getAllAuthsByIp("8.8.8.8");
|
||||||
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
dataSource.saveAuth(PlayerAuth.builder().name("test-" + i).ip("123.45.67.89").build());
|
||||||
|
}
|
||||||
|
List<String> updatedList = dataSource.getAllAuthsByIp("123.45.67.89");
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(initialList, hasSize(1));
|
||||||
|
assertThat(initialList.get(0), equalTo("bobby"));
|
||||||
|
assertThat(emptyList, hasSize(0));
|
||||||
|
assertThat(updatedList, hasSize(4));
|
||||||
|
assertThat(updatedList, hasItem(equalTo("bobby")));
|
||||||
|
assertThat(updatedList, hasItem(equalTo("test-1")));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user