Feature: Use the Nexus Pro CLI
As a Pro CLI user
I need commands to get, update, search, and delete Nexus artifact custom metadata
Scenario: Push an artifact
When I push an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
Then the output should contain:
"""
Artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
"""
And the exit status should be 0
Scenario: Update an artifact's custom metadata
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz somekey:somevalue" command
Then the output should contain:
"""
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
"""
And the exit status should be 0
Scenario: Update an artifact's custom metadata with multiple parameters
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz somekey:somevalue_1! \"someotherkey:some other value\" tempkey:tempvalue" command
Then the output should contain:
"""
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
"""
And the exit status should be 0
Scenario: Update an artifact's custom metadata and remove a key
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz tempkey:" command
Then the output should contain:
"""
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
"""
And the exit status should be 0
Scenario: Get an artifact's custom metadata
When I call the nexus "custom com.test:myprotest:1.0.0:tgz" command
Then the output should contain:
"""
somevalue_1!
"""
And the output should contain:
"""
some other value
"""
And the exit status should be 0
Scenario: Search for artifacts by custom metadata using matches
When I call the nexus "search_custom somekey:matches:*value*" command
Then the output should contain:
"""
myprotest
"""
And the exit status should be 0
Scenario: Search for artifacts by custom metadata using equal
When I call the nexus "search_custom somekey:equal:somevalue_1!" command
Then the output should contain:
"""
myprotest
"""
And the exit status should be 0
Scenario: Search for artifacts by custom metadata using multiple parameters
When I call the nexus "search_custom somekey:matches:*value* somekey:equal:somevalue_1!" command
Then the output should contain:
"""
myprotest
"""
And the exit status should be 0
Scenario: Search for artifacts by custom metadata that return an empty result set
When I call the nexus "search_custom fakekey:equal:fakevalue" command
Then the output should contain:
"""
No search results.
"""
And the exit status should be 0
Scenario: Clear an artifact's custom metadata
When I call the nexus "clear_artifact_custom_info com.test:myprotest:1.0.0:tgz" command
Then the output should contain:
"""
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully cleared.
"""
And the exit status should be 0
@delete
Scenario: Attempt to delete an artifact
When I delete an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
And I call the nexus "info com.test:myprotest:1.0.0:tgz" command
Then the output should contain:
"""
The artifact you requested information for could not be found. Please ensure it exists inside the Nexus.
"""
And the exit status should be 101