admin_module 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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,196 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).ascend{|d| h=d+'spec_helper.rb'; break h if h.file?}
3
+
4
+ # See support/task.rb
5
+ #def create_task_hash name
6
+ # { name: name,
7
+ # schedule: "To-Do",
8
+ # priority: "Normal",
9
+ # due_days: 2,
10
+ # due_hours: "0",
11
+ # due_minutes: "00",
12
+ # followup: "",
13
+ # assigned_to: "Negotiator",
14
+ # fees_assigned: "0.00",
15
+ # task_description: "#{name} task description",
16
+ # letter_agreement: "",
17
+ # }
18
+ #end
19
+
20
+ describe AdminModule::Tasks do
21
+
22
+ context "api" do
23
+
24
+ let(:task_list) { ['TstTask1', 'TstTask2'] }
25
+
26
+ let(:tasks_page_stub) do
27
+ obj = double('tasks_page')
28
+ allow(obj).to receive(:get_tasks).and_return(task_list)
29
+ allow(obj).to receive(:add).and_return(obj)
30
+ allow(obj).to receive(:modify).and_return(obj)
31
+ allow(obj).to receive(:set_name).and_return(obj)
32
+ allow(obj).to receive(:set_task_data).and_return(obj)
33
+ allow(obj).to receive(:get_task_data).and_return(create_task_hash('TstTask1'))
34
+ allow(obj).to receive(:save).and_return(obj)
35
+ #allow(obj).to receive(:add_version).and_return(obj)
36
+ obj
37
+ end
38
+
39
+ let(:page_factory) do
40
+ obj = MockPageFactory.new
41
+ obj.login_page = double('login_page')
42
+ obj.tasks_page = tasks_page_stub
43
+ obj
44
+ end
45
+
46
+ context "#list" do
47
+ it "returns list of tasks" do
48
+ expect(page_factory.tasks_page)
49
+ .to receive(:get_tasks)
50
+
51
+ tasks = AdminModule::Tasks.new(page_factory)
52
+ tasks = tasks.list()
53
+
54
+ expect( tasks ).to include 'TstTask1'
55
+ expect( tasks ).to include 'TstTask2'
56
+ end
57
+ end
58
+
59
+ context "#rename" do
60
+ context "source name exists and destination name does not exist" do
61
+ it "renames the task" do
62
+ src = 'TstTask1'
63
+ dest = 'RnTstTask1'
64
+
65
+ expect(page_factory.tasks_page)
66
+ .to receive(:modify)
67
+ .with(src)
68
+
69
+ expect(page_factory.tasks_page)
70
+ .to receive(:set_name)
71
+ .with(dest)
72
+
73
+ expect(page_factory.tasks_page)
74
+ .to receive(:save)
75
+
76
+ tasks = AdminModule::Tasks.new(page_factory)
77
+ tasks.rename(src, dest)
78
+ end
79
+ end
80
+
81
+ context "source name does not exist" do
82
+ it "raises exception" do
83
+ src = 'NotATask1'
84
+ dest = 'TstTask2'
85
+
86
+ tasks = AdminModule::Tasks.new(page_factory)
87
+ expect { tasks.rename(src, dest) }.to raise_exception /named 'NotATask1' does not exist/
88
+ end
89
+ end
90
+
91
+ context "destination name already exists" do
92
+ it "raises exception" do
93
+ src = 'TstTask1'
94
+ dest = 'TstTask2'
95
+
96
+ tasks = AdminModule::Tasks.new(page_factory)
97
+ expect { tasks.rename(src, dest) }.to raise_exception /named 'TstTask2' already exists/
98
+ end
99
+ end
100
+ end
101
+
102
+ context "#read" do
103
+ context "task exists" do
104
+ it "reads the task" do
105
+ src = 'TstTask1'
106
+
107
+ expect(page_factory.tasks_page)
108
+ .to receive(:modify)
109
+ .with(src)
110
+
111
+ expect(page_factory.tasks_page)
112
+ .to receive(:get_task_data)
113
+ .and_return(create_task_hash('TstTask1'))
114
+
115
+ tasks = AdminModule::Tasks.new(page_factory)
116
+ tasks.read(src)
117
+ end
118
+ end
119
+
120
+ context "task does not exist" do
121
+ it "raises exception" do
122
+ src = 'NotATask1'
123
+
124
+ tasks = AdminModule::Tasks.new(page_factory)
125
+ expect { tasks.read(src) }.to raise_exception /named 'NotATask1' does not exist/
126
+ end
127
+ end
128
+ end
129
+
130
+ context "#export" do
131
+ context "file directory exists" do
132
+ it "exports the task definitions" do
133
+ dest_file = spec_tmp_dir('tasks') + 'export.yml'
134
+ src = 'TstTask1'
135
+
136
+ expect(page_factory.tasks_page)
137
+ .to receive(:modify)
138
+ .with(src)
139
+
140
+ expect(page_factory.tasks_page)
141
+ .to receive(:get_task_data)
142
+ .and_return(create_task_hash('TstTask1'))
143
+
144
+ expect(page_factory.tasks_page)
145
+ .to receive(:get_task_data)
146
+ .and_return(create_task_hash('TstTask2'))
147
+
148
+ tasks = AdminModule::Tasks.new(page_factory)
149
+ tasks.export(dest_file)
150
+
151
+ expect(File.exist?(dest_file)).to eq true
152
+ end
153
+ end
154
+
155
+ context "file directory does not exist" do
156
+ it "raises exception" do
157
+ dest_path = spec_tmp_dir('tasks') + 'not/a/real/dir/export.yml'
158
+
159
+ tasks = AdminModule::Tasks.new(page_factory)
160
+ expect { tasks.export(dest_path) }.to raise_exception /No such directory - #{dest_path}/
161
+ end
162
+ end
163
+ end
164
+
165
+ context "#import" do
166
+ context "file exists" do
167
+ it "imports the task definitions" do
168
+ src_file = spec_data_dir + 'import_tasks.yml'
169
+ src = 'TstTask1'
170
+
171
+ #allow(File).to receive(:exists?).and_return(true)
172
+
173
+ expect(page_factory.tasks_page)
174
+ .to receive(:modify)
175
+ .with(src)
176
+
177
+ expect(page_factory.tasks_page)
178
+ .to receive(:set_task_data)
179
+
180
+ tasks = AdminModule::Tasks.new(page_factory)
181
+ tasks.import(src_file)
182
+ end
183
+ end
184
+
185
+ context "file does not exist" do
186
+ it "raises exception" do
187
+ src = 'NotATask1'
188
+
189
+ tasks = AdminModule::Tasks.new(page_factory)
190
+ expect { tasks.import(src) }.to raise_exception /File not found: NotATask1/
191
+ end
192
+ end
193
+ end
194
+ end
195
+ end
196
+
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+
5
+ if ENV['coverage']
6
+ raise 'simplecov only works on Ruby 1.9' unless RUBY_VERSION =~ /^1\.9/
7
+
8
+ require 'simplecov'
9
+ SimpleCov.start { add_filter "spec/" }
10
+ end
11
+
12
+ require 'bundler/setup'
13
+ require 'rspec'
14
+
15
+ require 'pry-byebug'
16
+ require 'pry-doc'
17
+ require 'pry-docmore'
18
+ require 'pry-rescue'
19
+ require 'pry-stack_explorer'
20
+
21
+ require 'admin_module'
22
+
23
+ # This file was generated by the `rspec --init` command. Conventionally, all
24
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
25
+ # Require this file using `require "spec_helper"` to ensure that it is only
26
+ # loaded once.
27
+ #
28
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
29
+ RSpec.configure do |config|
30
+ config.run_all_when_everything_filtered = true
31
+ config.filter_run :focus
32
+
33
+ # Run specs in random order to surface order dependencies. If you find an
34
+ # order dependency and want to debug it, you can fix the order by providing
35
+ # the seed, which is printed after each run.
36
+ # --seed 1234
37
+ config.order = 'random'
38
+
39
+ config.mock_with :rspec do |mocks|
40
+ # This option should be set when all dependencies are being loaded
41
+ # before a spec run, as is the case in a typical spec helper. It will
42
+ # cause any verifying double instantiation for a class that does not
43
+ # exist to raise, protecting against incorrectly spelt names.
44
+ mocks.verify_doubled_constant_names = true
45
+ mocks.verify_partial_doubles = true
46
+ end
47
+ end
48
+
49
+ Dir["#{File.expand_path('./support', __dir__)}/*.rb"].each do |file|
50
+ require file #unless file =~/fakeweb\/.*\.rb/
51
+ end
52
+
53
+ include Factory
54
+
@@ -0,0 +1,13 @@
1
+ ##############################################################################
2
+ # File:: asserts.rb
3
+ # Purpose:: spec assertion helper methods
4
+ #
5
+ # Author:: Jeff McAffee 07/05/2014
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ def assert_file_contains filename, str
11
+ result = `grep "#{str}" #{filename}`
12
+ fail "'#{str}' not found in #{filename}" if result.empty?
13
+ end
@@ -0,0 +1,28 @@
1
+ ##############################################################################
2
+ # File:: data_clearing.rb
3
+ # Purpose:: Data Clearing testing helpers
4
+ #
5
+ # Author:: Jeff McAffee 2015-04-02
6
+ #
7
+ ##############################################################################
8
+
9
+ def create_dc_hash name
10
+ { name: name,
11
+ description: "#{name} Description",
12
+ delete_options: {
13
+ :decision_data => true,
14
+ :conditions_with_images => true,
15
+ :incomes => true,
16
+ :assets => true,
17
+ :expenses => true,
18
+ :hud1_fields => false,
19
+ :payment_schedule => true,
20
+ },
21
+ dts: [
22
+ 'All Documents Received',
23
+ 'Approval',
24
+ 'Denial Reason',
25
+ ]
26
+ }
27
+ end
28
+
@@ -0,0 +1,54 @@
1
+ ##############################################################################
2
+ # File:: dirs.rb
3
+ # Purpose:: Spec directory helper methods
4
+ #
5
+ # Author:: Jeff McAffee 07/05/2014
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ def spec_tmp_dir(relative_path = '')
11
+ here = Pathname.new(__dir__)
12
+ tmp = here + '../../tmp/spec'
13
+ tmp = tmp + relative_path unless relative_path.empty?
14
+ tmp.mkpath
15
+ tmp.realdirpath
16
+ end
17
+
18
+ def spec_data_dir
19
+ here = Pathname.new(__dir__)
20
+ tmp = here + '../data'
21
+ tmp.mkpath
22
+ tmp.realdirpath
23
+ end
24
+
25
+ def clean_target_dir dir
26
+ target_dir = spec_tmp_dir + Pathname(dir)
27
+ target_dir.rmtree if target_dir.exist?
28
+ target_dir.mkpath
29
+ target_dir
30
+ end
31
+
32
+ def with_target_dir dir
33
+ working_dir = clean_target_dir dir
34
+ FileUtils.cd working_dir do
35
+ yield(working_dir)
36
+ end
37
+ end
38
+
39
+ def copy_from_spec_data src_file, dest_file
40
+ src_path = spec_data_dir + src_file
41
+ dest_path = spec_tmp_dir + dest_file
42
+ dest_path.dirname.mkpath
43
+ FileUtils.cp src_path, dest_path
44
+ dest_path
45
+ end
46
+
47
+ ##
48
+ # DEPRECATED
49
+ #
50
+ def data_dir path = nil
51
+ return 'spec/data' unless path
52
+ return File.join('spec/data', path)
53
+ end
54
+
@@ -0,0 +1,83 @@
1
+ ##############################################################################
2
+ # File:: helpers.rb
3
+ # Purpose:: Spec helper methods
4
+ #
5
+ # Author:: Jeff McAffee 07/05/2014
6
+ # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ def run_with_args(args, client = nil, exitcode = false)
11
+ AdminModule::Runner.new(args, client, exitcode).execute!
12
+ end
13
+
14
+ ##
15
+ # Write a data structure to a yml file
16
+ #
17
+ def write_yaml_data_file filename, data
18
+ File.open(filename, 'w') { |f| f << YAML.dump(data) }
19
+ end
20
+
21
+ ##
22
+ # Read a data from a yml file
23
+ #
24
+ def read_yaml_data_file filename
25
+ data = {}
26
+ File.open(filename, 'r') do |f|
27
+ data = YAML.load(f)
28
+ end
29
+ data
30
+ end
31
+
32
+ def load_yml filename
33
+ YAML::load_file(filename)
34
+ end
35
+
36
+ def capture_output
37
+ fake_stdout = StringIO.new
38
+ actual_stdout = $stdout
39
+ $stdout = fake_stdout
40
+ yield
41
+ fake_stdout.rewind
42
+ fake_stdout.read
43
+ ensure
44
+ $stdout = actual_stdout
45
+ end
46
+
47
+ ##
48
+ # Command Line Interface object
49
+ #
50
+ def cli
51
+ return $real_cli unless $real_cli.nil?
52
+ AdminModule.configure do |config|
53
+ config.credentials = { :dev => ['admin', 'Password1*'] }
54
+ end
55
+ $real_cli = AdminModule::CLI.new
56
+ end
57
+
58
+ def quit_cli
59
+ cli.quit
60
+ $real_cli = nil
61
+ end
62
+
63
+
64
+ ##
65
+ # Create a stage given a stage data hash object
66
+ #
67
+ def create_stage_for_test stage_data
68
+ cli.create_stage(stage_data)
69
+ rescue
70
+ end
71
+
72
+ ##
73
+ # Delete a stage given a stage data hash object
74
+ #
75
+ def delete_stage_for_test stage_data
76
+ cli.delete_stage stage_data
77
+ rescue
78
+ end
79
+
80
+ def admin_module *args
81
+ `bin/admin_module #{args}`
82
+ end
83
+
@@ -0,0 +1,23 @@
1
+ ##############################################################################
2
+ # File:: lock.rb
3
+ # Purpose:: Lock testing helpers
4
+ #
5
+ # Author:: Jeff McAffee 03/10/2015
6
+ # Copyright:: Copyright (c) 2015, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ def create_lock_hash name
11
+ { name: name,
12
+ description: "#{name} Description",
13
+ is_program_lock: false,
14
+ parameters: [
15
+ 'Decision',
16
+ 'NewTerm'
17
+ ],
18
+ dts: [
19
+ 'Current Unpaid Balance',
20
+ ]
21
+ }
22
+ end
23
+