require 'spec_helper'

require 'pickle/email/parser'

describe Pickle::Email::Parser do
  include Pickle::Parser::Matchers
  include Pickle::Email::Parser
  
  describe "#match_email" do
    it "should match 'the email'" do
      expect('the email').to match(/^#{match_email}$/)
    end
    
    it "should match 'the first email'" do
      expect('the first email').to match(/^#{match_email}$/)
    end
    
    it "should match 'the last email'" do
      expect('the last email').to match(/^#{match_email}$/)
    end
    
    it "should match 'the 3rd email'" do
      expect('the 3rd email').to match(/^#{match_email}$/)
    end
    
    it "should match 'an email'" do
      expect('an email').to match(/^#{match_email}$/)
    end
  end
  
  it "#capture_email should just capture match_email" do
    expect(capture_email).to eq("(#{match_email})")
  end
  
  describe "#capture_index_in_email" do
    it "should extract the '2nd' from 'the 2nd email'" do
      match = 'the 2nd email'.match(/^#{capture_index_in_email}$/)
      expect(match[1]).to eq('2nd')
    end
    
    it "should extract nil from 'the email'" do
      match = 'the email'.match(/^#{capture_index_in_email}$/)
      expect(match[1]).to eq(nil)
    end
    
    it "should extract the 'last' from 'the last email'" do
      match = 'the last email'.match(/^#{capture_index_in_email}$/)
      expect(match[1]).to eq('last')
    end
  end
end
