spec/github/repos/keys_spec.rb in github_api-0.8.1 vs spec/github/repos/keys_spec.rb in github_api-0.8.2

- old
+ new

@@ -1,220 +1,9 @@ require 'spec_helper' describe Github::Repos::Keys do - let(:github) { Github.new } - let(:user) { 'peter-murach' } - let(:repo) { 'github' } - after { github.user, github.repo, github.oauth_token = nil, nil, nil } + it_should_behave_like 'api interface' - it { described_class::VALID_KEY_PARAM_NAMES.should_not be_nil } - - describe "#list" do - it { github.repos.keys.should respond_to :all } - - context "resource found" do - before do - stub_get("/repos/#{user}/#{repo}/keys"). - to_return(:body => fixture("repos/keys.json"), - :status => 200, :headers => {}) - end - - it "should fail to get resource without username" do - expect { github.repos.keys.list }.to raise_error(ArgumentError) - end - - it "should get the resources" do - github.repos.keys.list user, repo - a_get("/repos/#{user}/#{repo}/keys").should have_been_made - end - - it "should return array of resources" do - keys = github.repos.keys.list user, repo - keys.should be_an Array - keys.should have(1).items - end - - it "should get key information" do - keys = github.repos.keys.list user, repo - keys.first.title.should == 'octocat@octomac' - end - end - - context "resource not found" do - before do - stub_get("/repos/#{user}/#{repo}/keys"). - to_return(:body => '', :status => 404) - end - - it "should fail to retrieve resource" do - expect { - github.repos.keys.list user, repo - }.to raise_error(Github::Error::NotFound) - end - end - end # list - - describe "#get" do - let(:key_id) { 1 } - - it { github.repos.keys.should respond_to :find } - - context "resource found" do - before do - stub_get("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => fixture("repos/key.json"), :status => 200) - end - - it "should fail to get resource without key" do - expect { - github.repos.keys.get user, repo, nil - }.to raise_error(ArgumentError) - end - - it "should get the resource" do - github.repos.keys.get user, repo, key_id - a_get("/repos/#{user}/#{repo}/keys/#{key_id}").should have_been_made - end - - it "should get key information" do - key = github.repos.keys.get user, repo, key_id - key.id.should == key_id - end - end - - context "resource not found" do - before do - stub_get("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => '', :status => 404) - end - - it "should fail to retrieve resource" do - expect { - github.repos.keys.get user, repo, key_id - }.to raise_error(Github::Error::NotFound) - end - end - end # get - - describe "#create" do - let(:inputs) { {:title => "octocat@octomac", :key => "ssh-rsa AAA..." } } - - context "resource created" do - before do - stub_post("/repos/#{user}/#{repo}/keys").with(inputs). - to_return(:body => fixture("repos/key.json"), :status => 201) - end - - it "should fail to create resource if 'title' input is missing" do - expect { - github.repos.keys.create user, repo, :key => 'ssh-rsa AAA...' - }.to raise_error(Github::Error::RequiredParams) - end - - it "should fail to create resource if 'key' input is missing" do - expect { - github.repos.keys.create user, repo, :title => 'octocat@octomac' - }.to raise_error(Github::Error::RequiredParams) - end - - it "should create the resource" do - github.repos.keys.create user, repo, inputs - a_post("/repos/#{user}/#{repo}/keys").with(inputs).should have_been_made - end - - it "should get the key information back" do - key = github.repos.keys.create user, repo, inputs - key.title.should == 'octocat@octomac' - end - end - - context "failed to create resource" do - before do - stub_post("/repos/#{user}/#{repo}/keys"). - to_return(:body => fixture("repos/key.json"), :status => 404) - end - - it "should fail to retrieve resource" do - expect { - github.repos.keys.create user, repo, inputs - }.to raise_error(Github::Error::NotFound) - end - end - end # create - - describe "#edit" do - let(:key_id) { 1 } - let(:inputs) { {:title => "octocat@octomac", :key => "ssh-rsa AAA..." } } - - context "resource edited successfully" do - before do - stub_patch("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => fixture("repos/key.json"), :status => 200) - end - - it "should edit the resource" do - github.repos.keys.edit user, repo, key_id, inputs - a_patch("/repos/#{user}/#{repo}/keys/#{key_id}").should have_been_made - end - - it "should get the key information back" do - key = github.repos.keys.edit user, repo, key_id, inputs - key.id.should == key_id - key.title.should == 'octocat@octomac' - end - end - - context "failed to edit resource" do - before do - stub_patch("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => fixture("repos/key.json"), :status => 404) - end - - it "should fail to retrieve resource" do - expect { - github.repos.keys.edit user, repo, key_id, inputs - }.to raise_error(Github::Error::NotFound) - end - end - end # edit - - describe "#delete" do - let(:key_id) { 1 } - - context "resource found successfully" do - before do - stub_delete("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => "", :status => 204, - :headers => { :content_type => "application/json; charset=utf-8"} ) - end - - it "should fail to delete without 'user/repo' parameters" do - expect { github.repos.keys.delete }.to raise_error(ArgumentError) - end - - it "should fail to delete resource without key id" do - expect { - github.repos.keys.delete user, repo, nil - }.to raise_error(ArgumentError) - end - - it "should delete the resource" do - github.repos.keys.delete user, repo, key_id - a_delete("/repos/#{user}/#{repo}/keys/#{key_id}").should have_been_made - end - end - - context "failed to find resource" do - before do - stub_delete("/repos/#{user}/#{repo}/keys/#{key_id}"). - to_return(:body => "", :status => 404) - end - it "should fail to find resource" do - expect { - github.repos.keys.delete user, repo, key_id - }.to raise_error(Github::Error::NotFound) - end - end - end # delete + it { described_class::VALID_KEY_OPTIONS.should_not be_nil } end # Github::Repos::Keys