/** Test renaming of Players including checking events are raised */
  public void testPlayerNaming() throws RulesBrokenException {
    PlayerColor blue = new PlayerColor("Blue", Color.blue, 'b');
    Player p = new Player(blue, changeNo, mockConstraints);

    mockListener.playerRenamed(new PlayerEvent(p));
    mockListener.playerRenamed(new PlayerEvent(p));
    replay(mockListener);

    p.addPlayerListener(mockListener);

    // Check the default name works
    assertEquals(p.getName(), blue.toString());

    // Can we change it (and does the right event fire?)
    p.setName("BLAH");

    assertEquals(p.getName(), "BLAH");

    // Back to where we started (along with another event)
    p.resetName();

    assertEquals(p.getName(), blue.toString());

    // Check the remove works (the next setName shouldn't send an event)
    p.removePlayerListener(mockListener);

    p.setName("MORE BLAHS");

    verify(mockListener);
  }