title: JUnit test failing although expected exception is thrown
body: <p>I can't seem to figure out why one of my tests is failing.</p>
  
  <p>Here's the test:</p>
  
  <pre><code>@Test(expected = IllegalArgumentException.class)
  public void complainsIfFromLocIsDifferentObject() throws Throwable {
      board.set(make(), 1, 3); //Creates different rook from 'piece'
      assertFalse("ChessPiece Test 2", piece.isValidMove(getValidMove(1, 3), board));
  }
  </code></pre>
  
  <p>I've set a breakpoint and gone through the process multiple times. It goes into the second if-statement in the <code>ChessPiece</code> class, and seems to throw the exception. The process then goes back to the <code>Rook</code> class and returns false under the <code>super</code> block.</p>
  
  <p>Any ideas as to what's happening? Thanks</p>
  
  <p>Relevant code:</p>
  
  <pre><code>public class Rook extends ChessPiece {
  
      @Override
      public boolean isValidMove(Move m, IChessBoard b) {
          if (super.isValidMove(m, b) == false)
              return false;
  
          // Add logic specific to rook
          if(m.fromRow == m.toRow || m.fromColumn == m.toColumn)
              return true;
          else 
              return false;
      }
  }
  
  
  public abstract class ChessPiece implements IChessPiece {
  
      @Override
      public boolean isValidMove(Move m, IChessBoard b) {
  
          //Verify that there is a piece at the origin
          if (b.pieceAt(m.fromRow,m.fromColumn) == null)
              throw new IllegalArgumentException();
  
          // Verify that this piece is located at move origin
          IChessPiece piece = b.pieceAt(m.fromRow, m.fromColumn);
          if (this != piece)
              throw new IllegalArgumentException();
       }
  }
  </code></pre>