jira-ruby 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +51 -7
- data/http-basic-example.rb +106 -0
- data/lib/jira.rb +3 -0
- data/lib/jira/client.rb +41 -74
- data/lib/jira/http_client.rb +41 -0
- data/lib/jira/oauth_client.rb +84 -0
- data/lib/jira/request_client.rb +18 -0
- data/lib/jira/version.rb +1 -1
- data/spec/integration/attachment_spec.rb +14 -17
- data/spec/integration/comment_spec.rb +40 -41
- data/spec/integration/component_spec.rb +32 -33
- data/spec/integration/issue_spec.rb +60 -57
- data/spec/integration/issuetype_spec.rb +16 -17
- data/spec/integration/priority_spec.rb +17 -17
- data/spec/integration/project_spec.rb +36 -36
- data/spec/integration/status_spec.rb +17 -17
- data/spec/integration/user_spec.rb +15 -15
- data/spec/integration/version_spec.rb +32 -32
- data/spec/integration/worklog_spec.rb +41 -41
- data/spec/jira/client_spec.rb +125 -95
- data/spec/jira/http_client_spec.rb +79 -0
- data/spec/jira/oauth_client_spec.rb +111 -0
- data/spec/jira/request_client_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/clients_helper.rb +16 -0
- data/spec/support/shared_examples/integration.rb +11 -11
- metadata +30 -18
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require 'oauth'
         | 
| 2 | 
            +
            require 'json'
         | 
| 3 | 
            +
            require 'net/https'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module JIRA
         | 
| 6 | 
            +
              class RequestClient
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                # Returns the response if the request was successful (HTTP::2xx) and
         | 
| 9 | 
            +
                # raises a JIRA::HTTPError if it was not successful, with the response
         | 
| 10 | 
            +
                # attached.
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def request(*args)
         | 
| 13 | 
            +
                  response = make_request(*args)
         | 
| 14 | 
            +
                  raise HTTPError.new(response) unless response.kind_of?(Net::HTTPSuccess)
         | 
| 15 | 
            +
                  response
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
    
        data/lib/jira/version.rb
    CHANGED
    
    
| @@ -2,25 +2,22 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe JIRA::Resource::Attachment do
         | 
| 4 4 |  | 
| 5 | 
            +
              with_each_client do |site_url, client|
         | 
| 6 | 
            +
                let(:client) { client }
         | 
| 7 | 
            +
                let(:site_url) { site_url }
         | 
| 5 8 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
                client = JIRA::Client.new('foo', 'bar')
         | 
| 8 | 
            -
                client.set_access_token('abc', '123')
         | 
| 9 | 
            -
                client
         | 
| 10 | 
            -
              end
         | 
| 9 | 
            +
                let(:key) { "10000" }
         | 
| 11 10 |  | 
| 12 | 
            -
             | 
| 11 | 
            +
                let(:expected_attributes) do
         | 
| 12 | 
            +
                  {
         | 
| 13 | 
            +
                    'self' => "http://localhost:2990/jira/rest/api/2/attachment/10000",
         | 
| 14 | 
            +
                    'size' => 15360,
         | 
| 15 | 
            +
                    'filename' => "ballmer.png"
         | 
| 16 | 
            +
                  }
         | 
| 17 | 
            +
                end
         | 
| 13 18 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
                 | 
| 16 | 
            -
             | 
| 17 | 
            -
                  'size' => 15360,
         | 
| 18 | 
            -
                  'filename' => "ballmer.png"
         | 
| 19 | 
            -
                }
         | 
| 19 | 
            +
                it_should_behave_like "a resource"
         | 
| 20 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 21 | 
            +
                it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 20 22 | 
             
              end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              it_should_behave_like "a resource"
         | 
| 23 | 
            -
              it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 24 | 
            -
              it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 25 | 
            -
             | 
| 26 23 | 
             
            end
         | 
| @@ -2,54 +2,53 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe JIRA::Resource::Comment do
         | 
| 4 4 |  | 
| 5 | 
            +
              with_each_client do |site_url, client|
         | 
| 6 | 
            +
                let(:client) { client }
         | 
