spec/github/authorizations_spec.rb in github_api-0.8.11 vs spec/github/authorizations_spec.rb in github_api-0.9.0
- old
+ new
@@ -1,245 +1,11 @@
# encoding: utf-8
require 'spec_helper'
describe Github::Authorizations do
- let(:github) { Github.new }
- let(:basic_auth) { 'login:password' }
- before do
- github.basic_auth = basic_auth
- end
+ after { reset_authentication_for subject }
- after do
- reset_authentication_for github
- end
-
- describe "authorizations" do
- it { github.authorizations.should respond_to :all }
-
- context "resource found" do
- before do
- stub_get("/authorizations", "https://#{basic_auth}@api.github.com").
- to_return(:body => fixture('auths/authorizations.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
-
- it "should fail to get resource without basic authentication" do
- reset_authentication_for github
- expect { github.oauth.list }.to raise_error(ArgumentError)
- end
-
- it "should get the resources" do
- github.oauth.list
- a_get("/authorizations", "https://#{basic_auth}@api.github.com").should have_been_made
- end
-
- it "should return array of resources" do
- authorizations = github.oauth.list
- authorizations.should be_an Array
- authorizations.should have(1).items
- end
-
- it "should be a mash type" do
- authorizations = github.oauth.list
- authorizations.first.should be_a Hashie::Mash
- end
-
- it "should get authorization information" do
- authorizations = github.oauth.list
- authorizations.first.token.should == 'abc123'
- end
-
- it "should yield to a block" do
- github.oauth.should_receive(:list).and_yield('web')
- github.oauth.list { |param| 'web' }
- end
- end
-
- context "resource not found" do
- before do
- stub_get("/authorizations", "https://#{basic_auth}@api.github.com").
- to_return(:body => "", :status => [404, "Not Found"])
- end
-
- it "should return 404 with a message 'Not Found'" do
- expect { github.oauth.list }.to raise_error(Github::Error::NotFound)
- end
- end
- end # authorizations
-
- describe "#get" do
- let(:authorization_id) { 1 }
-
- context "resource found" do
- before do
- stub_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
- to_return(:body => fixture('auths/authorization.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
- it "should fail to get resource without authorization id" do
- expect { github.oauth.get nil }.to raise_error(ArgumentError)
- end
-
- it "should get the resource" do
- github.oauth.get authorization_id
- a_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
- end
-
- it "should get authorization information" do
- authorization = github.oauth.get authorization_id
- authorization.id.should == authorization_id
- authorization.token.should == 'abc123'
- end
-
- it "should return mash" do
- authorization = github.oauth.get authorization_id
- authorization.should be_a Hashie::Mash
- end
- end
-
- context "resource not found" do
- before do
- stub_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
- to_return(:body => fixture('auths/authorization.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
- it "should fail to retrive resource" do
- expect {
- github.oauth.get authorization_id
- }.to raise_error(Github::Error::NotFound)
- end
- end
- end # list
-
- describe "#create" do
- let(:inputs) { { :scopes => ['repo'] } }
-
- context "resouce created" do
-
- it "should fail to get resource without basic authentication" do
- reset_authentication_for github
- expect { github.oauth.create }.to raise_error(ArgumentError)
- end
-
- before do
- stub_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).
- to_return(:body => fixture('auths/authorization.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
- it "should create resource successfully" do
- github.oauth.create inputs
- a_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
- end
-
- it "should return the resource" do
- authorization = github.oauth.create inputs
- authorization.should be_a Hashie::Mash
- end
-
- it "should get the authorization information" do
- authorization = github.oauth.create inputs
- authorization.token.should == 'abc123'
- end
- end
-
- context "failed to create resource" do
- before do
- stub_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).
- to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
-
- end
-
- it "should fail to retrieve resource" do
- expect {
- github.oauth.create inputs
- }.to raise_error(Github::Error::NotFound)
- end
- end
- end # create
-
- describe "#update" do
- let(:authorization_id) { 1 }
- let(:inputs) { { :add_scopes => ['repo'] } }
-
- context "resouce updated" do
-
- it "should fail to get resource without basic authentication" do
- reset_authentication_for github
- expect { github.oauth.update }.to raise_error(ArgumentError)
- end
-
- before do
- stub_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).
- to_return(:body => fixture('auths/authorization.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
- it "should update resource successfully" do
- github.oauth.update authorization_id, inputs
- a_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
- end
-
- it "should return the resource" do
- authorization = github.oauth.update authorization_id, inputs
- authorization.should be_a Hashie::Mash
- end
-
- it "should get the authorization information" do
- authorization = github.oauth.update authorization_id, inputs
- authorization.token.should == 'abc123'
- end
- end
-
- context "failed to update resource" do
- before do
- stub_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).
- to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
-
- end
-
- it "should fail to retrieve resource" do
- expect {
- github.oauth.update authorization_id, inputs
- }.to raise_error(Github::Error::NotFound)
- end
- end
- end # update
-
- describe "#delete" do
- let(:authorization_id) { 1 }
- let(:inputs) { { :add_scopes => ['repo'] } }
-
- context "resouce deleted" do
-
- it "should fail to get resource without basic authentication" do
- reset_authentication_for github
- expect { github.oauth.delete nil }.to raise_error(ArgumentError)
- end
-
- before do
- stub_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
- to_return(:body => '', :status => 204, :headers => {:content_type => "application/json; charset=utf-8"})
- end
-
- it "should delete resource successfully" do
- github.oauth.delete authorization_id
- a_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
- end
- end
-
- context "failed to create resource" do
- before do
- stub_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").
- to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
-
- end
-
- it "should fail to retrieve resource" do
- expect {
- github.oauth.delete authorization_id
- }.to raise_error(Github::Error::NotFound)
- end
- end
- end # delete
+ it_should_behave_like 'api interface'
end # Github::Authorizations