require File.dirname(__FILE__) + '/spec_helper.rb'

require 'tempfile'

describe "Media" do

  before(:all) do
    logger = Log4r::Logger.new('dvdprofiler2xbmc')
    logger.outputters = Log4r::StdoutOutputter.new(:console)
    Log4r::Outputter[:console].formatter  = Log4r::PatternFormatter.new(:pattern => "%m")
    logger.level = Log4r::WARN
    AppConfig.default
    AppConfig[:logger] = logger
    AppConfig.load
    File.mkdirs(TMPDIR)
    AppConfig[:logger].warn { "\nMedia Specs" }
  end

    # "movie title - yyyy.ext"
    # "movie title (yyyy).ext"
    # "movie title.ext"
    # "movie title - yyyy.partN.ext"
    # "movie title (yyyy).partN.ext"
    # "movie title.partN.ext"

  it 'should parse "movie title.m4v"' do
    result = Media.parse('movie title.m4v')
    result.should == {:title => 'movie title', :extension => 'm4v'}
  end

  it 'should parse "movie title - 1999.m4v"' do
    result = Media.parse('movie title - 1999.m4v')
    result.should == {:title => 'movie title', :year => '1999', :extension => 'm4v'}
  end

  it 'should parse "movie title-1999.m4v"' do
    result = Media.parse('movie title-1999.m4v')
    result.should == {:title => 'movie title', :year => '1999', :extension => 'm4v'}
  end

  it 'should parse "movie title (1999).m4v"' do
    result = Media.parse('movie title (1999).m4v')
    result.should == {:title => 'movie title', :year => '1999', :extension => 'm4v'}
  end

  it 'should parse "movie title ( 1999 ) .m4v"' do
    result = Media.parse('movie title ( 1999 ) .m4v')
    result.should == {:title => 'movie title', :year => '1999', :extension => 'm4v'}
  end

  it 'should parse "movie title.cd1.m4v"' do
    result = Media.parse('movie title.cd1.m4v')
    result.should == {:title => 'movie title', :part => 'cd1', :extension => 'm4v'}
  end

  it 'should parse "movie title - 1999.cd1.m4v"' do
    result = Media.parse('movie title - 1999.cd1.m4v')
    result.should == {:title => 'movie title', :year => '1999', :part => 'cd1', :extension => 'm4v'}
  end

  it 'should parse "movie title-1999.cd1.m4v"' do
    result = Media.parse('movie title-1999.cd1.m4v')
    result.should == {:title => 'movie title', :year => '1999', :part => 'cd1', :extension => 'm4v'}
  end

  it 'should parse "movie title (1999).cd1.m4v"' do
    result = Media.parse('movie title (1999).cd1.m4v')
    result.should == {:title => 'movie title', :year => '1999', :part => 'cd1', :extension => 'm4v'}
  end

  it 'should parse "movie title ( 1999 ) .cd1.m4v"' do
    result = Media.parse('movie title ( 1999 ) .cd1.m4v')
    result.should == {:title => 'movie title', :year => '1999', :part => 'cd1', :extension => 'm4v'}
  end

  it 'should generate path_to(:nfo)' do
    media = Media.new(File.join(File.dirname(__FILE__), 'samples'), 'The Egg and I.dummy')
    media.path_to(:nfo).should == File.expand_path('spec/samples/The Egg and I.nfo')
  end

  it 'should generate path_to(:nfo) for multipart media' do
    media = Media.new(File.join(File.dirname(__FILE__), 'samples'), 'Ma and Pa Kettle.cd1.dummy')
    media.path_to(:nfo).should == File.expand_path('spec/samples/Ma and Pa Kettle.nfo')
  end

end