/**
   * Analyses a replay.
   *
   * @throws ReplayAnalysisException unexpected
   */
  @Test
  @Ignore
  // disabled by default, since this integration test case can fail occasionally depending on timing
  // issues
  public void test() throws ReplayAnalysisException {
    ReplayAnalyserImpl analyser = new ReplayAnalyserImpl(this.versusScreenAnalyser);

    GameAndVersusScreen gameAndVersusScreen =
        analyser.analyse("src/test/resources/badhyper-vs-MvdR.mp4");
    Game game = gameAndVersusScreen.getGame();

    Assert.assertEquals(Umvc3Character.FELICIA, game.getTeamOne().getFirstCharacter());
    Assert.assertEquals(Umvc3Character.THOR, game.getTeamOne().getSecondCharacter());
    Assert.assertEquals(Umvc3Character.WESKER, game.getTeamOne().getThirdCharacter());

    Assert.assertEquals(Umvc3Character.WOLVERINE, game.getTeamTwo().getFirstCharacter());
    Assert.assertEquals(Umvc3Character.ZERO, game.getTeamTwo().getSecondCharacter());
    Assert.assertEquals(Umvc3Character.DOCTOR_DOOM, game.getTeamTwo().getThirdCharacter());

    assertPlayerName("badhyper", game.getPlayerOne().getGamertag());
    assertPlayerName("MvdR", game.getPlayerTwo().getGamertag());
  }
 /**
  * Attempts to analyse a file that is not a video file. This is expected to fail with a nice
  * ReplayAnalysisException.
  *
  * @throws ReplayAnalysisException expected exception
  */
 @Test(expected = ReplayAnalysisException.class)
 public void testTextFile() throws ReplayAnalysisException {
   ReplayAnalyserImpl analyser = new ReplayAnalyserImpl(this.versusScreenAnalyser);
   analyser.analyse("src/test/resources/test.txt");
 }
 /**
  * Attempts to analyse a file which can be decoded just fine, but does not contain a versus
  * screen. This is expected to fail with a nice ReplayAnalysisException.
  *
  * @throws ReplayAnalysisException expected exception
  */
 @Test(expected = ReplayAnalysisException.class)
 public void testEOF() throws ReplayAnalysisException {
   ReplayAnalyserImpl analyser = new ReplayAnalyserImpl(this.versusScreenAnalyser);
   // Xuggle can handle png files, and interprets them as a single frame video.
   analyser.analyse("src/test/resources/vswithoutnames.png");
 }