ruby-avm-library/spec/avm/image_spec.rb

113 lines
3.2 KiB
Ruby
Raw Normal View History

2011-03-07 17:39:47 +00:00
require 'spec_helper'
require 'avm/image'
describe AVM::Image do
2011-03-11 18:59:34 +00:00
let(:image) { self.class.describes.new(options) }
let(:options) { {} }
2011-03-07 17:39:47 +00:00
subject { image }
2011-03-14 16:35:29 +00:00
let(:title) { 'My title' }
let(:headline) { 'Headline' }
let(:description) { 'Description' }
let(:distance_notes) { 'Distance Notes' }
let(:reference_url) { 'Reference URL' }
let(:credit) { 'Credit' }
let(:date) { '2010-01-01' }
let(:id) { 'ID' }
let(:type) { 'Obvservation' }
let(:image_quality) { 'Good' }
let(:redshift) { 'Redshift' }
let(:light_years) { 'Light years' }
2011-03-07 17:39:47 +00:00
2011-03-14 16:35:29 +00:00
def self.with_all_options
2011-03-11 18:59:34 +00:00
let(:options) { {
:title => title,
:headline => headline,
:description => description,
:distance_notes => distance_notes,
:reference_url => reference_url,
:credit => credit,
:date => date,
:id => id,
:type => type,
2011-03-11 19:04:50 +00:00
:image_quality => image_quality,
:redshift => redshift,
:light_years => light_years
2011-03-11 18:59:34 +00:00
} }
2011-03-14 16:35:29 +00:00
end
2011-03-11 18:59:34 +00:00
2011-03-14 16:35:29 +00:00
describe '#initialize' do
with_all_options
it { should be_a_kind_of(AVM::Image) }
2011-03-11 18:59:34 +00:00
2011-03-07 17:39:47 +00:00
its(:creator) { should be_a_kind_of(AVM::Creator) }
2011-03-11 18:59:34 +00:00
its(:title) { should == title }
its(:headline) { should == headline }
its(:description) { should == description }
its(:distance_notes) { should == distance_notes }
its(:reference_url) { should == reference_url }
its(:credit) { should == credit }
its(:date) { should == Time.parse(date) }
its(:id) { should == id }
its(:image_type) { should == type }
its(:image_quality) { should == image_quality }
2011-03-11 19:04:50 +00:00
its(:redshift) { should == redshift }
its(:light_years) { should == light_years }
its(:distance) { should == [ light_years, redshift ] }
2011-03-07 17:39:47 +00:00
end
2011-03-09 15:14:31 +00:00
describe '#to_xml' do
let(:xml) { image.to_xml }
2011-03-14 16:35:29 +00:00
let(:dublin_core) { xml.at_xpath('//rdf:Description[@about="Dublin Core"]') }
let(:photoshop) { xml.at_xpath('//rdf:Description[@about="Photoshop"]') }
let(:avm) { xml.at_xpath('//rdf:Description[@about="AVM"]') }
2011-03-09 15:14:31 +00:00
context 'nothing in it' do
2011-03-14 16:35:29 +00:00
it "should have basic tags" do
xml.at_xpath('//rdf:RDF').should_not be_nil
xml.search('//rdf:RDF/rdf:Description').should_not be_empty
avm.at_xpath('./avm:Date').should be_nil
end
end
context 'with basics' do
with_all_options
it "should have the image info tags" do
dublin_core.at_xpath('./dc:title/rdf:Alt/rdf:li').text.should == title
photoshop.at_xpath('./photoshop:Headline').text.should == headline
dublin_core.at_xpath('./dc:description/rdf:Alt/rdf:li').text.should == description
avm.at_xpath('./avm:Distance.Notes').text.should == distance_notes
avm.at_xpath('./avm:ReferenceURL').text.should == reference_url
avm.at_xpath('./avm:Credit').text.should == credit
avm.at_xpath('./avm:Date').text.should == date
avm.at_xpath('./avm:ID').text.should == id
end
context "distance" do
context "no distances" do
end
context "redshift only" do
end
context "light years only" do
end
context "redshift and light years" do
end
end
2011-03-09 15:14:31 +00:00
end
end
2011-03-07 17:39:47 +00:00
end