spec/data/zone_spec.rb in barometer-0.7.3 vs spec/data/zone_spec.rb in barometer-0.8.0

- old
+ new

@@ -1,64 +1,64 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe "Data::Zone" do - + # describe "and class methods" do - # + # # it "responds to now and returns Time object" do # Data::Zone.respond_to?("now").should be_true # Data::Zone.now.is_a?(Time).should be_true # end - # + # # it "responds to today and returns Date object" do # Data::Zone.respond_to?("today").should be_true # Data::Zone.today.is_a?(Date).should be_true # end - # + # # end - + describe "when initialized" do - + describe "with a full zone" do - + before(:each) do @utc = Time.now.utc @timezone = "Europe/Paris" @zone = Data::Zone.new(@timezone) end - + it "responds to zone_full" do @zone.zone_full.should_not be_nil @zone.zone_full.should == @timezone end - + it "responds to zone_code" do @zone.zone_code.should be_nil end it "responds to zone_offset" do @zone.zone_offset.should be_nil end it "responds to tz" do lambda { Data::Zone.new("invalid timezone") }.should raise_error(ArgumentError) - + zone = Data::Zone.new(@timezone) zone.tz.should_not be_nil end - + it "responds to full" do @zone.respond_to?("full").should be_true zone = Data::Zone.new(@timezone) zone.tz = nil zone.tz.should be_nil zone.full.should == @timezone - + zone = Data::Zone.new(@timezone) zone.full.should == @timezone end - + it "responds to code" do @zone.respond_to?("code").should be_true zone = Data::Zone.new(@timezone) zone.tz = nil zone.tz.should be_nil @@ -76,60 +76,60 @@ zone = Data::Zone.new(@timezone) zone.tz = nil zone.tz.should be_nil zone.dst?.should be_nil end - + it "responds to now" do @zone.respond_to?("now").should be_true @zone.now.is_a?(Time).should be_true - + period = @zone.tz.period_for_utc(Time.now) actual_now = Time.now.utc + period.utc_total_offset - + now = @zone.now now.hour.should == actual_now.hour now.min.should == actual_now.min now.sec.should == actual_now.sec now.year.should == actual_now.year now.month.should == actual_now.month now.day.should == actual_now.day end - + it "responds to today" do @zone.respond_to?("today").should be_true @zone.today.is_a?(Date).should be_true - + period = @zone.tz.period_for_utc(Time.now) actual_now = Time.now.utc + period.utc_total_offset - + now = @zone.today now.year.should == actual_now.year now.month.should == actual_now.month now.day.should == actual_now.day end - + it "converts local_time to utc" do local_time = Time.now.utc utc_time = @zone.local_to_utc(local_time) - + offset = @zone.tz.period_for_utc(local_time).utc_total_offset utc_time.should == (local_time - offset) end - + it "converts utc to local_time" do utc_time = Time.now.utc local_time = @zone.utc_to_local(utc_time) - + offset = @zone.tz.period_for_utc(local_time).utc_total_offset utc_time.should == (local_time - offset) end - + end - + describe "with a zone code" do - + before(:each) do @utc = Time.now.utc @timezone = "EAST" @zone = Data::Zone.new(@timezone) end @@ -224,13 +224,13 @@ local_time.min.should == (utc_time + @zone.offset).min local_time.sec.should == (utc_time + @zone.offset).sec end end - + describe "with a zone offset" do - + before(:each) do @utc = Time.now.utc @timezone = 8.5 @zone = Data::Zone.new(@timezone) end @@ -336,31 +336,31 @@ local_time.min.should == (utc_time + @zone.offset).min local_time.sec.should == (utc_time + @zone.offset).sec end end - + end - + describe "when detecting zones" do - + it "recognozes a full time zone format" do Data::Zone.is_zone_full?("invalid").should be_false Data::Zone.is_zone_full?("America/New York").should be_true end - + it "matches a zone offset" do Data::Zone.is_zone_offset?("invalid").should be_false Data::Zone.is_zone_offset?("MST").should be_false Data::Zone.is_zone_offset?("10").should be_false Data::Zone.is_zone_offset?(-10).should be_true end - + it "matches a zone code" do Data::Zone.is_zone_code?("invalid").should be_false Data::Zone.is_zone_code?("MST").should be_true Data::Zone.is_zone_code?("EAST").should be_true end - + end - + end