license key must now be passed in rather than loaded from YAML file
[ruby-calais.git] / spec / calais_spec.rb
blob01eac73333b85aa00a9ef941abde20b853bda813
1 require File.expand_path("#{File.dirname(__FILE__)}/helper")
3 describe Calais do
4   it "provides a version number" do
5     Calais::VERSION.should_not be_nil
6   end
7 end
9 describe Calais::Client, ".new" do
10   it "accepts arguments as a hash" do
11     client = nil
12     
13     lambda { client = Calais::Client.new(:content => SAMPLE_DOCUMENT, :license_id => LICENSE_ID) }.should_not raise_error(ArgumentError)
14     
15     client.license_id.should == LICENSE_ID
16     client.content.should == SAMPLE_DOCUMENT
17   end
18   
19   it "accepts arguments as a block" do
20     client = nil
21     
22     lambda {
23       client = Calais::Client.new do |c|
24         c.content = SAMPLE_DOCUMENT
25         c.license_id = LICENSE_ID
26       end
27     }.should_not raise_error(ArgumentError)
28     
29     client.license_id.should == LICENSE_ID
30     client.content.should == SAMPLE_DOCUMENT
31   end
32   
33   it "should not accept unknown attributes" do
34     lambda { Calais::Client.new(:monkey => "monkey", :license_id => LICENSE_ID) }.should raise_error(NoMethodError)
35   end
36 end
38 describe Calais, ".process_document" do
39   it "returns a Calais::Response" do
40     response = Calais.process_document(:content => SAMPLE_DOCUMENT, :content_type => :xml, :license_id => LICENSE_ID)
41     response.should_not be_nil
42     response.should be_a_kind_of(Calais::Response)
43   end
45   it "returns a Calais::Response (with relationships)" do
46     response = Calais.process_document(:content => File.read(File.join(File.dirname(__FILE__), 'fixtures', 'bicycles_austrailia.xml')), :content_type => :xml, :license_id => LICENSE_ID)
47     response.should_not be_nil
48     response.should be_a_kind_of(Calais::Response)
49   end
50 end
52 describe Calais::Client, ".call" do
53   before(:all) do
54     @client = Calais::Client.new(:content => SAMPLE_DOCUMENT, :license_id => LICENSE_ID)
55   end
57   it "accepts known methods" do
58     lambda { @client.call('enlighten') }.should_not raise_error(ArgumentError)
59   end
61   it "complains about unkown methods" do
62     lambda { @client.call('monkey') }.should raise_error(ArgumentError)
63   end
64 end
66 describe Calais::Client, ".params_xml" do
67   it "returns an xml encoded string" do
68     client = Calais::Client.new(:content => SAMPLE_DOCUMENT, :content_type => :xml, :license_id => LICENSE_ID)
69     client.send("params_xml").should_not be_nil
70     client.send("params_xml").should == %[<c:params xmlns:c=\"http://s.opencalais.com/1/pred/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><c:processingDirectives c:contentType=\"TEXT/XML\" c:outputFormat=\"XML/RDF\"></c:processingDirectives><c:userDirectives c:allowDistribution=\"false\" c:allowSearch=\"false\" c:externalID=\"dc68d5a382724c2238d9f22ba9c0b4d2581569d8\" c:submitter=\"calais.rb\"></c:userDirectives><c:externalMetadata></c:externalMetadata></c:params>]
71   end
72 end