spec/osm/term_spec.rb in osm-0.0.11 vs spec/osm/term_spec.rb in osm-0.0.12
- old
+ new
@@ -2,161 +2,124 @@
require 'spec_helper'
require 'date'
describe "Term" do
- it "Create" do
+ before :each do
+ @attributes = {
+ :id => 1,
+ :section_id => 2,
+ :name => 'Term name',
+ :start => Date.new(2001, 01, 01),
+ :end => Date.new(2001, 03, 31)
+ }
+ end
+
+ it "Create from API data" do
data = {
'termid' => '1',
'sectionid' => '2',
'name' => 'Term name',
'startdate' => '2001-01-01',
'enddate' => '2001-03-31'
}
- term = Osm::Term.new(data)
+ term = Osm::Term.from_api(data)
term.id.should == 1
term.section_id.should == 2
term.name.should == 'Term name'
term.start.should == Date.new(2001, 1, 1)
term.end.should == Date.new(2001, 3, 31)
end
it "Compares two matching terms" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- 'startdate' => '2001-01-01',
- 'enddate' => '2001-03-31'
- }
- term1 = Osm::Term.new(data)
- term2 = Osm::Term.new(data)
+ term1 = Osm::Term.new(@attributes)
+ term2 = Osm::Term.new(@attributes)
term1.should == term2
end
it "Compares two non-matching terms" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- 'startdate' => '2001-01-01',
- 'enddate' => '2001-03-31'
- }
- term = Osm::Term.new(data)
+ term = Osm::Term.new(@attributes)
- term.should_not == Osm::Term.new(data.merge('termid' => '3'))
+ term.should_not == Osm::Term.new(@attributes.merge(:id => 3))
end
it "Sorts by Section ID, Start date and then Term ID" do
- data = {
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('sectionid' => '1', 'termid' => '11', 'startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('sectionid' => '1', 'termid' => '12', 'startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('sectionid' => '1', 'termid' => '13', 'startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
- term4 = Osm::Term.new(data.merge('sectionid' => '2', 'termid' => '1', 'startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
- term5 = Osm::Term.new(data.merge('sectionid' => '2', 'termid' => '2', 'startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 11, :start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 12, :start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:section_id => 1, :term => 13, :start => (Date.today + 1), :end => (Date.today + 60)))
+ term4 = Osm::Term.new(@attributes.merge(:section_id => 2, :term => 1, :start => (Date.today + 1), :end => (Date.today + 60)))
+ term5 = Osm::Term.new(@attributes.merge(:section_id => 2, :term => 2, :start => (Date.today + 1), :end => (Date.today + 60)))
data = [term5, term3, term2, term4, term1]
data.sort.should == [term1, term2, term3, term4, term5]
end
it "Works out if it is completly before a date" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.before?(Date.today).should == true
term2.before?(Date.today).should == false
term3.before?(Date.today).should == false
end
it "Works out if it is completly after a date" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.after?(Date.today).should == false
term2.after?(Date.today).should == false
term3.after?(Date.today).should == true
end
it "Works out if it has passed" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.past?().should == true
term2.past?().should == false
term3.past?().should == false
end
it "Works out if it is in the future" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.future?().should == false
term2.future?().should == false
term3.future?().should == true
end
it "Works out if it is the current term" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start=> (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.current?().should == false
term2.current?().should == true
term3.current?().should == false
end
it "Works out if it contains a date" do
- data = {
- 'termid' => '1',
- 'sectionid' => '2',
- 'name' => 'Term name',
- }
- term1 = Osm::Term.new(data.merge('startdate' => (Date.today - 60).strftime('%Y-%m-%d'), 'enddate' => (Date.today - 1).strftime('%Y-%m-%d')))
- term2 = Osm::Term.new(data.merge('startdate' => (Date.today - 0).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 0).strftime('%Y-%m-%d')))
- term3 = Osm::Term.new(data.merge('startdate' => (Date.today + 1).strftime('%Y-%m-%d'), 'enddate' => (Date.today + 60).strftime('%Y-%m-%d')))
+ term1 = Osm::Term.new(@attributes.merge(:start => (Date.today - 60), :end => (Date.today - 1)))
+ term2 = Osm::Term.new(@attributes.merge(:start => (Date.today - 0), :end => (Date.today + 0)))
+ term3 = Osm::Term.new(@attributes.merge(:start => (Date.today + 1), :end => (Date.today + 60)))
term1.contains_date?(Date.today).should == false
term2.contains_date?(Date.today).should == true
term3.contains_date?(Date.today).should == false
end
-end
\ No newline at end of file
+end