spec/citeproc/item_spec.rb in citeproc-1.0.0.pre12 vs spec/citeproc/item_spec.rb in citeproc-1.0.0
- old
+ new
@@ -1,71 +1,79 @@
require 'spec_helper'
module CiteProc
- describe Item do
-
-
- describe '.new' do
- it { should_not be nil }
+ describe Item do
- it 'creates number variables for number fields' do
- Item.new(:edition => 23).edition.should be_a(Number)
- end
- it 'creates text variable for text fields' do
- Item.new(:ISBN => 23).isbn.should be_a(Text)
- end
-
- it 'creates date variables for date fields' do
- Item.new(:accessed => Time.now).accessed.should be_a(CiteProc::Date)
- end
-
- it 'creates names variables for name fields' do
- Item.new(:editor => { :given => 'Jane' }).editor.should be_a(Names)
- Item.new(:editor => 'Plato and Socrates').editor.should have(2).names
- end
-
- it 'creates text variables for unknown fields' do
- v = Item.new(:unknown => 42)[:unknown]
- v.should be_a(Variable)
- v.should == '42'
- end
- end
-
- describe '#empty' do
- it { should be_empty }
-
- it 'returns false when there is at least one variable in the item' do
- Item.new(:title => 'foo').should_not be_empty
- end
- end
-
- describe '#each' do
- it 'yields each variable to the given block' do
- Item.new(:title => 'foo', :edition => 2).each.map {|kv| kv.join('-') }.sort.should == %w{edition-2 title-foo}
- end
- end
+ describe '.new' do
+ it { should_not be nil }
- describe '#each_value' do
- it "yields each variable's value to the given block" do
- Item.new(:title => 'foo', :edition => 2).each_value.map(&:to_s).sort.should == %w{2 foo}
- end
- end
-
- describe '#to_citeproc' do
-
- it 'returns an empty hash by default' do
- Item.new.to_citeproc.should == {}
- end
-
- it 'returns a hash with stringified keys' do
- Item.new(:issue => 42).to_citeproc.should have_key('issue')
- end
+ it 'creates number variables for number fields' do
+ Item.new(:edition => 23).edition.should be_a(Number)
+ end
- it 'returns a hash with stringified values' do
- Item.new(:issue => 42).to_citeproc.values[0].should == '42'
- end
+ it 'creates text variable for text fields' do
+ Item.new(:ISBN => 23).isbn.should be_a(Text)
+ end
-
- end
- end
-end
\ No newline at end of file
+ it 'creates date variables for date fields' do
+ Item.new(:accessed => Time.now).accessed.should be_a(CiteProc::Date)
+ end
+
+ it 'creates names variables for name fields' do
+ Item.new(:editor => { :given => 'Jane' }).editor.should be_a(Names)
+ Item.new(:editor => 'Plato and Socrates').editor.should have(2).names
+ end
+
+ it 'creates text variables for unknown fields' do
+ v = Item.new(:unknown => 42)[:unknown]
+ v.should be_a(Variable)
+ v.should == '42'
+ end
+ end
+
+ describe '#empty' do
+ it { should be_empty }
+
+ it 'returns false when there is at least one variable in the item' do
+ Item.new(:title => 'foo').should_not be_empty
+ end
+ end
+
+ describe '#each' do
+ it 'yields each variable to the given block' do
+ Item.new(:title => 'foo', :edition => 2).each.map {|kv| kv.join('-') }.sort.should == %w{edition-2 title-foo}
+ end
+ end
+
+ describe '#each_value' do
+ it "yields each variable's value to the given block" do
+ Item.new(:title => 'foo', :edition => 2).each_value.map(&:to_s).sort.should == %w{2 foo}
+ end
+ end
+
+ describe '#to_citeproc' do
+ it 'returns an empty hash by default' do
+ Item.new.to_citeproc.should == {}
+ end
+
+ it 'returns a hash with stringified keys' do
+ Item.new(:issue => 42).to_citeproc.should have_key('issue')
+ end
+
+ it 'returns a hash with stringified values' do
+ Item.new(:issue => 42).to_citeproc.values[0].should == '42'
+ end
+ end
+
+ describe '#dup' do
+ it 'returns a copy' do
+ item = Item.new
+ item.dup.should_not equal(item)
+ end
+
+ it 'copies all variables' do
+ Item.new(:issued => 1976).dup[:issued].year.should == 1976
+ end
+ end
+ end
+end