spec/amfetamine/base_spec.rb in amfetamine-0.2.9 vs spec/amfetamine/base_spec.rb in amfetamine-0.2.11

- old
+ new

@@ -44,11 +44,12 @@ end end it "should return nil if object not found" do lambda { - stub_nil_response do + Dummy.prevent_external_connections! do |r| + r.get(:code => 404) {} Dummy.find(dummy.id * 2).should be_nil end }.should raise_exception(Amfetamine::RecordNotFound) end end @@ -57,72 +58,77 @@ it "should find all if objects are present" do dummies = [] dummy.instance_variable_set('@notsaved', false) dummy2.instance_variable_set('@notsaved', false) - stub_all_response(dummy, dummy2) do + Dummy.prevent_external_connections! do |r| + r.get {[dummy,dummy2]} dummies = Dummy.all end dummies.should include(dummy) dummies.should include(dummy2) dummies.length.should eq(2) end it "should return empty array if objects are not present" do - dummies = [] - stub_all_nil_response do - dummies = Dummy.all - end + Dummy.prevent_external_connections! do |r| + r.get(:code => 200) {[]} - dummies.should eq([]) + Dummy.all.should be_empty + end end end context "#create" do it "should create an object if data is correct" do - new_dummy = nil - stub_post_response do + Dummy.prevent_external_connections! do |r| + r.post(:code => 201) {} + new_dummy = Dummy.create({:title => 'test', :description => 'blabla'}) + new_dummy.should be_a(Dummy) + new_dummy.should_not be_new + new_dummy.should be_cached end - new_dummy.should be_a(Dummy) - new_dummy.should_not be_new - puts new_dummy.cache_key - new_dummy.should be_cached end it "should return errors if data is incorrect" do - new_dummy = nil - stub_post_errornous_response do + Dummy.prevent_external_connections! do |r| + r.post(:code => 422) {{:description => ['can\'t be blank']}} new_dummy = Dummy.create({:title => 'test'}) + new_dummy.should be_new + new_dummy.errors.messages.should eq({:description => ['can\'t be blank']}) + new_dummy.should_not be_cached end - new_dummy.should be_new - new_dummy.errors.messages.should eq({:description => ['can\'t be blank']}) - new_dummy.should_not be_cached + end end context "#update" do before(:each) do dummy.send(:notsaved=, false) end it "should update if response is succesful" do - Dummy.prevent_external_connections! do |allowed| - allowed.put {} + Dummy.prevent_external_connections! do |r| + r.put {} + dummy.update_attributes({:title => 'zomg'}) end dummy.should_not be_new dummy.title.should eq('zomg') dummy.should be_cached end it "should show errors if response is not succesful" do - stub_update_errornous_response do + Dummy.prevent_external_connections! do |r| + r.put(:code => 422) { [:title => ['can\'t be blank']]} + dummy.update_attributes({:title => ''}) end + dummy.should_not be_new dummy.errors.messages.should eq({:title => ['can\'t be blank']}) end it "should not do a request if the data doesn't change" do @@ -131,29 +137,34 @@ dummy.errors.should be_empty end end context "#save" do + let(:dummy2) { dummy.dup} before(:each) do dummy.send(:notsaved=, true) + dummy2 = dummy.dup + dummy.send(:id=, nil) end it "should update the id if data is received from post" do old_id = dummy.id - stub_post_response(dummy) do - dummy.send(:id=, nil) + Dummy.prevent_external_connections! do |r| + r.post(code:201) { dummy2 } + dummy.save end dummy.id.should == old_id dummy.attributes[:id].should == old_id end it "should update attributes if data is received from update" do dummy.send(:notsaved=, false) old_id = dummy.id dummy.title = "BLABLABLA" - stub_update_response(dummy) do + Dummy.prevent_external_connections! do |r| + r.put {dummy} dummy.title = "BLABLABLA" dummy.save end dummy.id.should == old_id dummy.title.should == "BLABLABLA" @@ -165,19 +176,22 @@ before(:each) do dummy.send(:notsaved=, false) end it "should delete the object if response is succesful" do - stub_delete_response do + Dummy.prevent_external_connections! do |r| + r.delete {} dummy.destroy end + dummy.should be_new dummy.id.should be_nil dummy.should_not be_cached end it "should return false if delete failed" do - stub_delete_errornous_response do + Dummy.prevent_external_connections! do |r| + r.delete(code: 422) {} dummy.destroy end dummy.should_not be_new dummy.should_not be_cached end