admin_module 0.1.4

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.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +14 -0
  5. data/Guardfile +24 -0
  6. data/LICENSE +22 -0
  7. data/README.md +281 -0
  8. data/Rakefile +98 -0
  9. data/admin_module.gemspec +34 -0
  10. data/bin/admin_module +13 -0
  11. data/lib/admin_module.rb +260 -0
  12. data/lib/admin_module/cli.rb +54 -0
  13. data/lib/admin_module/cli/cli_guideline.rb +80 -0
  14. data/lib/admin_module/cli/cli_lock.rb +149 -0
  15. data/lib/admin_module/cli/cli_parameter.rb +66 -0
  16. data/lib/admin_module/cli/cli_task.rb +149 -0
  17. data/lib/admin_module/cli_old.rb +92 -0
  18. data/lib/admin_module/client.rb +146 -0
  19. data/lib/admin_module/command.rb +25 -0
  20. data/lib/admin_module/command/client_access.rb +43 -0
  21. data/lib/admin_module/command/config.rb +310 -0
  22. data/lib/admin_module/command/dc.rb +110 -0
  23. data/lib/admin_module/command/gdl.rb +71 -0
  24. data/lib/admin_module/command/lock.rb +110 -0
  25. data/lib/admin_module/command/ppm.rb +142 -0
  26. data/lib/admin_module/command/rule.rb +77 -0
  27. data/lib/admin_module/command/ruleset.rb +56 -0
  28. data/lib/admin_module/command/snapshot.rb +110 -0
  29. data/lib/admin_module/command/stage.rb +131 -0
  30. data/lib/admin_module/command/task.rb +110 -0
  31. data/lib/admin_module/config_helper.rb +33 -0
  32. data/lib/admin_module/dc.rb +133 -0
  33. data/lib/admin_module/guideline.rb +86 -0
  34. data/lib/admin_module/locks.rb +142 -0
  35. data/lib/admin_module/page_factory.rb +55 -0
  36. data/lib/admin_module/pages.rb +120 -0
  37. data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
  38. data/lib/admin_module/pages/dc_detail_page.rb +187 -0
  39. data/lib/admin_module/pages/guideline_page.rb +35 -0
  40. data/lib/admin_module/pages/guideline_version_page.rb +140 -0
  41. data/lib/admin_module/pages/guidelines_page.rb +59 -0
  42. data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
  43. data/lib/admin_module/pages/lock_definition_page.rb +178 -0
  44. data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
  45. data/lib/admin_module/pages/login_page.rb +75 -0
  46. data/lib/admin_module/pages/parameter_page.rb +62 -0
  47. data/lib/admin_module/pages/parameters_page.rb +46 -0
  48. data/lib/admin_module/pages/ppms_page.rb +110 -0
  49. data/lib/admin_module/pages/rule_page.rb +68 -0
  50. data/lib/admin_module/pages/rules_page.rb +74 -0
  51. data/lib/admin_module/pages/ruleset_page.rb +64 -0
  52. data/lib/admin_module/pages/rulesets_page.rb +60 -0
  53. data/lib/admin_module/pages/select_list_syncable.rb +64 -0
  54. data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
  55. data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
  56. data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
  57. data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
  58. data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
  59. data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
  60. data/lib/admin_module/pages/workflow_details_page.rb +67 -0
  61. data/lib/admin_module/pages/workflow_task_page.rb +107 -0
  62. data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
  63. data/lib/admin_module/ppms.rb +78 -0
  64. data/lib/admin_module/rake.rb +22 -0
  65. data/lib/admin_module/rake/dc_tasks.rb +185 -0
  66. data/lib/admin_module/rake/deploy_task.rb +59 -0
  67. data/lib/admin_module/rake/gdl_tasks.rb +189 -0
  68. data/lib/admin_module/rake/lock_tasks.rb +189 -0
  69. data/lib/admin_module/rake/parameter_task.rb +86 -0
  70. data/lib/admin_module/rake/ppm_tasks.rb +248 -0
  71. data/lib/admin_module/rake/rule_tasks.rb +157 -0
  72. data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
  73. data/lib/admin_module/rake/stage_tasks.rb +197 -0
  74. data/lib/admin_module/rake/stages_task.rb +197 -0
  75. data/lib/admin_module/rake/task_tasks.rb +189 -0
  76. data/lib/admin_module/rules.rb +50 -0
  77. data/lib/admin_module/rulesets.rb +42 -0
  78. data/lib/admin_module/snapshots.rb +133 -0
  79. data/lib/admin_module/stages.rb +171 -0
  80. data/lib/admin_module/tasks.rb +147 -0
  81. data/lib/admin_module/version.rb +3 -0
  82. data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
  83. data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
  84. data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
  85. data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
  86. data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
  87. data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
  88. data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
  89. data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
  90. data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
  91. data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
  92. data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
  93. data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
  94. data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
  95. data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
  96. data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
  97. data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
  98. data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
  99. data/spec/data/build/test1.xml +0 -0
  100. data/spec/data/build/test2.xml +1 -0
  101. data/spec/data/import_dcs.yml +31 -0
  102. data/spec/data/import_locks.yml +4 -0
  103. data/spec/data/import_snapshots.yml +35 -0
  104. data/spec/data/import_stages.yml +4 -0
  105. data/spec/data/import_tasks.yml +25 -0
  106. data/spec/data/patch-test.xml +1 -0
  107. data/spec/data/remove_test_del_rule.xml +1 -0
  108. data/spec/data/stages.yml +518 -0
  109. data/spec/data/test_del_rule.xml +1 -0
  110. data/spec/lib/admin_module/admin_module_spec.rb +175 -0
  111. data/spec/lib/admin_module/cli_spec.rb +36 -0
  112. data/spec/lib/admin_module/client_spec.rb +158 -0
  113. data/spec/lib/admin_module/command/config_spec.rb +477 -0
  114. data/spec/lib/admin_module/command/dc_spec.rb +202 -0
  115. data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
  116. data/spec/lib/admin_module/command/lock_spec.rb +207 -0
  117. data/spec/lib/admin_module/command/rule_spec.rb +163 -0
  118. data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
  119. data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
  120. data/spec/lib/admin_module/command/stage_spec.rb +259 -0
  121. data/spec/lib/admin_module/command/task_spec.rb +207 -0
  122. data/spec/lib/admin_module/dc_spec.rb +192 -0
  123. data/spec/lib/admin_module/guideline_spec.rb +177 -0
  124. data/spec/lib/admin_module/locks_spec.rb +188 -0
  125. data/spec/lib/admin_module/rules_spec.rb +110 -0
  126. data/spec/lib/admin_module/rulesets_spec.rb +85 -0
  127. data/spec/lib/admin_module/snapshot_spec.rb +192 -0
  128. data/spec/lib/admin_module/stages_spec.rb +179 -0
  129. data/spec/lib/admin_module/tasks_spec.rb +196 -0
  130. data/spec/spec_helper.rb +54 -0
  131. data/spec/support/asserts.rb +13 -0
  132. data/spec/support/data_clearing.rb +28 -0
  133. data/spec/support/dirs.rb +54 -0
  134. data/spec/support/helpers.rb +83 -0
  135. data/spec/support/lock.rb +23 -0
  136. data/spec/support/mocks.rb +213 -0
  137. data/spec/support/snapshot.rb +28 -0
  138. data/spec/support/stage.rb +22 -0
  139. data/spec/support/stage_factory.rb +138 -0
  140. data/spec/support/task.rb +23 -0
  141. metadata +381 -0
