require File.join(File.dirname(__FILE__), %w[.. helper])
describe Calais::Client, :new do
it 'accepts arguments as a hash' do
client = nil
lambda { client = Calais::Client.new(:content => SAMPLE_DOCUMENT, :license_id => LICENSE_ID) }.should_not raise_error
client.license_id.should == LICENSE_ID
client.content.should == SAMPLE_DOCUMENT
end
it 'accepts arguments as a block' do
client = nil
lambda {
client = Calais::Client.new do |c|
c.content = SAMPLE_DOCUMENT
c.license_id = LICENSE_ID
end
}.should_not raise_error
client.license_id.should == LICENSE_ID
client.content.should == SAMPLE_DOCUMENT
end
it 'should not accept unknown attributes' do
lambda { Calais::Client.new(:monkey => 'monkey', :license_id => LICENSE_ID) }.should raise_error(NoMethodError)
end
end
describe Calais::Client, :params_xml do
it 'returns an xml encoded string' do
client = Calais::Client.new(:content => SAMPLE_DOCUMENT, :license_id => LICENSE_ID)
client.params_xml.should == %[]
client.content_type = :xml
client.output_format = :json
client.reltag_base_url = 'http://opencalais.com'
client.calculate_relevance = true
client.metadata_enables = Calais::KNOWN_ENABLES
client.metadata_discards = Calais::KNOWN_DISCARDS
client.allow_distribution = true
client.allow_search = true
client.external_id = Digest::SHA1.hexdigest(client.content)
client.submitter = 'calais.rb'
client.params_xml.should == %[]
end
end
describe Calais::Client, :enlighten do
before do
@client = Calais::Client.new do |c|
c.content = SAMPLE_DOCUMENT
c.license_id = LICENSE_ID
c.content_type = :xml
c.output_format = :json
c.calculate_relevance = true
c.metadata_enables = Calais::KNOWN_ENABLES
c.allow_distribution = true
c.allow_search = true
end
end
it 'provides access to the enlighten command on the generic rest endpoint' do
@client.should_receive(:do_request).with(anything).and_return(SAMPLE_RESPONSE)
@client.enlighten
@client.instance_variable_get(:@client).url.should == Calais::REST_ENDPOINT
end
it 'provides access to the enlighten command on the beta rest endpoint' do
@client.use_beta = true
@client.should_receive(:do_request).with(anything).and_return(SAMPLE_RESPONSE)
@client.enlighten
@client.instance_variable_get(:@client).url.should == Calais::BETA_REST_ENDPOINT
end
end