| 7 | 
            +
                let(:site_url) { site_url }
         | 
| 5 8 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
                client = JIRA::Client.new('foo', 'bar')
         | 
| 8 | 
            -
                client.set_access_token('abc', '123')
         | 
| 9 | 
            -
                client
         | 
| 10 | 
            -
              end
         | 
| 9 | 
            +
                let(:key) { "10000" }
         | 
| 11 10 |  | 
| 12 | 
            -
             | 
| 11 | 
            +
                let(:target) { JIRA::Resource::Comment.new(client, :attrs => {'id' => '99999'}, :issue_id => '54321') }
         | 
| 13 12 |  | 
| 14 | 
            -
             | 
| 13 | 
            +
                let(:expected_collection_length) { 2 }
         | 
| 15 14 |  | 
| 16 | 
            -
             | 
| 15 | 
            +
                let(:belongs_to) {
         | 
| 16 | 
            +
                  JIRA::Resource::Issue.new(client, :attrs => {
         | 
| 17 | 
            +
                    'id' => '10002', 'fields' => {
         | 
| 18 | 
            +
                      'comment' => {'comments' => []}
         | 
| 19 | 
            +
                    }
         | 
| 20 | 
            +
                  })
         | 
| 21 | 
            +
                }
         | 
| 17 22 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
                    ' | 
| 23 | 
            +
                let(:expected_attributes) do
         | 
| 24 | 
            +
                  {
         | 
| 25 | 
            +
                    'self' => "http://localhost:2990/jira/rest/api/2/issue/10002/comment/10000",
         | 
| 26 | 
            +
                    'id'   => key,
         | 
| 27 | 
            +
                    'body' => "This is a comment. Creative."
         | 
| 22 28 | 
             
                  }
         | 
| 23 | 
            -
                 | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
                 | 
| 28 | 
            -
             | 
| 29 | 
            -
                   | 
| 30 | 
            -
                  'body' => "This is a comment. Creative."
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                let(:attributes_for_post) {
         | 
| 32 | 
            +
                  {"body" => "new comment"}
         | 
| 33 | 
            +
                }
         | 
| 34 | 
            +
                let(:expected_attributes_from_post) {
         | 
| 35 | 
            +
                  { "id" => "10001", "body" => "new comment"}
         | 
| 31 36 | 
             
                }
         | 
| 32 | 
            -
              end
         | 
| 33 37 |  | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
                 | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                 | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
               | 
| 49 | 
            -
              it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 50 | 
            -
              it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 51 | 
            -
              it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 52 | 
            -
              it_should_behave_like "a resource with a POST endpoint"
         | 
| 53 | 
            -
              it_should_behave_like "a resource with a PUT endpoint"
         | 
| 38 | 
            +
                let(:attributes_for_put) {
         | 
| 39 | 
            +
                  {"body" => "new body"}
         | 
| 40 | 
            +
                }
         | 
| 41 | 
            +
                let(:expected_attributes_from_put) {
         | 
| 42 | 
            +
                  { "id" => "10000", "body" => "new body" }
         | 
| 43 | 
            +
                }
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                it_should_behave_like "a resource"
         | 
| 46 | 
            +
                it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 47 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 48 | 
            +
                it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 49 | 
            +
                it_should_behave_like "a resource with a POST endpoint"
         | 
| 50 | 
            +
                it_should_behave_like "a resource with a PUT endpoint"
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              end
         | 
| 54 53 |  | 
| 55 54 | 
             
            end
         | 
| @@ -3,41 +3,40 @@ require 'spec_helper' | |
| 3 3 | 
             
            describe JIRA::Resource::Component do
         | 
| 4 4 |  | 
| 5 5 |  | 
| 6 | 
            -
               | 
| 7 | 
            -
                client  | 
| 8 | 
            -
                 | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 6 | 
            +
              with_each_client do |site_url, client|
         | 
| 7 | 
            +
                let(:client) { client }
         | 
| 8 | 
            +
                let(:site_url) { site_url }
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                let(:key) { "10000" }
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                let(:expected_attributes) do
         | 
