spec/lib/usps_spec.rb in trackerific-0.1.2 vs spec/lib/usps_spec.rb in trackerific-0.2.0

- old
+ new

@@ -1,5 +1,46 @@ require 'spec_helper' +require 'fakeweb' -describe Trackerific::USPS do +USPS_TRACK_URL = %r|http://testing\.shippingapis\.com/.*| +describe Trackerific::USPS do + include Fixtures + + before(:all) do + @package_id = 'EJ958083578US' + @usps = Trackerific::USPS.new :user_id => '123USERID4567' + end + + describe "track_package" do + context "with a successful response from the server" do + before(:all) do + FakeWeb.register_uri( + :get, + USPS_TRACK_URL, + :body => load_fixture(:usps_success_response) + ) + @valid_response = { + :package_id => @package_id, + :summary => "Your item was delivered at 8:10 am on June 1 in Wilmington DE 19801.", + :details => [ + "May 30 11:07 am NOTICE LEFT WILMINGTON DE 19801.", + "May 30 10:08 am ARRIVAL AT UNIT WILMINGTON DE 19850.", + "May 29 9:55 am ACCEPT OR PICKUP EDGEWATER NJ 07020." + ] + } + end + specify { @usps.track_package(@package_id).should eq @valid_response } + end + context "with an error response from the server" do + before(:all) do + FakeWeb.register_uri( + :get, + USPS_TRACK_URL, + :body => load_fixture(:usps_error_response) + ) + end + specify { lambda { @usps.track_package(@package_id) }.should raise_error(Trackerific::Error) } + end + end + end