/**
* Tests for validAttributeValidNameDifferentZone.
*/
@Test
public final void testValidAttributeValidNameDifferentZone() {
Player player = PlayerTestHelper.createPlayer("bob");
player.put("base_hp", 10);
StendhalRPZone zone = new StendhalRPZone("testzone");
StendhalRPZone zoneaway = new StendhalRPZone("testzonefaraway");
zone.add(player);
Player playerAway = PlayerTestHelper.createPlayer("bobaway");
playerAway.put("base_hp", 10);
zoneaway.add(playerAway);
MockStendlRPWorld.get().addRPZone(zone);
MockStendhalRPRuleProcessor.get().addPlayer(player);
MockStendlRPWorld.get().addRPZone(zoneaway);
MockStendhalRPRuleProcessor.get().addPlayer(playerAway);
assertNotNull(SingletonRepository.getRuleProcessor().getPlayer("bobaway"));
AlterAction action = new AlterAction();
RPAction rpAction = new RPAction();
rpAction.put("target", "bobaway");
rpAction.put("mode", "");
rpAction.put("stat", "hp");
rpAction.put("value", "50");
assertEquals(100, playerAway.getHP());
action.perform(player, rpAction);
assertEquals("reset to base", 10, playerAway.getHP());
playerAway.setHP(100);
rpAction.put("value", "-10");
assertEquals(100, playerAway.getHP());
action.perform(player, rpAction);
assertEquals(100, playerAway.getHP());
rpAction.put("value", "5");
assertEquals(100, playerAway.getHP());
action.perform(player , rpAction);
assertEquals(5, playerAway.getHP());
}