spec/formats/weather_id_spec.rb in barometer-0.7.3 vs spec/formats/weather_id_spec.rb in barometer-0.8.0
- old
+ new
@@ -1,192 +1,182 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-describe "Query::WeatherID" do
-
+describe Barometer::Query::Format::WeatherID, :vcr => {
+ :cassette_name => "Query::Format::WeatherID"
+} do
before(:each) do
@short_zipcode = "90210"
@zipcode = @short_zipcode
@long_zipcode = "90210-5555"
@weather_id = "USGA0028"
@postal_code = "T5B 4M9"
@coordinates = "40.756054,-73.986951"
@geocode = "New York, NY"
@icao = "KSFO"
end
-
+
describe "and class methods" do
-
before(:each) do
@us_query = "USGA0000"
@ca_query = "CAAB0000"
@es_query = "SPXX0000"
end
-
+
it "returns a format" do
- Query::Format::WeatherID.format.should == :weather_id
+ Barometer::Query::Format::WeatherID.format.should == :weather_id
end
-
+
it "returns a country" do
- Query::Format::WeatherID.country_code.should be_nil
- Query::Format::WeatherID.country_code("i").should be_nil
- Query::Format::WeatherID.country_code(@us_query).should == "US"
- Query::Format::WeatherID.country_code(@ca_query).should == "CA"
- Query::Format::WeatherID.country_code(@es_query).should == "ES"
+ Barometer::Query::Format::WeatherID.country_code.should be_nil
+ Barometer::Query::Format::WeatherID.country_code("i").should be_nil
+ Barometer::Query::Format::WeatherID.country_code(@us_query).should == "US"
+ Barometer::Query::Format::WeatherID.country_code(@ca_query).should == "CA"
+ Barometer::Query::Format::WeatherID.country_code(@es_query).should == "ES"
end
-
+
it "returns a regex" do
- Query::Format::WeatherID.regex.should_not be_nil
- Query::Format::WeatherID.regex.is_a?(Regexp).should be_true
+ Barometer::Query::Format::WeatherID.regex.should_not be_nil
+ Barometer::Query::Format::WeatherID.regex.is_a?(Regexp).should be_true
end
-
+
it "returns the convertable_formats" do
- Query::Format::WeatherID.convertable_formats.should_not be_nil
- Query::Format::WeatherID.convertable_formats.is_a?(Array).should be_true
- Query::Format::WeatherID.convertable_formats.include?(:short_zipcode).should be_true
- Query::Format::WeatherID.convertable_formats.include?(:zipcode).should be_true
- Query::Format::WeatherID.convertable_formats.include?(:coordinates).should be_true
- Query::Format::WeatherID.convertable_formats.include?(:geocode).should be_true
+ Barometer::Query::Format::WeatherID.convertable_formats.should_not be_nil
+ Barometer::Query::Format::WeatherID.convertable_formats.is_a?(Array).should be_true
+ Barometer::Query::Format::WeatherID.convertable_formats.include?(:short_zipcode).should be_true
+ Barometer::Query::Format::WeatherID.convertable_formats.include?(:zipcode).should be_true
+ Barometer::Query::Format::WeatherID.convertable_formats.include?(:coordinates).should be_true
+ Barometer::Query::Format::WeatherID.convertable_formats.include?(:geocode).should be_true
end
-
+
describe "is?," do
-
before(:each) do
@valid = "USGA0028"
@invalid = "invalid"
end
-
+
it "recognizes a valid format" do
- Query::Format::WeatherID.is?(@valid).should be_true
+ Barometer::Query::Format::WeatherID.is?(@valid).should be_true
end
-
+
it "recognizes non-valid format" do
- Query::Format::WeatherID.is?(@invalid).should be_false
+ Barometer::Query::Format::WeatherID.is?(@invalid).should be_false
end
-
end
-
+
describe "fixing country codes" do
-
it "doesn't fix a correct code" do
- Query::Format::WeatherID.send("_fix_country", "CA").should == "CA"
+ Barometer::Query::Format::WeatherID.send("_fix_country", "CA").should == "CA"
end
-
+
it "fixes an incorrect code" do
- Query::Format::WeatherID.send("_fix_country", "SP").should == "ES"
+ Barometer::Query::Format::WeatherID.send("_fix_country", "SP").should == "ES"
end
-
end
-
+
describe "when reversing lookup" do
-
it "requires a Barometer::Query object" do
- lambda { Query::Format::WeatherID.reverse }.should raise_error(ArgumentError)
- lambda { Query::Format::WeatherID.reverse("invalid") }.should raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.reverse }.should raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.reverse("invalid") }.should raise_error(ArgumentError)
query = Barometer::Query.new(@weather_id)
query.is_a?(Barometer::Query).should be_true
- lambda { Query::Format::WeatherID.reverse(original_query) }.should_not raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.reverse(original_query) }.should_not raise_error(ArgumentError)
end
-
+
it "returns a Barometer::Query" do
query = Barometer::Query.new(@weather_id)
- Query::Format::WeatherID.reverse(query).is_a?(Barometer::Query).should be_true
+ Barometer::Query::Format::WeatherID.reverse(query).is_a?(Barometer::Query).should be_true
end
-
+
it "reverses a valid weather_id (US)" do
query = Barometer::Query.new(@weather_id)
- new_query = Query::Format::WeatherID.reverse(query)
+ new_query = Barometer::Query::Format::WeatherID.reverse(query)
new_query.q.should == "Atlanta, GA, US"
new_query.country_code.should be_nil
new_query.format.should == :geocode
new_query.geo.should be_nil
end
-
+
it "doesn't reverse an invalid weather_id" do
query = Barometer::Query.new(@zipcode)
- Query::Format::WeatherID.reverse(query).should be_nil
+ Barometer::Query::Format::WeatherID.reverse(query).should be_nil
end
-
end
-
+
describe "when converting using 'to'," do
-
it "requires a Barometer::Query object" do
- lambda { Query::Format::WeatherID.to }.should raise_error(ArgumentError)
- lambda { Query::Format::WeatherID.to("invalid") }.should raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.to }.should raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.to("invalid") }.should raise_error(ArgumentError)
query = Barometer::Query.new(@zipcode)
query.is_a?(Barometer::Query).should be_true
- lambda { Query::Format::WeatherID.to(original_query) }.should_not raise_error(ArgumentError)
+ lambda { Barometer::Query::Format::WeatherID.to(original_query) }.should_not raise_error(ArgumentError)
end
-
+
it "returns a Barometer::Query" do
query = Barometer::Query.new(@short_zipcode)
- Query::Format::WeatherID.to(query).is_a?(Barometer::Query).should be_true
+ Barometer::Query::Format::WeatherID.to(query).is_a?(Barometer::Query).should be_true
end
-
+
it "converts from short_zipcode" do
query = Barometer::Query.new(@short_zipcode)
query.format.should == :short_zipcode
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.q.should == "USCA0090"
new_query.country_code.should == "US"
new_query.format.should == :weather_id
new_query.geo.should_not be_nil
end
it "converts from zipcode" do
query = Barometer::Query.new(@zipcode)
query.format = :zipcode
query.format.should == :zipcode
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.q.should == "USCA0090"
new_query.country_code.should == "US"
new_query.format.should == :weather_id
new_query.geo.should_not be_nil
end
it "converts from coordinates" do
query = Barometer::Query.new(@coordinates)
query.format.should == :coordinates
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.q.should == "USNY0996"
new_query.country_code.should == "US"
new_query.format.should == :weather_id
new_query.geo.should_not be_nil
end
it "converts from geocode" do
query = Barometer::Query.new(@geocode)
query.format.should == :geocode
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.q.should == "USNY0996"
new_query.country_code.should == "US"
new_query.format.should == :weather_id
new_query.geo.should be_nil
end
it "converts from icao" do
query = Barometer::Query.new(@icao)
query.format.should == :icao
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.q.should == "USCA0987"
new_query.country_code.should == "US"
new_query.format.should == :weather_id
new_query.geo.should_not be_nil
end
it "returns nil for other formats" do
query = Barometer::Query.new(@weather_id)
query.format.should == :weather_id
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.should be_nil
-
+
query = Barometer::Query.new(@postal_code)
query.format.should == :postalcode
- new_query = Query::Format::WeatherID.to(query)
+ new_query = Barometer::Query::Format::WeatherID.to(query)
new_query.should be_nil
end
-
end
-
end
-
-end
\ No newline at end of file
+end