use of com.alessiodp.parties.common.storage.sql.dao.players.PlayersDao in project Parties by AlessioDP.
the class SQLDispatcherTest method testListParties.
@Test
public void testListParties(@TempDir Path tempDir) {
PartyManager mockPartyManager = mock(PartyManager.class);
when(mockPlugin.getPartyManager()).thenReturn(mockPartyManager);
when(mockPartyManager.initializeParty(any())).thenAnswer((mock) -> initializeParty(mockPlugin, mock.getArgument(0)));
PlayerManager mockPlayerManager = mock(PlayerManager.class);
when(mockPlugin.getPlayerManager()).thenReturn(mockPlayerManager);
when(mockPlayerManager.initializePlayer(any())).thenAnswer((mock) -> initializePlayer(mockPlugin, mock.getArgument(0)));
PartiesSQLDispatcher dispatcher = getSQLDispatcherH2();
PartiesDao daoParties = dispatcher.getConnectionFactory().getJdbi().onDemand(H2PartiesDao.class);
PlayersDao daoPlayers = dispatcher.getConnectionFactory().getJdbi().onDemand(H2PlayersDao.class);
populateWithParties(dispatcher, daoParties, daoPlayers);
listPartiesNumber(dispatcher);
listPartiesByName(dispatcher);
listPartiesByMembers(dispatcher);
listPartiesByKills(dispatcher);
listPartiesByExperience(dispatcher);
dispatcher.stop();
dispatcher = getSQLDispatcherSQLite(tempDir);
daoParties = dispatcher.getConnectionFactory().getJdbi().onDemand(SQLitePartiesDao.class);
daoPlayers = dispatcher.getConnectionFactory().getJdbi().onDemand(SQLitePlayersDao.class);
populateWithParties(dispatcher, daoParties, daoPlayers);
listPartiesNumber(dispatcher);
listPartiesByName(dispatcher);
listPartiesByMembers(dispatcher);
listPartiesByKills(dispatcher);
listPartiesByExperience(dispatcher);
dispatcher.stop();
dispatcher = getSQLDispatcherMySQL(mockPlugin);
if (dispatcher != null) {
daoParties = dispatcher.getConnectionFactory().getJdbi().onDemand(PartiesDao.class);
daoPlayers = dispatcher.getConnectionFactory().getJdbi().onDemand(PlayersDao.class);
populateWithParties(dispatcher, daoParties, daoPlayers);
listPartiesNumber(dispatcher);
listPartiesByName(dispatcher);
listPartiesByMembers(dispatcher);
listPartiesByKills(dispatcher);
listPartiesByExperience(dispatcher);
dispatcher.stop();
}
dispatcher = getSQLDispatcherMariaDB(mockPlugin);
if (dispatcher != null) {
daoParties = dispatcher.getConnectionFactory().getJdbi().onDemand(PartiesDao.class);
daoPlayers = dispatcher.getConnectionFactory().getJdbi().onDemand(PlayersDao.class);
populateWithParties(dispatcher, daoParties, daoPlayers);
listPartiesNumber(dispatcher);
listPartiesByName(dispatcher);
listPartiesByMembers(dispatcher);
listPartiesByKills(dispatcher);
listPartiesByExperience(dispatcher);
dispatcher.stop();
}
dispatcher = getSQLDispatcherPostgreSQL(mockPlugin);
if (dispatcher != null) {
daoParties = dispatcher.getConnectionFactory().getJdbi().onDemand(PostgreSQLPartiesDao.class);
daoPlayers = dispatcher.getConnectionFactory().getJdbi().onDemand(PostgreSQLPlayersDao.class);
populateWithParties(dispatcher, daoParties, daoPlayers);
listPartiesNumber(dispatcher);
listPartiesByName(dispatcher);
listPartiesByMembers(dispatcher);
listPartiesByKills(dispatcher);
listPartiesByExperience(dispatcher);
dispatcher.stop();
}
}
use of com.alessiodp.parties.common.storage.sql.dao.players.PlayersDao in project Parties by AlessioDP.
the class PartiesSQLDispatcher method getPartyByName.
@Override
public PartyImpl getPartyByName(String name) {
PartyImpl ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getByName(name)).orElse(null);
if (ret != null) {
ret.setAccessible(true);
ret.setMembers(this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(playersDao).getInParty(ret.getId().toString())));
ret.setAccessible(false);
}
return ret;
}
use of com.alessiodp.parties.common.storage.sql.dao.players.PlayersDao in project Parties by AlessioDP.
the class PartiesSQLDispatcher method getListFixed.
@Override
public Set<PartyImpl> getListFixed() {
Set<PartyImpl> ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getListFixed());
// Load members
for (PartyImpl party : ret) {
party.setAccessible(true);
party.setMembers(this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(playersDao).getInParty(party.getId().toString())));
party.setAccessible(false);
}
return ret;
}
use of com.alessiodp.parties.common.storage.sql.dao.players.PlayersDao in project Parties by AlessioDP.
the class PartiesSQLDispatcher method getParty.
@Override
public PartyImpl getParty(UUID id) {
PartyImpl ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).get(id.toString())).orElse(null);
if (ret != null) {
ret.setAccessible(true);
ret.setMembers(this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(playersDao).getInParty(id.toString())));
ret.setAccessible(false);
}
return ret;
}
use of com.alessiodp.parties.common.storage.sql.dao.players.PlayersDao in project Parties by AlessioDP.
the class PartiesSQLDispatcher method getListParties.
@Override
public LinkedHashSet<PartyImpl> getListParties(PartiesDatabaseManager.ListOrder order, int limit, int offset) {
LinkedHashSet<PartyImpl> ret;
List<String> blacklist = ConfigParties.ADDITIONAL_LIST_HIDDENPARTIES;
if (order == PartiesDatabaseManager.ListOrder.NAME)
ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getListByName(blacklist, limit, offset));
else if (order == PartiesDatabaseManager.ListOrder.MEMBERS)
ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getListByMembers(blacklist, limit, offset));
else if (order == PartiesDatabaseManager.ListOrder.KILLS)
ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getListByKills(blacklist, limit, offset));
else if (order == PartiesDatabaseManager.ListOrder.EXPERIENCE)
ret = this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(partiesDao).getListByExperience(blacklist, limit, offset));
else
throw new IllegalStateException("Cannot get the list of parties with the order " + order.name());
// Load members
for (PartyImpl party : ret) {
party.setAccessible(true);
party.setMembers(this.connectionFactory.getJdbi().withHandle(handle -> handle.attach(playersDao).getInParty(party.getId().toString())));
party.setAccessible(false);
}
return ret;
}
Aggregations