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