### Question:
SerieService implements DataService<SerieDto> { @Override public SerieDto createOrUpdate(SerieDto serieDto) { Review review = dtoToDbBuilder.buildReview(serieDto); TmdbSerie tmdbSerie = dtoToDbBuilder.buildTmdbSerie(serieDto); if(review != null){ reviewRepository.createOrUpdate(review); } if(tmdbSerie != null){ tmdbSerieRepository.createOrUpdate(tmdbSerie); } SerieReview serieReview = new SerieReview(serieDto.getKinoId(), tmdbSerie, review); serieReviewRepository.createOrUpdate(serieReview); return serieKinoDtoBuilder.build(serieReview); } SerieService(SerieReviewRepository serieReviewRepository, ReviewRepository reviewRepository, TmdbSerieRepository tmdbSerieRepository, TmdbGetterService tmdbGetterService, SerieKinoDtoBuilder serieKinoDtoBuilder, SerieDtoToDbBuilder dtoToDbBuilder);  SerieService(DaoSession daoSession, Context context); SerieDto getReview(long id); SerieDto getWithTmdbId(long movieId); @Override void delete(SerieDto serieDto); @Override SerieDto createOrUpdate(SerieDto serieDto); @Override void createOrUpdateWithTmdbId(List<SerieDto> serieDtos); void syncWithTmdb(long tmdbId); void updateTmdbInfo(SerieDto updatedDto, SerieReview serieReview); List<SerieDto> getAll(); List<SerieDto> getAllByRating(boolean asc); List<SerieDto> getAllByTitle(boolean asc);  }### Answer:
@Test public void createOrUpdateKino() { TmdbSerie tmdbKino = mock(TmdbSerie.class); doReturn(tmdbKino).when(toDbBuilder).buildTmdbSerie(serieDto); Review review = mock(Review.class); doReturn(review).when(toDbBuilder).buildReview(serieDto); doReturn(12L).when(serieDto).getKinoId(); SerieReview serieReview = new SerieReview(12L, tmdbKino, review); SerieDto createdKino = mock(SerieDto.class); doReturn(createdKino).when(serieKinoDtoBuilder).build(serieReview); assertEquals( createdKino, new SerieService(serieReviewRepository, reviewRepository, tmdbSerieRepository, tmdbGetterService, serieKinoDtoBuilder, toDbBuilder).createOrUpdate(serieDto) ); verify(serieReviewRepository).createOrUpdate(serieReview); verify(reviewRepository).createOrUpdate(review); verify(tmdbSerieRepository).createOrUpdate(tmdbKino); }
@Test public void createOrUpdateSerieNullTmdbId() { Review review = mock(Review.class); doReturn(review).when(toDbBuilder).buildReview(serieDto); doReturn(45L).when(serieDto).getKinoId(); SerieReview reviewToCreate = new SerieReview(45L, null, review); SerieDto createdKino = mock(SerieDto.class); doReturn(createdKino).when(serieKinoDtoBuilder).build(reviewToCreate); assertEquals( createdKino, new SerieService(serieReviewRepository, reviewRepository, tmdbSerieRepository, tmdbGetterService, serieKinoDtoBuilder, toDbBuilder).createOrUpdate(serieDto) ); verify(serieReviewRepository).createOrUpdate(reviewToCreate); verify(reviewRepository).createOrUpdate(review); verify(tmdbSerieRepository, never()).createOrUpdate(any(TmdbSerie.class)); }