@Test
  public void testCorrectStatusUpdatesAreSent()
      throws FileNotFoundException, NDPReadException, ImageTilingException {
    ImageInformation info = createImageInformation();

    // setup mocks so we get 3x4 tiles
    when(tilePositions.getTileXPositions()).thenReturn(Arrays.asList(new Long[] {1L, 2L, 3L}));
    when(tilePositions.getTileYPositions()).thenReturn(Arrays.asList(new Long[] {5L, 7L, 9L, 11L}));
    when(tilePositions.getTileWidthInPixels()).thenReturn(20);
    when(tilePositions.getTileHeightInPixels()).thenReturn(10);
    when(tilePositions.getTotalNumberOfTiles()).thenReturn(12);

    File outputDirectory = temporaryFolder.newFolder("output");

    splitter.tileImage("testfile", tilePositions, info, 30, outputDirectory, statusUpdater);

    // check that we got updates for tiles 1-12 being completed
    verify(statusUpdater).setNumberOfTiles(12);
    verify(statusUpdater).setNumberOfTilesCompleted(0);
    verify(statusUpdater).setNumberOfTilesCompleted(1);
    verify(statusUpdater).setNumberOfTilesCompleted(2);
    verify(statusUpdater).setNumberOfTilesCompleted(3);
    verify(statusUpdater).setNumberOfTilesCompleted(4);
    verify(statusUpdater).setNumberOfTilesCompleted(5);
    verify(statusUpdater).setNumberOfTilesCompleted(6);
    verify(statusUpdater).setNumberOfTilesCompleted(7);
    verify(statusUpdater).setNumberOfTilesCompleted(8);
    verify(statusUpdater).setNumberOfTilesCompleted(9);
    verify(statusUpdater).setNumberOfTilesCompleted(10);
    verify(statusUpdater).setNumberOfTilesCompleted(11);
    verify(statusUpdater).setNumberOfTilesCompleted(12);
    verifyNoMoreInteractions(statusUpdater);
  }