From 06eda9ae8bc7b2b389ed2aaaddea97441c6af30b Mon Sep 17 00:00:00 2001 From: Marco Vermeulen Date: Wed, 7 Oct 2015 13:35:35 +0100 Subject: [PATCH] FEATURE #371 - Introduce list candidates command line functionality. [MV|FF] --- src/main/bash/sdkman-list.sh | 15 +++++++++++++-- src/test/cucumber/list_candidates.feature | 11 +++++++++++ src/test/steps/sdkman/stub_steps.groovy | 6 ++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/test/cucumber/list_candidates.feature diff --git a/src/main/bash/sdkman-list.sh b/src/main/bash/sdkman-list.sh index b0fbfab4..7510ec99 100644 --- a/src/main/bash/sdkman-list.sh +++ b/src/main/bash/sdkman-list.sh @@ -59,8 +59,19 @@ function __sdkman_offline_list { } function __sdkman_list { - CANDIDATE="$1" - __sdkman_check_candidate_present "${CANDIDATE}" || return 1 + CANDIDATE="$1" + if [[ -z "$CANDIDATE" ]]; then + __sdkman_list_candidates + else + __sdkman_list_versions + fi +} + +function __sdkman_list_candidates { + echo "$(curl -s "${SDKMAN_SERVICE}/candidates/list")" +} + +function __sdkman_list_versions { __sdkman_build_version_csv "${CANDIDATE}" __sdkman_determine_current_version "${CANDIDATE}" diff --git a/src/test/cucumber/list_candidates.feature b/src/test/cucumber/list_candidates.feature new file mode 100644 index 00000000..599a17ac --- /dev/null +++ b/src/test/cucumber/list_candidates.feature @@ -0,0 +1,11 @@ +Feature: List Candidates + + Background: + Given the internet is reachable + And an initialised environment + + Scenario: A List of Available Candidates can be viewed + Given the system is bootstrapped + And The candidate list is available + When I enter "sdk list" + Then I see "Candidate List" \ No newline at end of file diff --git a/src/test/steps/sdkman/stub_steps.groovy b/src/test/steps/sdkman/stub_steps.groovy index 3ae3304b..4974c6b2 100644 --- a/src/test/steps/sdkman/stub_steps.groovy +++ b/src/test/steps/sdkman/stub_steps.groovy @@ -1,3 +1,5 @@ +import cucumber.api.DataTable + import static cucumber.api.groovy.EN.And import static sdkman.stubs.WebServiceStub.* import static sdkman.utils.FilesystemUtils.readCurrentFromCandidateFolder @@ -40,3 +42,7 @@ And(~/^the candidate "(.*?)" has a version list available$/) { String candidate primeEndpoint(url, "Candidate: $candidate; Versions: $versions; Current: $current") } + +And(~/^The candidate list is available$/) { -> + primeEndpoint("/candidates/list", "Candidate List") +}