public void testPlayerVP() throws RulesBrokenException {
    PlayerColor blue = new PlayerColor("Blue", Color.blue, 'b');
    Player p = new Player(blue, changeNo, mockConstraints);
    Achievement largestArmy = new Achievement("Largest Army", 2, "LH", 'l', "LargestArmy", 1);

    mockListener.playerVPChanged(new PlayerEvent(p));
    expectLastCall().times(3);

    replay(mockListener);

    p.addPlayerListener(mockListener);

    p.setVP(10);
    p.add(largestArmy);
    p.remove(largestArmy);

    // check the remove works
    p.removePlayerListener(mockListener);

    // none of these should pass events to mockListener:
    p.setVP(12);
    p.add(largestArmy);
    p.remove(largestArmy);

    verify(mockListener);
  }