Sha256: 3eb3479cdf9e3bd368782e883e2c2bef1f4a1ff275721d33cd6e36f5cdb42bd2

Contents?: true

Size: 1.97 KB

Versions: 2

Compression:

Stored size: 1.97 KB

Contents

# frozen_string_literal: true

# rubocop:disable Metrics/BlockLength
module MovieOrganizer
  RSpec.describe Media, type: :lib do
    include_context 'media_shared'

    context '.subtype' do
      tv_shows = {
        'SnnEnn' => 'The.Walking.Dead.S04E08.HDTV.x264-2HD',
        'nxn'    => 'The.Walking.Dead.4x0.HDTV.x264-2HD',
        'nnxn'   => 'The.Walking.Dead.12x8.HDTV.x264-2HD',
        'nnxnn'  => 'The.Walking.Dead.12x08.HDTV.x264-2HD',
        'nxnn'   => 'The.Walking.Dead.2x18.HDTV.x264-2HD'
      }

      tv_shows.each_pair do |syntax, filename|
        it "returns a TvShow with season and episode syntax: #{syntax}" do
          filename = create_test_file(
            filename: filename,
            extension: 'mp4'
          ).first
          expect(Media.subtype(filename, default_options)).to be_a(TvShow)
        end
      end

      movies = [
        'Coco.2017.1080p.BluRay.x264-[BOGUS.IT]',
        'Beetlejuice',
        'Justice.League.2017.1080p.BluRay.x264-[YTS.AM]',
        'Jumanji.Welcome.To.The.Jungle.2017.1080p.WEBRip.x264-[YTS.AM].mp4'
      ]

      movies.each do |filename|
        it "returns a Movie for '#{filename}'" do
          expect(Tmdb::Movie).to receive(:find).at_least(1).times.and_return([1])
          filename = create_test_file(
            filename: filename
          ).first
          expect(Media.subtype(filename, default_options)).to be_a(Movie)
        end
      end

      videos = [
        'IMG_2052',
        'IMG_3322',
        'VID_3322',
        'VIDEO_3322',
        'Our Summer Vacation',
        'Tom and Jerry on the Beach'
      ]

      videos.each do |filename|
        it "returns a Video for '#{filename}'" do
          expect(Tmdb::Movie).to receive(:find).at_least(1).times.and_return([])
          filename = create_test_file(
            filename: filename
          ).first
          expect(Media.subtype(filename, default_options)).to be_a(Video)
        end
      end
    end
  end
end
# rubocop:enable Metrics/BlockLength

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
movie_organizer-0.1.11 spec/lib/movie_organizer/media_spec.rb
movie_organizer-0.1.10 spec/lib/movie_organizer/media_spec.rb