From 426e86a88ebd54a24906948aef384c07f367ca25 Mon Sep 17 00:00:00 2001 From: "kovacs.ferenc" Date: Mon, 31 Aug 2015 15:15:38 +0200 Subject: [PATCH] add a list_jobs_with_details() method for listing jobs for a given view with details(name, url, color) --- lib/jenkins_api_client/view.rb | 14 ++++++++++++++ spec/unit_tests/view_spec.rb | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lib/jenkins_api_client/view.rb b/lib/jenkins_api_client/view.rb index f5358508..6fe7741c 100644 --- a/lib/jenkins_api_client/view.rb +++ b/lib/jenkins_api_client/view.rb @@ -221,6 +221,20 @@ def list_jobs(view_name) job_names end + # List jobs in view along with their details + # + # @param [String] view_name + # + # @return [Array] the details of jobs in the specified view + # + def list_jobs_with_details(view_name) + @logger.info "Obtaining the jobs present in view '#{view_name}'" + raise "The view #{view_name} doesn't exists on the server"\ + unless exists?(view_name) + response_json = @client.api_get_request("/view/#{path_encode view_name}") + response_json["jobs"] + end + # Add a job to view # # @param [String] view_name diff --git a/spec/unit_tests/view_spec.rb b/spec/unit_tests/view_spec.rb index 3ed4ad3f..cbadadae 100644 --- a/spec/unit_tests/view_spec.rb +++ b/spec/unit_tests/view_spec.rb @@ -98,6 +98,24 @@ end end + describe "#list_jobs_with_details" do + it "lists all jobs with details in the given view" do + @client.should_receive(:api_get_request).with("", "tree=views[name]").and_return(@sample_views_json) + @client.should_receive(:api_get_request).with("/view/test_view").and_return( + @sample_view_json) + response = @view.list_jobs_with_details("test_view") + response.class.should == Array + response.size.should == @sample_view_json["jobs"].size + end + + it "raises an error if called on a non-existent view" do + @client.should_receive(:api_get_request).with("", "tree=views[name]").and_return(@sample_views_json) + expect( + lambda { @view.list_jobs_with_details("i_am_not_there") } + ).to raise_error + end + end + describe "#add_job" do it "adds the specified job to the specified view" do @client.should_receive(:api_post_request)