nexus_cli 0.7.3 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/nexus-cli +0 -4
- data/features/nexus_oss.feature +26 -0
- data/lib/nexus_cli.rb +4 -0
- data/lib/nexus_cli/errors.rb +15 -1
- data/lib/nexus_cli/n3_metadata.rb +39 -56
- data/lib/nexus_cli/nexus_oss_remote.rb +262 -181
- data/lib/nexus_cli/nexus_pro_remote.rb +207 -190
- data/lib/nexus_cli/nexus_remote_factory.rb +30 -12
- data/lib/nexus_cli/tasks.rb +17 -18
- data/nexus_cli.gemspec +1 -1
- data/pro/nexus_custom_metadata.feature +97 -0
- data/pro/nexus_pro.feature +0 -99
- data/spec/oss_remote_spec.rb +6 -2
- data/spec/pro_remote_spec.rb +66 -6
- metadata +6 -5
@@ -1,11 +1,10 @@
|
|
1
|
-
require '
|
1
|
+
require 'httpclient'
|
2
2
|
require 'nokogiri'
|
3
3
|
require 'yaml'
|
4
4
|
|
5
5
|
module NexusCli
|
6
6
|
class Factory
|
7
7
|
class << self
|
8
|
-
|
9
8
|
def create(overrides)
|
10
9
|
@configuration = Configuration::parse(overrides)
|
11
10
|
running_nexus_pro? ? ProRemote.new(overrides) : OSSRemote.new(overrides)
|
@@ -16,22 +15,41 @@ module NexusCli
|
|
16
15
|
end
|
17
16
|
|
18
17
|
def nexus
|
19
|
-
|
18
|
+
client = HTTPClient.new
|
19
|
+
# https://github.com/nahi/httpclient/issues/63
|
20
|
+
client.set_auth(nil, configuration['username'], configuration['password'])
|
21
|
+
client.www_auth.basic_auth.challenge(configuration['url'])
|
22
|
+
return client
|
23
|
+
end
|
24
|
+
|
25
|
+
def nexus_url(url)
|
26
|
+
File.join(configuration['url'], url)
|
20
27
|
end
|
21
28
|
|
22
29
|
def status
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
30
|
+
response = nexus.get(nexus_url("service/local/status"))
|
31
|
+
case response.status
|
32
|
+
when 200
|
33
|
+
doc = Nokogiri::XML(response.content).xpath("/status/data")
|
34
|
+
data = Hash.new
|
35
|
+
data['app_name'] = doc.xpath("appName")[0].text
|
36
|
+
data['version'] = doc.xpath("version")[0].text
|
37
|
+
data['edition_long'] = doc.xpath("editionLong")[0].text
|
38
|
+
data['state'] = doc.xpath("state")[0].text
|
39
|
+
data['started_at'] = doc.xpath("startedAt")[0].text
|
40
|
+
data['base_url'] = doc.xpath("baseUrl")[0].text
|
41
|
+
return data
|
42
|
+
when 401
|
43
|
+
raise PermissionsException
|
44
|
+
when 503
|
45
|
+
raise CouldNotConnectToNexusException
|
46
|
+
else
|
47
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
48
|
+
end
|
32
49
|
end
|
33
50
|
|
34
51
|
private
|
52
|
+
|
35
53
|
def running_nexus_pro?
|
36
54
|
return status['edition_long'] == "Professional" ? true : false
|
37
55
|
end
|
data/lib/nexus_cli/tasks.rb
CHANGED
@@ -11,11 +11,10 @@ module NexusCli
|
|
11
11
|
map 'push' => :push_artifact
|
12
12
|
map 'info' => :get_artifact_info
|
13
13
|
map 'custom' => :get_artifact_custom_info
|
14
|
-
map 'custom_raw' => :get_artifact_custom_info_n3
|
15
14
|
map 'config' => :get_nexus_configuration
|
16
15
|
map 'status' => :get_nexus_status
|
17
16
|
map 'search' => :search_for_artifacts
|
18
|
-
map 'search_custom' => :
|
17
|
+
map 'search_custom' => :search_artifacts_custom
|
19
18
|
|
20
19
|
class_option :overrides,
|
21
20
|
:type => :hash,
|
@@ -60,13 +59,8 @@ module NexusCli
|
|
60
59
|
|
61
60
|
desc "get_artifact_custom_info artifact", "Gets and returns the custom metadata in XML format about a particular artifact."
|
62
61
|
def get_artifact_custom_info(artifact)
|
63
|
-
say @nexus_remote.get_artifact_custom_info(artifact), :green
|
64
|
-
end
|
65
|
-
|
66
|
-
desc "get_artifact_custom_info_n3 artifact", "Gets and returns the custom metadata in Nexus n3 format about a particular artifact."
|
67
|
-
def get_artifact_custom_info_n3(artifact)
|
68
62
|
raise NotNexusProException unless @nexus_remote.kind_of? ProRemote
|
69
|
-
say @nexus_remote.
|
63
|
+
say @nexus_remote.get_artifact_custom_info(artifact), :green
|
70
64
|
end
|
71
65
|
|
72
66
|
desc "update_artifact_custom_info artifact param1 param2 ...", "Updates the artifact custom metadata with the given key-value pairs."
|
@@ -76,13 +70,6 @@ module NexusCli
|
|
76
70
|
say "Custom metadata for artifact #{artifact} has been successfully pushed to Nexus.", :green
|
77
71
|
end
|
78
72
|
|
79
|
-
desc "update_artifact_custom_info_n3 artifact file", "Updates the artifact custom metadata by pushing the Nexus custom artifact file (n3) from your machine onto the Nexus."
|
80
|
-
def update_artifact_custom_info_n3(artifact, file)
|
81
|
-
raise NotNexusProException unless @nexus_remote.kind_of? ProRemote
|
82
|
-
@nexus_remote.update_artifact_custom_info_n3(artifact, file)
|
83
|
-
say "Custom metadata for artifact #{artifact} has been successfully pushed to Nexus.", :green
|
84
|
-
end
|
85
|
-
|
86
73
|
desc "clear_artifact_custom_info artifact", "Clears the artifact custom metadata."
|
87
74
|
def clear_artifact_custom_info(artifact)
|
88
75
|
raise NotNexusProException unless @nexus_remote.kind_of? ProRemote
|
@@ -90,10 +77,10 @@ module NexusCli
|
|
90
77
|
say "Custom metadata for artifact #{artifact} has been successfully cleared.", :green
|
91
78
|
end
|
92
79
|
|
93
|
-
desc "
|
94
|
-
def
|
80
|
+
desc "search_artifacts_custom param1 param2 ... ", "Searches for artifacts using artifact metadata and returns the result as a list with items in XML format."
|
81
|
+
def search_artifacts_custom(*params)
|
95
82
|
raise NotNexusProException unless @nexus_remote.kind_of? ProRemote
|
96
|
-
say (s = @nexus_remote.
|
83
|
+
say (s = @nexus_remote.search_artifacts_custom(*params)) == "" ? "No search results." : s, :green
|
97
84
|
end
|
98
85
|
|
99
86
|
desc "get_nexus_configuration", "Prints out configuration from the .nexus_cli file that helps inform where artifacts will be uploaded."
|
@@ -379,6 +366,18 @@ module NexusCli
|
|
379
366
|
@nexus_remote.install_license(license_file)
|
380
367
|
end
|
381
368
|
|
369
|
+
desc "get_logging_info", "Gets the log4j Settings of the Nexus server."
|
370
|
+
def get_logging_info
|
371
|
+
say @nexus_remote.get_logging_info, :green
|
372
|
+
end
|
373
|
+
|
374
|
+
desc "set_logger_level level", "Updates the log4j logging level to a new value."
|
375
|
+
def set_logger_level(level)
|
376
|
+
if @nexus_remote.set_logger_level(level)
|
377
|
+
say "The logging level of Nexus has been set to #{level.upcase}", :blue
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
382
381
|
private
|
383
382
|
|
384
383
|
def ask_user(params, ask_username=true, ask_password=true)
|
data/nexus_cli.gemspec
CHANGED
@@ -0,0 +1,97 @@
|
|
1
|
+
Feature: Use the Nexus Pro CLI
|
2
|
+
As a Pro CLI user
|
3
|
+
I need commands to get, update, search, and delete Nexus artifact custom metadata
|
4
|
+
|
5
|
+
Scenario: Push an artifact
|
6
|
+
When I push an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
|
7
|
+
Then the output should contain:
|
8
|
+
"""
|
9
|
+
Artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
10
|
+
"""
|
11
|
+
And the exit status should be 0
|
12
|
+
|
13
|
+
Scenario: Update an artifact's custom metadata
|
14
|
+
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz somekey:somevalue" command
|
15
|
+
Then the output should contain:
|
16
|
+
"""
|
17
|
+
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
18
|
+
"""
|
19
|
+
And the exit status should be 0
|
20
|
+
|
21
|
+
Scenario: Update an artifact's custom metadata with multiple parameters
|
22
|
+
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
|
23
|
+
Then the output should contain:
|
24
|
+
"""
|
25
|
+
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
26
|
+
"""
|
27
|
+
And the exit status should be 0
|
28
|
+
|
29
|
+
Scenario: Update an artifact's custom metadata and remove a key
|
30
|
+
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz tempkey:" command
|
31
|
+
Then the output should contain:
|
32
|
+
"""
|
33
|
+
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
34
|
+
"""
|
35
|
+
And the exit status should be 0
|
36
|
+
|
37
|
+
Scenario: Get an artifact's custom metadata
|
38
|
+
When I call the nexus "custom com.test:myprotest:1.0.0:tgz" command
|
39
|
+
Then the output should contain:
|
40
|
+
"""
|
41
|
+
<somekey>somevalue_1!</somekey>
|
42
|
+
"""
|
43
|
+
And the output should contain:
|
44
|
+
"""
|
45
|
+
<someotherkey>some other value</someotherkey>
|
46
|
+
"""
|
47
|
+
And the exit status should be 0
|
48
|
+
|
49
|
+
Scenario: Search for artifacts by custom metadata using matches
|
50
|
+
When I call the nexus "search_custom somekey:matches:*value*" command
|
51
|
+
Then the output should contain:
|
52
|
+
"""
|
53
|
+
<artifactId>myprotest</artifactId>
|
54
|
+
"""
|
55
|
+
And the exit status should be 0
|
56
|
+
|
57
|
+
Scenario: Search for artifacts by custom metadata using equal
|
58
|
+
When I call the nexus "search_custom somekey:equal:somevalue_1!" command
|
59
|
+
Then the output should contain:
|
60
|
+
"""
|
61
|
+
<artifactId>myprotest</artifactId>
|
62
|
+
"""
|
63
|
+
And the exit status should be 0
|
64
|
+
|
65
|
+
Scenario: Search for artifacts by custom metadata using multiple parameters
|
66
|
+
When I call the nexus "search_custom somekey:matches:*value* somekey:equal:somevalue_1!" command
|
67
|
+
Then the output should contain:
|
68
|
+
"""
|
69
|
+
<artifactId>myprotest</artifactId>
|
70
|
+
"""
|
71
|
+
And the exit status should be 0
|
72
|
+
|
73
|
+
Scenario: Search for artifacts by custom metadata that return an empty result set
|
74
|
+
When I call the nexus "search_custom fakekey:equal:fakevalue" command
|
75
|
+
Then the output should contain:
|
76
|
+
"""
|
77
|
+
No search results.
|
78
|
+
"""
|
79
|
+
And the exit status should be 0
|
80
|
+
|
81
|
+
Scenario: Clear an artifact's custom metadata
|
82
|
+
When I call the nexus "clear_artifact_custom_info com.test:myprotest:1.0.0:tgz" command
|
83
|
+
Then the output should contain:
|
84
|
+
"""
|
85
|
+
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully cleared.
|
86
|
+
"""
|
87
|
+
And the exit status should be 0
|
88
|
+
|
89
|
+
@delete
|
90
|
+
Scenario: Attempt to delete an artifact
|
91
|
+
When I delete an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
|
92
|
+
And I call the nexus "info com.test:myprotest:1.0.0:tgz" command
|
93
|
+
Then the output should contain:
|
94
|
+
"""
|
95
|
+
The artifact you requested information for could not be found. Please ensure it exists inside the Nexus.
|
96
|
+
"""
|
97
|
+
And the exit status should be 101
|
data/pro/nexus_pro.feature
CHANGED
@@ -10,105 +10,6 @@ Feature: Use the Nexus Pro CLI
|
|
10
10
|
"""
|
11
11
|
And the exit status should be 0
|
12
12
|
|
13
|
-
@push
|
14
|
-
Scenario: Push an artifact
|
15
|
-
When I push an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
|
16
|
-
Then the output should contain:
|
17
|
-
"""
|
18
|
-
Artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
19
|
-
"""
|
20
|
-
And the exit status should be 0
|
21
|
-
|
22
|
-
Scenario: Update an artifact's custom metadata
|
23
|
-
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz teemoHat:equipped" command
|
24
|
-
Then the output should contain:
|
25
|
-
"""
|
26
|
-
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
27
|
-
"""
|
28
|
-
And the exit status should be 0
|
29
|
-
|
30
|
-
Scenario: Update an artifact's custom metadata with multiple parameters
|
31
|
-
When I call the nexus "update_artifact_custom_info com.test:myprotest:1.0.0:tgz teemoHat:equipped_ \"teemoSkins:many skins!!1\"" command
|
32
|
-
Then the output should contain:
|
33
|
-
"""
|
34
|
-
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully pushed to Nexus.
|
35
|
-
"""
|
36
|
-
And the exit status should be 0
|
37
|
-
|
38
|
-
Scenario: Get an artifact's custom metadata
|
39
|
-
When I call the nexus "custom com.test:myprotest:1.0.0:tgz" command
|
40
|
-
Then the output should contain:
|
41
|
-
"""
|
42
|
-
<teemoHat>equipped_</teemoHat>
|
43
|
-
"""
|
44
|
-
And the output should contain:
|
45
|
-
"""
|
46
|
-
<teemoSkins>many skins!!1</teemoSkins>
|
47
|
-
"""
|
48
|
-
And the exit status should be 0
|
49
|
-
|
50
|
-
Scenario: Get an artifact's raw custom metadata
|
51
|
-
When I call the nexus "custom_raw com.test:myprotest:1.0.0:tgz" command
|
52
|
-
Then the output should contain:
|
53
|
-
"""
|
54
|
-
<urn:nexus/user#teemoHat> "equipped_"
|
55
|
-
"""
|
56
|
-
And the output should contain:
|
57
|
-
"""
|
58
|
-
<urn:nexus/user#teemoSkins> "many skins!!1"
|
59
|
-
"""
|
60
|
-
And the exit status should be 0
|
61
|
-
|
62
|
-
Scenario: Search for artifacts by custom metadata using matches
|
63
|
-
When I call the nexus "search_custom teemoHat:matches:equip*" command
|
64
|
-
Then the output should contain:
|
65
|
-
"""
|
66
|
-
<artifactId>myprotest</artifactId>
|
67
|
-
"""
|
68
|
-
And the exit status should be 0
|
69
|
-
|
70
|
-
Scenario: Search for artifacts by custom metadata using equal
|
71
|
-
When I call the nexus "search_custom teemoHat:equal:equipped_" command
|
72
|
-
Then the output should contain:
|
73
|
-
"""
|
74
|
-
<artifactId>myprotest</artifactId>
|
75
|
-
"""
|
76
|
-
And the exit status should be 0
|
77
|
-
|
78
|
-
Scenario: Search for artifacts by custom metadata using multiple parameters
|
79
|
-
When I call the nexus "search_custom teemoHat:matches:equip* teemoHat:equal:equipped_" command
|
80
|
-
Then the output should contain:
|
81
|
-
"""
|
82
|
-
<artifactId>myprotest</artifactId>
|
83
|
-
"""
|
84
|
-
And the exit status should be 0
|
85
|
-
|
86
|
-
Scenario: Search for artifacts by custom metadata that return an empty result set
|
87
|
-
When I call the nexus "search_custom bestTeemo:equal:malady" command
|
88
|
-
Then the output should contain:
|
89
|
-
"""
|
90
|
-
No search results.
|
91
|
-
"""
|
92
|
-
And the exit status should be 0
|
93
|
-
|
94
|
-
Scenario: Clear an artifact's custom metadata
|
95
|
-
When I call the nexus "clear_artifact_custom_info com.test:myprotest:1.0.0:tgz" command
|
96
|
-
Then the output should contain:
|
97
|
-
"""
|
98
|
-
Custom metadata for artifact com.test:myprotest:1.0.0:tgz has been successfully cleared.
|
99
|
-
"""
|
100
|
-
And the exit status should be 0
|
101
|
-
|
102
|
-
@delete
|
103
|
-
Scenario: Attempt to delete an artifact
|
104
|
-
When I delete an artifact with the GAV of "com.test:myprotest:1.0.0:tgz"
|
105
|
-
And I call the nexus "info com.test:myprotest:1.0.0:tgz" command
|
106
|
-
Then the output should contain:
|
107
|
-
"""
|
108
|
-
The artifact you requested information for could not be found. Please ensure it exists inside the Nexus.
|
109
|
-
"""
|
110
|
-
And the exit status should be 101
|
111
|
-
|
112
13
|
Scenario: Set a repository to publish updates
|
113
14
|
When I call the nexus "enable_artifact_publish releases" command
|
114
15
|
And I call the nexus "get_pub_sub releases" command
|
data/spec/oss_remote_spec.rb
CHANGED
@@ -12,12 +12,12 @@ describe NexusCli do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "gives you errors when you attempt to pull an artifact and it cannot be found" do
|
15
|
-
|
15
|
+
HTTPClient.any_instance.stub(:get).and_raise(NexusCli::ArtifactNotFoundException)
|
16
16
|
expect {remote.pull_artifact "com.something:something:1.0.0:tgz", nil}.to raise_error(NexusCli::ArtifactNotFoundException)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "gives you errors when you attempt to get an artifact's info and it cannot be found" do
|
20
|
-
|
20
|
+
HTTPClient.any_instance.stub(:get).and_raise(NexusCli::ArtifactNotFoundException)
|
21
21
|
expect {remote.get_artifact_info "com.something:something:1.0.0:tgz"}.to raise_error(NexusCli::ArtifactNotFoundException)
|
22
22
|
end
|
23
23
|
|
@@ -27,4 +27,8 @@ describe NexusCli do
|
|
27
27
|
to_return(:status => 404, :body => "", :headers => {})
|
28
28
|
expect {remote.update_user(:userId => "qwertyasdf")}.to raise_error(NexusCli::UserNotFoundException)
|
29
29
|
end
|
30
|
+
|
31
|
+
it "gives you an error when you try to set the logging level to something weird" do
|
32
|
+
expect {remote.set_logger_level("weird")}.to raise_error(NexusCli::InvalidLoggingLevelException)
|
33
|
+
end
|
30
34
|
end
|
data/spec/pro_remote_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe NexusCli do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "gives you errors when you attempt to get an artifact's custom info and it cannot be found" do
|
11
|
-
|
11
|
+
HTTPClient.any_instance.stub(:get).and_raise(NexusCli::ArtifactNotFoundException)
|
12
12
|
expect {remote.get_artifact_custom_info("com.something:something:1.0.0:tgz")}.to raise_error(NexusCli::ArtifactNotFoundException)
|
13
13
|
end
|
14
14
|
|
@@ -21,23 +21,83 @@ describe NexusCli do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "gives you errors when you attempt to clear an artifact's custom info and it cannot be found" do
|
24
|
-
|
24
|
+
HTTPClient.any_instance.stub(:get).and_raise(NexusCli::ArtifactNotFoundException)
|
25
25
|
expect {remote.clear_artifact_custom_info("com.something:something:1.0.0:tgz")}.to raise_error(NexusCli::ArtifactNotFoundException)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "gives you errors when you attempt to search for artifacts using custom info and don't give valid key" do
|
29
|
-
expect {remote.
|
29
|
+
expect {remote.search_artifacts_custom("somekey_:equal:somevalue")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
30
30
|
end
|
31
31
|
|
32
32
|
it "gives you errors when you attempt to search for artifacts using custom info and don't give valid value" do
|
33
|
-
expect {remote.
|
33
|
+
expect {remote.search_artifacts_custom("somekey:equal:somevalue \"\'\\/")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
34
34
|
end
|
35
35
|
|
36
36
|
it "gives you errors when you attempt to search for artifacts using custom info and don't give valid search type" do
|
37
|
-
expect {remote.
|
37
|
+
expect {remote.search_artifacts_custom("somekey:equals:somevalue")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
38
38
|
end
|
39
39
|
|
40
40
|
it "gives you errors when you attempt to search for artifacts using custom info and don't give valid parameters" do
|
41
|
-
expect {remote.
|
41
|
+
expect {remote.search_artifacts_custom("somekey")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "tests for custom metadata private helper methods" do
|
45
|
+
it "gives you errors when you attempt to parse custom metadata with bad update keys" do
|
46
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkey:goodvalue", "badkey_:goodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "gives you errors when you attempt to parse custom metadata with missing update keys" do
|
50
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, ":goodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "gives you errors when you attempt to parse custom metadata with typo" do
|
54
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkeygoodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "gives you errors when you attempt to parse custom metadata with bad update values" do
|
58
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkey:goodvalue", "goodkey:badvalue\"'\\")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "gives you errors when you attempt to parse custom metadata with missing search type and value" do
|
62
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "gives you errors when you attempt to parse custom metadata with bad search type" do
|
66
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey:eq:goodvalue")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "gives you errors when you attempt to parse custom metadata with bad search value" do
|
70
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey:equals:badvalue\"'\\")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "tests for custom metadata private helper methods" do
|
75
|
+
it "gives you errors when you attempt to parse custom metadata with bad update keys" do
|
76
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkey:goodvalue", "badkey_:goodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "gives you errors when you attempt to parse custom metadata with missing update keys" do
|
80
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, ":goodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "gives you errors when you attempt to parse custom metadata with typo" do
|
84
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkeygoodvalue")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "gives you errors when you attempt to parse custom metadata with bad update values" do
|
88
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_update_params, "goodkey:goodvalue", "goodkey:badvalue\"'\\")}.to raise_error(NexusCli::N3ParameterMalformedException)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "gives you errors when you attempt to parse custom metadata with missing search type and value" do
|
92
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "gives you errors when you attempt to parse custom metadata with bad search type" do
|
96
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey:eq:goodvalue")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "gives you errors when you attempt to parse custom metadata with bad search value" do
|
100
|
+
expect {NexusCli::ProRemote.new(nil).send(:parse_custom_metadata_search_params, "goodkey:equals:badvalue\"'\\")}.to raise_error(NexusCli::SearchParameterMalformedException)
|
101
|
+
end
|
42
102
|
end
|
43
103
|
end
|