@Test
  public void saveGetAndUpdateSeriesWithEpisodes() {
    Series serie = new Series("EpisodeSeriesTest", "estID");
    List<Episode> eList = new ArrayList<>();
    eList.add(new Episode("title", "path1", 1, 1));
    eList.add(new Episode("title", "path2", 1, 2));
    serie.setEpisodes(eList);
    repository.save(serie);

    Series serieRe = repository.findByImdbId("estID");
    List<Episode> reEp = serieRe.getEpisodes();
    assertThat(reEp, hasSize(2));

    serieRe.getEpisodes().add(new Episode("title", "path3", 1, 3));
    repository.save(serieRe);

    serieRe = repository.findByImdbId("estID");
    reEp = serieRe.getEpisodes();
    assertThat(reEp, hasSize(3));

    Episode e = eRepository.findByFilePath("path1");
    assertEquals("title", e.getTitle());

    e = eRepository.findByFilePath("path2");
    assertEquals("title", e.getTitle());
  }
  @Test
  public void itReturnsEpisodeRepresentation() {
    Episode episode =
        new Episode() {
          @Override
          public String getTitle() {
            return "Newest episode";
          }

          @Override
          public Feed getFeed() {
            return new Feed() {
              @Override
              public String getId() {
                return "123";
              }

              @Override
              public String getTitle() {
                return "Awesome podcast";
              }
            };
          }

          @Override
          public Audio getAudio() {
            return new Audio() {
              @Override
              public String getUrl() {
                return "audio.mp3";
              }
            };
          }
        };

    String episodeRepresentation =
        format(
            "{ \"title\": %s, \"audioFilePath\": %s, \"feed\": { \"id\": %s, \"title\": %s } }",
            episode.getTitle(),
            episode.getAudioFilePath(),
            episode.getFeed().getId(),
            episode.getFeed().getTitle());

    assertThat(episode.toString(), is(episodeRepresentation));
  }
  @Test
  public void itReturnsAudioFilePath() {
    Episode episode =
        new Episode() {
          @Override
          public String getTitle() {
            return "Newest episode";
          }

          @Override
          public Feed getFeed() {
            return new Feed() {
              @Override
              public String getId() {
                return "123";
              }

              @Override
              public String getTitle() {
                return "Awesome podcast";
              }
            };
          }

          @Override
          public Audio getAudio() {
            return new Audio() {
              @Override
              public String getUrl() {
                return "audio.mp3";
              }
            };
          }
        };

    assertThat(
        episode.getAudioFilePath(),
        is(episode.getFeed().getId() + "/" + episode.getTitle() + ".mp3"));
  }
 @Test
 public void findByFilePath() {
   Episode e = repository.findByFilePath("testEpisode1.avi");
   assertThat(e.getTitle(), is("testEpisode1"));
 }