| 13 | 
            +
                  {
         | 
| 14 | 
            +
                    'self' => "http://localhost:2990/jira/rest/api/2/component/10000",
         | 
| 15 | 
            +
                    'id'   => key,
         | 
| 16 | 
            +
                    'name' => "Cheesecake"
         | 
| 17 | 
            +
                  }
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                let(:attributes_for_post) {
         | 
| 21 | 
            +
                  {"name" => "Test component", "project" => "SAMPLEPROJECT" }
         | 
| 22 | 
            +
                }
         | 
| 23 | 
            +
                let(:expected_attributes_from_post) {
         | 
| 24 | 
            +
                  { "id" => "10001", "name" => "Test component" }
         | 
| 25 | 
            +
                }
         | 
| 13 26 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
                   | 
| 27 | 
            +
                let(:attributes_for_put) {
         | 
| 28 | 
            +
                  {"name" => "Jammy", "project" => "SAMPLEPROJECT" }
         | 
| 29 | 
            +
                }
         | 
| 30 | 
            +
                let(:expected_attributes_from_put) {
         | 
| 31 | 
            +
                  { "id" => "10000", "name" => "Jammy" }
         | 
| 19 32 | 
             
                }
         | 
| 20 | 
            -
              end
         | 
| 21 33 |  | 
| 22 | 
            -
             | 
| 23 | 
            -
                 | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
                 | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
              let(:attributes_for_put) {
         | 
| 30 | 
            -
                {"name" => "Jammy", "project" => "SAMPLEPROJECT" }
         | 
| 31 | 
            -
              }
         | 
| 32 | 
            -
              let(:expected_attributes_from_put) {
         | 
| 33 | 
            -
                { "id" => "10000", "name" => "Jammy" }
         | 
| 34 | 
            -
              }
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              it_should_behave_like "a resource"
         | 
| 37 | 
            -
              it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 38 | 
            -
              it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 39 | 
            -
              it_should_behave_like "a resource with a POST endpoint"
         | 
| 40 | 
            -
              it_should_behave_like "a resource with a PUT endpoint"
         | 
| 41 | 
            -
              it_should_behave_like "a resource with a PUT endpoint that rejects invalid fields"
         | 
| 34 | 
            +
                it_should_behave_like "a resource"
         | 
| 35 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 36 | 
            +
                it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 37 | 
            +
                it_should_behave_like "a resource with a POST endpoint"
         | 
| 38 | 
            +
                it_should_behave_like "a resource with a PUT endpoint"
         | 
| 39 | 
            +
                it_should_behave_like "a resource with a PUT endpoint that rejects invalid fields"
         | 
| 42 40 |  | 
| 41 | 
            +
              end
         | 
| 43 42 | 
             
            end
         | 
| @@ -2,74 +2,77 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe JIRA::Resource::Issue do
         | 
| 4 4 |  | 
| 5 | 
            -
               | 
| 6 | 
            -
                client  | 
| 7 | 
            -
                 | 
| 8 | 
            -
             | 
| 9 | 
            -
              end
         | 
| 5 | 
            +
              with_each_client do |site_url, client|
         | 
| 6 | 
            +
                let(:client) { client }
         | 
| 7 | 
            +
                let(:site_url) { site_url }
         | 
| 8 | 
            +
             | 
| 10 9 |  | 
| 11 | 
            -
             | 
| 10 | 
            +
                let(:key) { "10002" }
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                let(:expected_attributes) do
         | 
| 13 | 
            +
                  {
         | 
| 14 | 
            +
                    'self'   => "http://localhost:2990/jira/rest/api/2/issue/10002",
         | 
| 15 | 
            +
                    'key'    => "SAMPLEPROJECT-1",
         | 
| 16 | 
            +
                    'expand' => "renderedFields,names,schema,transitions,editmeta,changelog"
         | 
| 17 | 
            +
                  }
         | 
| 18 | 
            +
                end
         | 
| 12 19 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
                   | 
| 20 | 
            +
                let(:attributes_for_post) {
         | 
| 21 | 
            +
                  { 'foo' => 'bar' }
         | 
| 22 | 
            +
                }
         | 
