*/
@Test
public void testPerform() throws Throwable {
DBTransaction transaction = TransactionPool.get().beginWork();
try {
AccountDAO accountDAO = DAORegister.get().get(AccountDAO.class);
CharacterDAO characterDAO = DAORegister.get().get(CharacterDAO.class);
BanAction ban = new BanAction();
Player player = PlayerTestHelper.createPlayer("bob");
RPAction action = new RPAction();
action.put("target", player.getName());
action.put("hours", -1);
action.put("reason", "Because we were testing banning");
// I don't know if this is still needed.
if (!accountDAO.hasPlayer(transaction, player.getName())) {
accountDAO.addPlayer(transaction, player.getName(), new byte[0], "schnubbel");
}
// we do a character check now. Made the the character name and the account name the same
if (!characterDAO.hasCharacter(transaction, player.getName(), player.getName())) {
characterDAO.addCharacter(transaction, player.getName(), player.getName(), player);
}
System.out.println(DAORegister.get().get(CharacterDAO.class).getAccountName(transaction, player.getName()));
accountDAO.setAccountStatus(transaction, player.getName(), "active");
assertEquals("active", accountDAO.getAccountStatus(transaction, player.getName()));
TransactionPool.get().commit(transaction);
ban.perform(player , action);
transaction = TransactionPool.get().beginWork();
assertEquals("banned", accountDAO.getAccountStatus(transaction, player.getName()));
// just undo the changes so the next test starts clean
TransactionPool.get().rollback(transaction);
} catch (Throwable e) {
TransactionPool.get().rollback(transaction);