Package games.stendhal.server.entity.player

Source Code of games.stendhal.server.entity.player.UpdateConverterTest

/* $Id: UpdateConverterTest.java,v 1.10 2010/09/19 02:40:01 nhnb Exp $ */
/***************************************************************************
*                   (C) Copyright 2003-2010 - Stendhal                    *
***************************************************************************
***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************/
package games.stendhal.server.entity.player;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import marauroa.common.Log4J;
import marauroa.common.game.RPObject;
import marauroa.common.game.RPSlot;
import marauroa.server.game.db.DatabaseFactory;

import org.junit.BeforeClass;
import org.junit.Test;

import utilities.PlayerTestHelper;

/**
* Test the UpdateConverter class.
*
* @author Martin Fuchs
*/
public class UpdateConverterTest {

  @BeforeClass
  public static void setupClass() {
    Log4J.init();
    new DatabaseFactory().initializeDatabase();
  }

  /**
   * Tests for transformString.
   */
  @Test
  public void testTransformString() {
    assertEquals(null, UpdateConverter.updateItemName(null));
    assertEquals("", UpdateConverter.updateItemName(""));
    assertEquals("chicken", UpdateConverter.updateItemName("chicken"));
    assertEquals("enhanced chainmail", UpdateConverter.updateItemName("chain_armor_+1"));
    assertEquals("enhanced lion shield", UpdateConverter.updateItemName("lion_shield_+1"));
    assertEquals("enhanced lion shield", UpdateConverter.updateItemName("enhanced_lion_shield"));
    assertEquals("black book", UpdateConverter.updateItemName("black_book"));
    assertEquals("black book", UpdateConverter.updateItemName("book_black"));
    assertEquals("black book", UpdateConverter.updateItemName("book black"));
  }

  /**
   * Tests the killing slot upgrade transformation.
   */
  @Test
  public void testTransformKillSlot() {
    final Player player = PlayerTestHelper.createPlayer("player");

    RPSlot killSlot = player.getSlot("!kills");
    RPObject killStore = killSlot.getFirst();

    killStore.put("name", "solo");
    killStore.put("monster", "shared");
    killStore.put("cave_rat", "solo");

    final String oldID = killStore.get("id");

    UpdateConverter.updatePlayerRPObject(player);

    killSlot = player.getSlot("!kills");
    killStore = killSlot.getFirst();

    final String idDot = killStore.get(oldID + ".id");
    assertEquals(null, idDot);

    assertTrue(player.hasKilled("name"));
    assertTrue(player.hasKilled("monster"));
    assertFalse(player.hasKilled("cave_rat"));
    assertTrue(player.hasKilled("cave rat"));
  }

  /**
   * Tests the new killings slot functionality in conjunction with updatePlayerRPObject().
   */
  @Test
  public void testKillingRecords() {
    final Player player = PlayerTestHelper.createPlayer("player");

    player.setSoloKill("name");
    player.setSharedKill("monster");
    player.setSoloKill("cave rat");

    RPSlot killSlot = player.getSlot("!kills");
    RPObject killStore = killSlot.getFirst();
    final String oldID = killStore.get("id");

    UpdateConverter.updatePlayerRPObject(player);

    killSlot = player.getSlot("!kills");
    killStore = killSlot.getFirst();

    final String idDot = killStore.get(oldID + ".id");
    assertEquals(null, idDot);

    assertTrue(player.hasKilled("name"));
    assertTrue(player.hasKilled("monster"));
    assertTrue(player.hasKilled("cave rat"));
  }

  /**
   * Tests for renameQuest.
   */
  @Test
  public void testRenameQuest() {
    final Player player = PlayerTestHelper.createPlayer("player");

    // First we use only the old quest slot name.
    player.setQuest("Valo_concoct_potion", "3;mega potion;1200000000000");
    UpdateConverter.updateQuests(player);
    assertNull(player.getQuest("Valo_concoct_potion"));
    assertEquals("3;mega potion;1200000000000", player.getQuest("valo_concoct_potion"));

    // Now add the old name to the existing new one and see if they are accumulated correct.
    player.setQuest("Valo_concoct_potion", "8;mega potion;1300000000000");
    UpdateConverter.updateQuests(player);
    assertNull(player.getQuest("Valo_concoct_potion"));
    assertEquals("11;mega potion;1200000000000", player.getQuest("valo_concoct_potion"));
  }
 
  /**
   * Tests for renameQuest.
   */
  @Test
  public void testfixKillQuestsSlots() {
    final Player player = PlayerTestHelper.createPlayer("player");
    player.setQuest("kill_gnomes", "start");
    player.setQuest("clean_storage", "start");
    player.setQuest("kill_dhohr_nuggetcutter", "start");
    UpdateConverter.updateQuests(player);
    assertEquals(player.getQuest("clean_storage"), "start;rat,0,1,0,0,caverat,0,1,0,0,snake,0,1,0,0");
    assertEquals(player.getQuest("kill_gnomes"), "start;gnome,0,1,0,0,infantry gnome,0,1,0,0,cavalryman gnome,0,1,0,0");
    assertEquals(player.getQuest("kill_dhohr_nuggetcutter"), "start;Dhohr Nuggetcutter,0,1,0,0,mountain dwarf,0,1,0,0,mountain elder dwarf,0,1,0,0,mountain hero dwarf,0,1,0,0,mountain leader dwarf,0,1,0,0");   
  }
 
}
TOP

Related Classes of games.stendhal.server.entity.player.UpdateConverterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.