| 23 | 
            +
                let(:expected_attributes_from_post) {
         | 
| 24 | 
            +
                  { "id" => "10005", "key" => "SAMPLEPROJECT-4" }
         | 
| 18 25 | 
             
                }
         | 
| 19 | 
            -
              end
         | 
| 20 26 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            +
                let(:attributes_for_put) {
         | 
| 28 | 
            +
                  { 'foo' => 'bar' }
         | 
| 29 | 
            +
                }
         | 
| 30 | 
            +
                let(:expected_attributes_from_put) {
         | 
| 31 | 
            +
                  { 'foo' => 'bar' }
         | 
| 32 | 
            +
                }
         | 
| 33 | 
            +
                let(:expected_collection_length) { 11 }
         | 
| 27 34 |  | 
| 28 | 
            -
             | 
| 29 | 
            -
                 | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
              }
         | 
| 34 | 
            -
              let(:expected_collection_length) { 11 }
         | 
| 35 | 
            +
                it_should_behave_like "a resource"
         | 
| 36 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 37 | 
            +
                describe "GET all issues" do # JIRA::Resource::Issue.all uses the search endpoint
         | 
| 38 | 
            +
                  let(:client) { client }
         | 
| 39 | 
            +
                  let(:site_url) { site_url }
         | 
| 35 40 |  | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
                     | 
| 42 | 
            -
                    "self"=>"http://localhost:2990/jira/rest/api/2/issue/10014",
         | 
| 43 | 
            -
                    "key"=>"SAMPLEPROJECT-13"
         | 
| 41 | 
            +
                  let(:expected_attributes) {
         | 
| 42 | 
            +
                    {
         | 
| 43 | 
            +
                      "id"=>"10014",
         | 
| 44 | 
            +
                      "self"=>"http://localhost:2990/jira/rest/api/2/issue/10014",
         | 
| 45 | 
            +
                      "key"=>"SAMPLEPROJECT-13"
         | 
| 46 | 
            +
                    }
         | 
| 44 47 | 
             
                  }
         | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 48 | 
            +
                  before(:each) do
         | 
| 49 | 
            +
                    stub_request(:get, site_url + "/jira/rest/api/2/search").
         | 
| 50 | 
            +
                                to_return(:status => 200, :body => get_mock_response('issue.json'))
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
                  it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 49 53 | 
             
                end
         | 
| 50 | 
            -
                it_should_behave_like "a resource with a  | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
              it_should_behave_like "a resource with a PUT endpoint"
         | 
| 55 | 
            -
              it_should_behave_like "a resource with a PUT endpoint that rejects invalid fields"
         | 
| 54 | 
            +
                it_should_behave_like "a resource with a DELETE endpoint"
         | 
| 55 | 
            +
                it_should_behave_like "a resource with a POST endpoint"
         | 
| 56 | 
            +
                it_should_behave_like "a resource with a PUT endpoint"
         | 
| 57 | 
            +
                it_should_behave_like "a resource with a PUT endpoint that rejects invalid fields"
         | 
| 56 58 |  | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 59 | 
            +
                describe "errors" do
         | 
| 60 | 
            +
                  before(:each) do
         | 
| 61 | 
            +
                    stub_request(:get,
         | 
| 62 | 
            +
                                site_url + "/jira/rest/api/2/issue/10002").
         | 
| 63 | 
            +
                                to_return(:status => 200, :body => get_mock_response('issue/10002.json'))
         | 
| 64 | 
            +
                    stub_request(:put, site_url + "/jira/rest/api/2/issue/10002").
         | 
| 65 | 
            +
                                with(:body => '{"missing":"fields and update"}').
         | 
| 66 | 
            +
                                to_return(:status => 400, :body => get_mock_response('issue/10002.put.missing_field_update.json'))
         | 
| 67 | 
            +
                  end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                  it "fails to save when fields and update are missing" do
         | 
| 70 | 
            +
                    subject = client.Issue.build('id' => '10002')
         | 
| 71 | 
            +
                    subject.fetch
         | 
| 72 | 
            +
                    subject.save('missing' => 'fields and update').should be_false
         | 
| 73 | 
            +
                  end
         | 