@@ -0,0 +1,202 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+ describe 'command dc' do
5
+
6
+ let(:login_page) do
7
+ obj = double('login_page')
8
+ allow(obj)
9
+ .to receive(:logout)
10
+ obj
11
+ end
12
+
13
+ let(:page_factory) do
14
+ obj = MockPageFactory.new
15
+ obj.login_page = login_page
16
+ obj.dc_definitions_page = double('dc_page')
17
+ obj
18
+ end
19
+
20
+ let(:dc_mock) { mock_dc(page_factory) }
21
+
22
+ let(:client) do
23
+ obj = AdminModule::Client.new
24
+ obj.page_factory = page_factory
25
+ obj
26
+ end
27
+
28
+ let(:dc_list) { ['dc1', 'dc2', 'dc 33'] }
29
+
30
+ before do
31
+ AdminModule.configure do |config|
32
+ config.credentials[:dev] = ['user', 'pass']
33
+ end
34
+
35
+ allow(client)
36
+ .to receive(:dcs)
37
+ .and_return(dc_mock)
38
+ end
39
+
40
+ context "list" do
41
+ it "displays list of dataclearing configs" do
42
+ expect(client)
43
+ .to receive(:user=)
44
+ .with('user')
45
+
46
+ expect(client)
47
+ .to receive(:password=)
48
+ .with('pass')
49
+
50
+ expect(client)
51
+ .to receive(:dcs)
52
+
53
+ expect(dc_mock)
54
+ .to receive(:list)
55
+ .and_return(dc_list)
56
+
57
+ expect(client)
58
+ .to receive(:logout)
59
+
60
+ output = capture_output do
61
+ run_with_args %W(dc list -e dev), client
62
+ end
63
+
64
+ expect( output ).to include dc_list[0]
65
+ expect( output ).to include dc_list[1]
66
+ expect( output ).to include dc_list[2]
67
+ end
68
+ end
69
+
70
+ context "rename" do
71
+ it "renames a dataclearing configuration" do
72
+ expect(client)
73
+ .to receive(:user=)
74
+ .with('user')
75
+
76
+ expect(client)
77
+ .to receive(:password=)
78
+ .with('pass')
79
+
80
+ expect(client)
81
+ .to receive(:dcs)
82
+
83
+ expect(dc_mock)
84
+ .to receive(:rename)
85
+ .with('TestDC1', 'TestDC2')
86
+
87
+ expect(client)
88
+ .to receive(:logout)
89
+
90
+ run_with_args %w(dc rename -e dev TestDC1 TestDC2), client
91
+ end
92
+
93
+ it "displays a helpful message if rename fails" do
94
+ msg = 'rename failed'
95
+
96
+ expect(dc_mock)
97
+ .to receive(:rename)
98
+ .and_raise(ArgumentError, msg)
99
+
100
+ output = capture_output do
101
+ run_with_args %w(dc rename -e dev TestDC1 TestDC2), client
102
+ end
103
+
104
+ expect( output ).to include msg
105
+ end
106
+ end
107
+
108
+ context "import" do
109
+ it "imports a dc yaml file" do
110
+ expect(client)
111
+ .to receive(:user=)
112
+ .with('user')
113
+
114
+ expect(client)
115
+ .to receive(:password=)
116
+ .with('pass')
117
+
118
+ expect(client)
119
+ .to receive(:dcs)
120
+
121
+ expect(dc_mock)
122
+ .to receive(:import)
123
+ .with('path/to/import/file')
124
+
125
+ expect(client)
126
+ .to receive(:logout)
127
+
128
+ run_with_args %w(dc import -e dev path/to/import/file), client
129
+ end
130
+ end
131
+
132
+ context "export" do
133
+ it "exports a dc yaml file" do
134
+ expect(client)
135
+ .to receive(:user=)
136
+ .with('user')
137
+
138
+ expect(client)
139
+ .to receive(:password=)
140
+ .with('pass')
141
+
142
+ expect(client)
143
+ .to receive(:dcs)
144
+
145
+ expect(dc_mock)
146
+ .to receive(:export)
147
+ .with('path/to/export/file')
148
+
149
+ expect(client)
150
+ .to receive(:logout)
151
+
152
+ run_with_args %w(dc export -e dev path/to/export/file), client
153
+ end
154
+ end
155
+
156
+ context "read" do
157
+ it "dumps a dc's configuration to the console" do
158
+ expect(client)
159
+ .to receive(:user=)
160
+ .with('user')
161
+
162
+ expect(client)
163
+ .to receive(:password=)
164
+ .with('pass')
165
+
166
+ expect(client)
167
+ .to receive(:dcs)
168
+
169
+ expect(dc_mock)
170
+ .to receive(:read)
171
+ .with('TestDC1')
172
+ .and_return(create_dc_hash('TestDC1'))
173
+
174
+ expect(client)
175
+ .to receive(:logout)
176
+
177
+ output = capture_output do
178
+ run_with_args %w(dc read -e dev TestDC1), client
179
+ end
180
+
181
+ normalized_yaml = create_dc_hash('TestDC1')
182
+ normalized_yaml = { 'TestDC1' => normalized_yaml }.to_yaml
183
+
184
+ expect( output ).to include normalized_yaml
185
+ end
186
+ end
187
+
188
+ it "returns help info" do
189
+ output = capture_output do
190
+ run_with_args %w(help dc)
191
+ end
192
+
193
+ expect( output ).to include "dc help [COMMAND]"
194
+ expect( output ).to include "dc list"
195
+ expect( output ).to include "dc import <filepath>"
196
+ expect( output ).to include "dc export <filepath>"
197
+ expect( output ).to include "dc rename <srcname> <destname>"
198
+ expect( output ).to include "dc read <name>"
199
+ expect( output ).to include "e, [--environment=dev]"
200
+ end
201
+ end
202
+
@@ -0,0 +1,139 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+ describe 'gdl command' do
5
+
6
+ let(:page_factory) do
7
+ obj = MockPageFactory.new
8
+ obj.login_page = double('login_page')
9
+ obj.guidelines_page = double('guidelines_page')
10
+ obj
11
+ end
12
+
13
+ let(:guideline_mock) { mock_guideline(page_factory) }
14
+
15
+ let(:client) { AdminModule::Client.new }
16
+
17
+ before do
18
+ AdminModule.configure do |config|
19
+ config.credentials[:dev] = ['user', 'pass']
20
+ config.xmlmaps['test1'] = 'Z-TEMP'
21
+ config.xmlmaps['test2'] = 'Z-TEMP2'
22
+ end
23
+
24
+ allow(client)
25
+ .to receive(:guideline)
26
+ .and_return(guideline_mock)
27
+ end
28
+
29
+ context "gdl deploy" do
30
+ it "deploys multiple guidelines" do
31
+ expect(client)
32
+ .to receive(:user=)
33
+ .with('user')
34
+
35
+ expect(client)
36
+ .to receive(:password=)
37
+ .with('pass')
38
+
39
+ expect(client)
40
+ .to receive(:guideline)
41
+
42
+ expect(guideline_mock)
43
+ .to receive(:deploy)
44
+
45
+ expect(client)
46
+ .to receive(:logout)
47
+
48
+ build_dir = data_dir('build')
49
+ run_with_args %W(gdl deploy -e dev #{build_dir}), client
50
+ end
51
+
52
+ it "deploys a single guideline" do
53
+ build_dir = data_dir('build')
54
+ file_to_upload = Pathname(build_dir) + 'test1.xml'
55
+
56
+ expect(client)
57
+ .to receive(:user=)
58
+ .with('user')
59
+
60
+ expect(client)
61
+ .to receive(:password=)
62
+ .with('pass')
63
+
64
+ expect(client)
65
+ .to receive(:guideline)
66
+
67
+ expect(guideline_mock)
68
+ .to receive(:deploy_file)
69
+ .with(file_to_upload, anything)
70
+
71
+ expect(client)
72
+ .to receive(:logout)
73
+
74
+ run_with_args %W(gdl deploy -f test1.xml -e dev #{build_dir}), client
75
+ end
76
+ end
77
+
78
+ context "gdl version" do
79
+ it "versions multiple guidelines" do
80
+ expect(client)
81
+ .to receive(:user=)
82
+ .with('user')
83
+
84
+ expect(client)
85
+ .to receive(:password=)
86
+ .with('pass')
87
+
88
+ expect(client)
89
+ .to receive(:guideline)
90
+
91
+ expect(guideline_mock)
92
+ .to receive(:version)
93
+ .with(['Z-TEMP', 'Z-TEMP2'], anything)
94
+
95
+ expect(client)
96
+ .to receive(:logout)
97
+
98
+ build_dir = data_dir('build')
99
+ run_with_args %w(gdl version -e dev), client
100
+ end
101
+
102
+ context "with --target option" do
103
+ it "versions specified guideline" do
104
+ expect(client)
105
+ .to receive(:user=)
106
+ .with('user')
107
+
108
+ expect(client)
109
+ .to receive(:password=)
110
+ .with('pass')
111
+
112
+ expect(client)
113
+ .to receive(:guideline)
114
+
115
+ expect(guideline_mock)
116
+ .to receive(:version)
117
+ .with(['TestGdl'], anything)
118
+
119
+ expect(client)
120
+ .to receive(:logout)
121
+
122
+ build_dir = data_dir('build')
123
+ run_with_args %w(gdl version -e dev --target TestGdl), client
124
+ end
125
+ end
126
+ end
127
+
128
+ it "returns help info" do
129
+ output = capture_output do
130
+ run_with_args %w(help gdl)
131
+ end
132
+
133
+ expect( output ).to include "gdl help [COMMAND]"
134
+ expect( output ).to include "gdl deploy <srcdir> <comments>"
135
+ expect( output ).to include "gdl version <comments>"
136
+ expect( output ).to include "e, [--environment=dev]"
137
+ end
138
+ end
139
+
@@ -0,0 +1,207 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+
5
+ describe 'command lock' do
6
+
7
+ let(:login_page) do
8
+ obj = double('login_page')
9
+ allow(obj)
10
+ .to receive(:logout)
11
+ obj
12
+ end
13
+
14
+ let(:page_factory) do
15
+ obj = MockPageFactory.new
16
+ obj.login_page = login_page
17
+ obj.guidelines_page = double('guidelines_page')
18
+ obj.locks_page = double('locks_page')
19
+ obj
20
+ end
21
+
22
+ let(:locks_mock) { mock_locks(page_factory) }
23
+
24
+ let(:client) do
25
+ obj = AdminModule::Client.new
26
+ obj.page_factory = page_factory
27
+ obj
28
+ end
29
+
30
+ let(:lock_list) { ['Lock1', 'Lock2', 'Lock 33'] }
31
+
32
+ before do
33
+ AdminModule.configure do |config|
34
+ config.credentials[:dev] = ['user', 'pass']
35
+ end
36
+
37
+ allow(client)
38
+ .to receive(:locks)
39
+ .and_return(locks_mock)
40
+ end
41
+
42
+ context "list" do
43
+ it "displays list of locks" do
44
+ expect(client)
45
+ .to receive(:user=)
46
+ .with('user')
47
+
48
+ expect(client)
49
+ .to receive(:password=)
50
+ .with('pass')
51
+
52
+ expect(client)
53
+ .to receive(:locks)
54
+
55
+ expect(locks_mock)
56
+ .to receive(:list)
57
+ .and_return(lock_list)
58
+
59
+ expect(client)
60
+ .to receive(:logout)
61
+
62
+ build_dir = data_dir('build')
63
+
64
+ output = capture_output do
65
+ run_with_args %W(lock list -e dev), client
66
+ end
67
+
68
+ expect( output ).to include lock_list[0]
69
+ expect( output ).to include lock_list[1]
70
+ expect( output ).to include lock_list[2]
71
+ end
72
+ end
73
+
74
+ context "rename" do
75
+ it "renames a lock" do
76
+ expect(client)
77
+ .to receive(:user=)
78
+ .with('user')
79
+
80
+ expect(client)
81
+ .to receive(:password=)
82
+ .with('pass')
83
+
84
+ expect(client)
85
+ .to receive(:locks)
86
+
87
+ expect(locks_mock)
88
+ .to receive(:rename)
89
+ .with('TestLock1', 'TestLock2')
90
+
91
+ expect(client)
92
+ .to receive(:logout)
93
+
94
+ build_dir = data_dir('build')
95
+ run_with_args %w(lock rename -e dev TestLock1 TestLock2), client
96
+ end
97
+
98
+ it "displays a helpful message if rename fails" do
99
+ msg = 'rename failed'
100
+
101
+ expect(locks_mock)
102
+ .to receive(:rename)
103
+ .and_raise(ArgumentError, msg)
104
+
105
+ output = capture_output do
106
+ run_with_args %w(lock rename -e dev TestLock1 TestLock2), client
107
+ end
108
+
109
+ expect( output ).to include msg
110
+ end
111
+ end
112
+
113
+ context "import" do
114
+ it "imports a locks yaml file" do
115
+ expect(client)
116
+ .to receive(:user=)
117
+ .with('user')
118
+
119
+ expect(client)
120
+ .to receive(:password=)
121
+ .with('pass')
122
+
123
+ expect(client)
124
+ .to receive(:locks)
125
+
126
+ expect(locks_mock)
127
+ .to receive(:import)
128
+ .with('path/to/import/file')
129
+
130
+ expect(client)
131
+ .to receive(:logout)
132
+
133
+ run_with_args %w(lock import -e dev path/to/import/file), client
134
+ end
135
+ end
136
+
137
+ context "export" do
138
+ it "exports a locks yaml file" do
139
+ expect(client)
140
+ .to receive(:user=)
141
+ .with('user')
142
+
143
+ expect(client)
144
+ .to receive(:password=)
145
+ .with('pass')
146
+
147
+ expect(client)
148
+ .to receive(:locks)
149
+
150
+ expect(locks_mock)
151
+ .to receive(:export)
152
+ .with('path/to/export/file')
153
+
154
+ expect(client)
155
+ .to receive(:logout)
156
+
157
+ run_with_args %w(lock export -e dev path/to/export/file), client
158
+ end
159
+ end
160
+
161
+ context "read" do
162
+ it "dumps a lock's configuration to the console" do
163
+ expect(client)
164
+ .to receive(:user=)
165
+ .with('user')
166
+
167
+ expect(client)
168
+ .to receive(:password=)
169
+ .with('pass')
170
+
171
+ expect(client)
172
+ .to receive(:locks)
173
+
174
+ expect(locks_mock)
175
+ .to receive(:read)
176
+ .with('TestLock1')
177
+ .and_return(create_lock_hash('TestLock1'))
178
+
179
+ expect(client)
180
+ .to receive(:logout)
181
+
182
+ output = capture_output do
183
+ run_with_args %w(lock read -e dev TestLock1), client
184
+ end
185
+
186
+ normalized_yaml = create_lock_hash('TestLock1')
187
+ normalized_yaml = { 'TestLock1' => normalized_yaml }.to_yaml
188
+
189
+ expect( output ).to include normalized_yaml
190
+ end
191
+ end
192
+
193
+ it "returns help info" do
194
+ output = capture_output do
195
+ run_with_args %w(help lock)
196
+ end
197
+
198
+ expect( output ).to include "lock help [COMMAND]"
199
+ expect( output ).to include "lock list"
200
+ expect( output ).to include "lock import <filepath>"
201
+ expect( output ).to include "lock export <filepath>"
202
+ expect( output ).to include "lock rename <srcname> <destname>"
203
+ expect( output ).to include "lock read <name>"
204
+ expect( output ).to include "e, [--environment=dev]"
205
+ end
206
+ end
207
+