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,58 @@
1
+ require 'spec_helper'
2
+ #require_relative '../../lib/admin_module/pages/guidelines_page'
3
+ #require_relative '../../lib/admin_module/pages/guideline_version_page'
4
+
5
+ describe AdminModule::CLI do
6
+
7
+ let(:cli) do
8
+ AdminModule.configure do |config|
9
+ config.credentials = { :dev => ['admin', 'Password1*'] }
10
+ end
11
+ AdminModule::CLI.new
12
+ end
13
+
14
+ after(:each) do
15
+ cli.quit
16
+ end
17
+
18
+ let(:test_message) { 'JM: ' + timestamp }
19
+
20
+ let(:timestamp) do
21
+ now = DateTime.now
22
+ m = "%02d" % now.month
23
+ d = "%02d" % now.day
24
+ y = "%04d" % now.year
25
+ hour = "%02d" % now.hour
26
+ min = "%02d" % now.minute
27
+ sec = "%02d" % now.sec
28
+
29
+ time_stamp = "#{y}#{m}#{d}T#{hour}#{min}#{sec}"
30
+ end
31
+
32
+ let(:test_gdl) { 'WF-FwdApp-Pre' }
33
+ let(:base_url) { cli.base_url }
34
+ let(:browser) { cli.browser }
35
+
36
+ describe "#version_all" do
37
+
38
+ context "with version message" do
39
+
40
+ it "guidelines are versioned with supplied message" do
41
+ cli.version_all(test_gdl, test_message)
42
+
43
+ # To verify, we open a guideline page,
44
+ # goto the versions tab,
45
+ # and ask the GuidelineVersionPage object to verify the version message for us.
46
+ gdl_page_url = AdminModule::Pages::GuidelinesPage.new(browser, base_url).
47
+ open_guideline(test_gdl)
48
+
49
+ AdminModule::Pages::GuidelinePage.new(browser, gdl_page_url).versions
50
+ version_page = AdminModule::Pages::GuidelineVersionPage.new(browser, gdl_page_url)
51
+
52
+ version_page.verify_latest_version test_message
53
+
54
+ expect{ version_page.raise_if_errors }.to_not raise_error
55
+ end
56
+ end # context
57
+ end # describe "#version_all"
58
+ end # describe AdminModule
@@ -0,0 +1,153 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ ##
6
+ # Quit the browser after each test.
7
+ after(:each) do
8
+ quit_cli
9
+ end
10
+
11
+
12
+ describe "#create_lock" do
13
+ context "lock data missing name parameter" do
14
+
15
+ let(:lock_data_missing_name) do
16
+ { description: '',
17
+ is_program_lock: false,
18
+ parameters: [ 'Monthly Gross Income' ],
19
+ dts: []
20
+ }
21
+ end
22
+
23
+
24
+ it "will raise exception" do
25
+ expect { cli.create_lock(lock_data_missing_name) }.to raise_exception(ArgumentError)
26
+ end
27
+ end # context
28
+
29
+
30
+ context "lock data missing both dsm and dts parameters" do
31
+
32
+ let(:lock_data_missing_params_and_dts) do
33
+ { name: 'MissingDataLock',
34
+ description: '',
35
+ is_program_lock: false,
36
+ }
37
+ end
38
+
39
+
40
+ it "will raise exception" do
41
+ expect { cli.create_lock(lock_data_missing_params_and_dts) }.to raise_exception(ArgumentError)
42
+ end
43
+ end # context
44
+
45
+ context "lock data contains empty dsms and empty dts parameters" do
46
+
47
+ let(:lock_data_empty_params_and_dts) do
48
+ { name: 'MissingDataLock',
49
+ description: '',
50
+ is_program_lock: false,
51
+ parameters: [],
52
+ dts: []
53
+ }
54
+ end
55
+
56
+
57
+ it "will raise exception" do
58
+ expect { cli.create_lock(lock_data_empty_params_and_dts) }.to raise_exception(ArgumentError)
59
+ end
60
+ end # context
61
+
62
+
63
+ context "lock name already exists" do
64
+
65
+ let(:income_lock) do
66
+ { name: 'IncomeLock',
67
+ description: '',
68
+ is_program_lock: false,
69
+ parameters: [ 'Monthly Gross Income' ],
70
+ dts: []
71
+ }
72
+ end
73
+
74
+
75
+ it "will raise exception" do
76
+ expect { cli.create_lock(income_lock) }.to raise_exception(ArgumentError)
77
+ end
78
+ end # context
79
+
80
+ # Commented out because this actually creates a lock and locks can't
81
+ # be deleted:
82
+
83
+ #context "lock name does not exist" do
84
+
85
+ # let(:test_lock) do
86
+ # { name: 'TestLock',
87
+ # description: 'This is a test',
88
+ # is_program_lock: false,
89
+ # parameters: [ 'Monthly Gross Income' ],
90
+ # dts: [ '2nd Investor' ]
91
+ # }
92
+ # end
93
+
94
+ # it "lock is created" do
95
+ # cli.create_lock(test_lock)
96
+ # expect(cli.get_lock('TestLock')).to eq test_lock
97
+ # end
98
+ #end # context
99
+ end # describe "#create_lock"
100
+
101
+
102
+ describe "#import_locks" do
103
+ context "with filename" do
104
+
105
+ let(:src_data) do
106
+ { "TestLock" =>
107
+ { name: 'TestLock',
108
+ description: 'This is a test lock',
109
+ is_program_lock: false,
110
+ parameters: [ 'Rank' ],
111
+ dts: []
112
+ }
113
+ }
114
+ end
115
+
116
+ let(:src_file_path) { 'tmp/spec/admin_module/locks.yml' }
117
+ let(:src_file) { write_yaml_data_file(src_file_path, src_data); src_file_path }
118
+
119
+ let(:bad_src_data) do
120
+ { "TestLock" =>
121
+ { name: 'TestLock',
122
+ description: 'This is a test lock',
123
+ is_program_lock: false,
124
+ parameters: [ 'I do not exist' ],
125
+ dts: []
126
+ }
127
+ }
128
+ end
129
+
130
+ let(:bad_src_file_path) { 'tmp/spec/admin_module/locks_bad.yml' }
131
+ let(:bad_src_file) { write_yaml_data_file(bad_src_file_path, bad_src_data); bad_src_file_path }
132
+
133
+
134
+ it "configures locks sourced from a file" do
135
+ cli.import_locks(src_file)
136
+ expect(cli.get_lock('TestLock')).to eq src_data["TestLock"]
137
+ end
138
+
139
+ context "with non-existing DSMs" do
140
+ it "raises an exception" do
141
+ expect { cli.import_locks(bad_src_file) }.to raise_exception
142
+ end
143
+ end
144
+ end # context
145
+
146
+ context "with invalid filename" do
147
+ it "raises an IOError" do
148
+ expect { cli.import_locks('does_not_exist.yml') }.to raise_exception(IOError)
149
+ end
150
+ end
151
+
152
+ end # describe "#import_locks"
153
+ end # describe AdminModule
@@ -0,0 +1,173 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ let(:cli) do
6
+ AdminModule.configure do |config|
7
+ config.credentials = { :dev => ['admin', 'Password1*'] }
8
+ end
9
+ AdminModule::CLI.new
10
+ end
11
+
12
+ after(:each) do
13
+ cli.quit
14
+ end
15
+
16
+ let(:test_stage) do
17
+ { name: 'Test Stage',
18
+ transition_to: [
19
+ '001 New File',
20
+ '022 Docs Verification',
21
+ '060 Reconsideration Exceptions/Overrides',
22
+ '096 Withdrawn',
23
+ '120 Second Review-Pending Docs' ],
24
+ events: {
25
+ "ForwardApplication PreEvent" =>"",
26
+ "ForwardApplication PostEvent" =>"WF-ForwardApp-Post",
27
+ "OrderCredit PreEvent" =>"",
28
+ "OrderCredit PostEvent" =>"",
29
+ "OrderAvm PreEvent" =>"",
30
+ "OrderAvm PostEvent" =>"",
31
+ "RerunProduct PreEvent" =>"",
32
+ "RerunProduct PostEvent" =>"",
33
+ "BatchUpload PreEvent" =>"",
34
+ "BatchUpload PostEvent" =>"",
35
+ "ProductSelection PreEvent" =>"",
36
+ "ProductSelection PostEvent" =>"WF-ProdSel-Post",
37
+ "Decision Loan Pre Event" =>"",
38
+ "Decision Loan Post Event" =>"",
39
+ "ReDecision Loan Pre Event" =>"",
40
+ "ReDecision Loan Post Event" =>"",
41
+ "Lock Pre Event" =>"",
42
+ "Lock Post Event" =>"",
43
+ "Save Task Pre Event" =>"",
44
+ "Save Task Post Event" =>"",
45
+ "Export HSSN Pre Event" =>"",
46
+ "Data Clearing Pre Event" =>"",
47
+ "Data Clearing Post Event" =>""
48
+ }
49
+ }
50
+ end
51
+
52
+ let(:create_test_stage) do
53
+ begin
54
+ cli.create_stage(test_stage)
55
+ rescue
56
+ end
57
+ end
58
+
59
+ let(:delete_test_stage) do
60
+ begin
61
+ cli.delete_stage(test_stage)
62
+ rescue
63
+ end
64
+ end
65
+
66
+ let(:test_stage_2) do
67
+ { name: 'Test Stage Two',
68
+ transition_to: [
69
+ '001 New File',
70
+ '005 Application and Eligibility' ],
71
+ events: {
72
+ "ForwardApplication PreEvent" =>"",
73
+ "ForwardApplication PostEvent" =>"WF-ForwardApp-Post",
74
+ "OrderCredit PreEvent" =>"",
75
+ "OrderCredit PostEvent" =>"",
76
+ "OrderAvm PreEvent" =>"",
77
+ "OrderAvm PostEvent" =>"",
78
+ "RerunProduct PreEvent" =>"",
79
+ "RerunProduct PostEvent" =>"",
80
+ "BatchUpload PreEvent" =>"",
81
+ "BatchUpload PostEvent" =>"",
82
+ "ProductSelection PreEvent" =>"",
83
+ "ProductSelection PostEvent" =>"WF-ProdSel-Post",
84
+ "Decision Loan Pre Event" =>"",
85
+ "Decision Loan Post Event" =>"",
86
+ "ReDecision Loan Pre Event" =>"",
87
+ "ReDecision Loan Post Event" =>"",
88
+ "Lock Pre Event" =>"",
89
+ "Lock Post Event" =>"",
90
+ "Save Task Pre Event" =>"",
91
+ "Save Task Post Event" =>"",
92
+ "Export HSSN Pre Event" =>"",
93
+ "Data Clearing Pre Event" =>"",
94
+ "Data Clearing Post Event" =>""
95
+ }
96
+ }
97
+ end
98
+
99
+ let(:delete_test_stage_2) do
100
+ begin
101
+ cli.delete_stage(test_stage_2)
102
+ rescue
103
+ end
104
+ end
105
+
106
+ let(:test_stage_missing_stages) do
107
+ { name: 'Test Stage With Missing Stages',
108
+ transition_to: [
109
+ 'Z Test Stage 1',
110
+ 'Z Test Stage 2',
111
+ 'Z Test Stage 3' ],
112
+ events: {
113
+ 'ForwardApplication PreEvent' => "",
114
+ 'ForwardApplication PostEvent' => "WF-ForwardApp-Post"
115
+ }
116
+ }
117
+ end
118
+
119
+ let(:create_test_stage_missing_stages) do
120
+ begin
121
+ cli.create_stage(test_stage_missing_stages)
122
+ rescue
123
+ end
124
+ end
125
+
126
+ let(:delete_test_stage_missing_stages) do
127
+ begin
128
+ cli.delete_stage(test_stage_missing_stages)
129
+ rescue
130
+ end
131
+ end
132
+
133
+
134
+
135
+ describe "#import_stages" do
136
+ context "with filename" do
137
+
138
+ let(:src_file_path) { 'tmp/spec/admin_module/stages.yml' }
139
+ let(:src_file) { write_yaml_data_file(src_file_path, {test_stage[:name] => test_stage}); src_file_path }
140
+
141
+ let(:bad_src_file_path) { 'tmp/spec/admin_module/stages_bad.yml' }
142
+ let(:bad_src_file) { write_yaml_data_file(bad_src_file_path, {test_stage_missing_stages[:name] => test_stage_missing_stages}); bad_src_file_path }
143
+
144
+
145
+ it "configures stages sourced from a file" do
146
+ delete_test_stage
147
+
148
+ cli.import_stages(src_file)
149
+ expect(cli.get_stage(test_stage[:name])).to eq test_stage
150
+
151
+ delete_test_stage
152
+ end
153
+
154
+ context "with non-existing stage names" do
155
+ it "raises an exception" do
156
+ delete_test_stage_missing_stages
157
+
158
+ expect { cli.import_stages(bad_src_file) }.to raise_exception
159
+
160
+ delete_test_stage_missing_stages
161
+ delete_test_stage
162
+ end
163
+ end
164
+ end # context
165
+
166
+ context "with invalid filename" do
167
+ it "raises an IOError" do
168
+ expect { cli.import_stages('does_not_exist.yml') }.to raise_exception(IOError)
169
+ end
170
+ end
171
+
172
+ end # describe "#import_stages"
173
+ end # describe AdminModule
@@ -0,0 +1,128 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ let(:cli) do
6
+ AdminModule.configure do |config|
7
+ config.credentials = { :dev => ['admin', 'Password1*'] }
8
+ end
9
+ AdminModule::CLI.new
10
+ end
11
+
12
+ after(:each) do
13
+ cli.quit
14
+ end
15
+
16
+
17
+ describe "#modify_lock" do
18
+
19
+ before(:each) do
20
+ tstlock = { name: 'TestLock',
21
+ description: '',
22
+ is_program_lock: false,
23
+ parameters: [ 'Rank' ],
24
+ dts: []
25
+ }
26
+
27
+ begin
28
+ cli.modify_lock(tstlock, 'TestLock')
29
+ success = true
30
+ rescue
31
+ unless success == true
32
+ cli.modify_lock(tstlock, 'TestAnotherLock')
33
+ end
34
+ end
35
+ end
36
+
37
+
38
+ context "lock data missing name parameter" do
39
+
40
+ let(:lock_data_missing_name) do
41
+ { description: '',
42
+ is_program_lock: false,
43
+ parameters: [ 'Monthly Gross Income' ],
44
+ dts: []
45
+ }
46
+ end
47
+
48
+
49
+ it "will raise exception" do
50
+ expect { cli.modify_lock(lock_data_missing_name) }.to raise_exception(ArgumentError)
51
+ end
52
+
53
+
54
+ context "lock name specified" do
55
+
56
+ let(:lock_data_missing_name) do
57
+ { description: '',
58
+ is_program_lock: false,
59
+ parameters: [ 'Monthly Gross Income' ],
60
+ dts: []
61
+ }
62
+ end
63
+
64
+ let(:retrieved_lock) do
65
+ { name: 'TestLock',
66
+ description: '',
67
+ is_program_lock: false,
68
+ parameters: [ 'Monthly Gross Income' ],
69
+ dts: []
70
+ }
71
+ end
72
+
73
+
74
+ it "lock is modified" do
75
+ cli.modify_lock(lock_data_missing_name, 'TestLock')
76
+ expect(cli.get_lock('TestLock')).to eq retrieved_lock
77
+ end
78
+ end # context
79
+ end # context
80
+
81
+
82
+ context "lock name exists" do
83
+
84
+ let(:test_lock) do
85
+ { name: 'TestLock',
86
+ description: '',
87
+ is_program_lock: false,
88
+ parameters: [],
89
+ dts: [ '2nd Lien Payoff' ]
90
+ }
91
+ end
92
+
93
+ it "lock is modified" do
94
+ cli.modify_lock(test_lock)
95
+ expect(cli.get_lock('TestLock')).to eq test_lock
96
+ end
97
+
98
+
99
+ context "lock name is changed to data's name" do
100
+
101
+ let(:another_lock) do
102
+ { name: 'TestAnotherLock',
103
+ description: '',
104
+ is_program_lock: false,
105
+ parameters: [],
106
+ dts: [ '2nd Lien Payoff' ]
107
+ }
108
+ end
109
+
110
+ let(:test_lock) do
111
+ { name: 'TestLock',
112
+ description: '',
113
+ is_program_lock: false,
114
+ parameters: [],
115
+ dts: [ '2nd Lien Payoff' ]
116
+ }
117
+ end
118
+
119
+
120
+ it "lock is renamed" do
121
+ cli.modify_lock(another_lock, 'TestLock')
122
+ expect(cli.get_lock('TestAnotherLock')).to eq another_lock
123
+ end
124
+ end # context
125
+ end # context
126
+
127
+ end # describe "#modify_lock"
128
+ end # describe AdminModule