| 66 74 |  | 
| 67 | 
            -
                it "fails to save when fields and update are missing" do
         | 
| 68 | 
            -
                  subject = client.Issue.build('id' => '10002')
         | 
| 69 | 
            -
                  subject.fetch
         | 
| 70 | 
            -
                  subject.save('missing' => 'fields and update').should be_false
         | 
| 71 75 | 
             
                end
         | 
| 72 76 |  | 
| 73 77 | 
             
              end
         | 
| 74 | 
            -
             | 
| 75 78 | 
             
            end
         | 
| @@ -2,26 +2,25 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe JIRA::Resource::Issuetype do
         | 
| 4 4 |  | 
| 5 | 
            -
               | 
| 6 | 
            -
                client  | 
| 7 | 
            -
                 | 
| 8 | 
            -
                client
         | 
| 9 | 
            -
              end
         | 
| 5 | 
            +
              with_each_client do |site_url, client|
         | 
| 6 | 
            +
                let(:client) { client }
         | 
| 7 | 
            +
                let(:site_url) { site_url }
         | 
| 10 8 |  | 
| 11 | 
            -
             | 
| 9 | 
            +
                let(:key) { "5" }
         | 
| 12 10 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 11 | 
            +
                let(:expected_attributes) do
         | 
| 12 | 
            +
                  {
         | 
| 13 | 
            +
                    'self' => "http://localhost:2990/jira/rest/api/2/issuetype/5",
         | 
| 14 | 
            +
                    'id' => key,
         | 
| 15 | 
            +
                    'name' => 'Sub-task'
         | 
| 16 | 
            +
                  }
         | 
| 17 | 
            +
                end
         | 
| 20 18 |  | 
| 21 | 
            -
             | 
| 19 | 
            +
                let(:expected_collection_length) { 5 }
         | 
| 22 20 |  | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 21 | 
            +
                it_should_behave_like "a resource"
         | 
| 22 | 
            +
                it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 23 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 26 24 |  | 
| 25 | 
            +
              end
         | 
| 27 26 | 
             
            end
         | 
| @@ -2,26 +2,26 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe JIRA::Resource::Priority do
         | 
| 4 4 |  | 
| 5 | 
            -
               | 
| 6 | 
            -
                client  | 
| 7 | 
            -
                 | 
| 8 | 
            -
                client
         | 
| 9 | 
            -
              end
         | 
| 5 | 
            +
              with_each_client do |site_url, client|
         | 
| 6 | 
            +
                let(:client) { client }
         | 
| 7 | 
            +
                let(:site_url) { site_url }
         | 
| 10 8 |  | 
| 11 | 
            -
              let(:key) { "1" }
         | 
| 12 9 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
                {
         | 
| 15 | 
            -
                  'self' => "http://localhost:2990/jira/rest/api/2/priority/1",
         | 
| 16 | 
            -
                  'id' => key,
         | 
| 17 | 
            -
                  'name' => 'Blocker'
         | 
| 18 | 
            -
                }
         | 
| 19 | 
            -
              end
         | 
| 10 | 
            +
                let(:key) { "1" }
         | 
| 20 11 |  | 
| 21 | 
            -
             | 
| 12 | 
            +
                let(:expected_attributes) do
         | 
| 13 | 
            +
                  {
         | 
| 14 | 
            +
                    'self' => "http://localhost:2990/jira/rest/api/2/priority/1",
         | 
| 15 | 
            +
                    'id' => key,
         | 
| 16 | 
            +
                    'name' => 'Blocker'
         | 
| 17 | 
            +
                  }
         | 
| 18 | 
            +
                end
         | 
| 22 19 |  | 
| 23 | 
            -
             | 
| 24 | 
            -
              it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 25 | 
            -
              it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 20 | 
            +
                let(:expected_collection_length) { 5 }
         | 
| 26 21 |  | 
| 22 | 
            +
                it_should_behave_like "a resource"
         | 
| 23 | 
            +
                it_should_behave_like "a resource with a collection GET endpoint"
         | 
| 24 | 
            +
                it_should_behave_like "a resource with a singular GET endpoint"
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              end
         | 
| 27 27 | 
             
            end
         |