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.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/Gemfile +14 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +281 -0
- data/Rakefile +98 -0
- data/admin_module.gemspec +34 -0
- data/bin/admin_module +13 -0
- data/lib/admin_module.rb +260 -0
- data/lib/admin_module/cli.rb +54 -0
- data/lib/admin_module/cli/cli_guideline.rb +80 -0
- data/lib/admin_module/cli/cli_lock.rb +149 -0
- data/lib/admin_module/cli/cli_parameter.rb +66 -0
- data/lib/admin_module/cli/cli_task.rb +149 -0
- data/lib/admin_module/cli_old.rb +92 -0
- data/lib/admin_module/client.rb +146 -0
- data/lib/admin_module/command.rb +25 -0
- data/lib/admin_module/command/client_access.rb +43 -0
- data/lib/admin_module/command/config.rb +310 -0
- data/lib/admin_module/command/dc.rb +110 -0
- data/lib/admin_module/command/gdl.rb +71 -0
- data/lib/admin_module/command/lock.rb +110 -0
- data/lib/admin_module/command/ppm.rb +142 -0
- data/lib/admin_module/command/rule.rb +77 -0
- data/lib/admin_module/command/ruleset.rb +56 -0
- data/lib/admin_module/command/snapshot.rb +110 -0
- data/lib/admin_module/command/stage.rb +131 -0
- data/lib/admin_module/command/task.rb +110 -0
- data/lib/admin_module/config_helper.rb +33 -0
- data/lib/admin_module/dc.rb +133 -0
- data/lib/admin_module/guideline.rb +86 -0
- data/lib/admin_module/locks.rb +142 -0
- data/lib/admin_module/page_factory.rb +55 -0
- data/lib/admin_module/pages.rb +120 -0
- data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
- data/lib/admin_module/pages/dc_detail_page.rb +187 -0
- data/lib/admin_module/pages/guideline_page.rb +35 -0
- data/lib/admin_module/pages/guideline_version_page.rb +140 -0
- data/lib/admin_module/pages/guidelines_page.rb +59 -0
- data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
- data/lib/admin_module/pages/lock_definition_page.rb +178 -0
- data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
- data/lib/admin_module/pages/login_page.rb +75 -0
- data/lib/admin_module/pages/parameter_page.rb +62 -0
- data/lib/admin_module/pages/parameters_page.rb +46 -0
- data/lib/admin_module/pages/ppms_page.rb +110 -0
- data/lib/admin_module/pages/rule_page.rb +68 -0
- data/lib/admin_module/pages/rules_page.rb +74 -0
- data/lib/admin_module/pages/ruleset_page.rb +64 -0
- data/lib/admin_module/pages/rulesets_page.rb +60 -0
- data/lib/admin_module/pages/select_list_syncable.rb +64 -0
- data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
- data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
- data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
- data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
- data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
- data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
- data/lib/admin_module/pages/workflow_details_page.rb +67 -0
- data/lib/admin_module/pages/workflow_task_page.rb +107 -0
- data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
- data/lib/admin_module/ppms.rb +78 -0
- data/lib/admin_module/rake.rb +22 -0
- data/lib/admin_module/rake/dc_tasks.rb +185 -0
- data/lib/admin_module/rake/deploy_task.rb +59 -0
- data/lib/admin_module/rake/gdl_tasks.rb +189 -0
- data/lib/admin_module/rake/lock_tasks.rb +189 -0
- data/lib/admin_module/rake/parameter_task.rb +86 -0
- data/lib/admin_module/rake/ppm_tasks.rb +248 -0
- data/lib/admin_module/rake/rule_tasks.rb +157 -0
- data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
- data/lib/admin_module/rake/stage_tasks.rb +197 -0
- data/lib/admin_module/rake/stages_task.rb +197 -0
- data/lib/admin_module/rake/task_tasks.rb +189 -0
- data/lib/admin_module/rules.rb +50 -0
- data/lib/admin_module/rulesets.rb +42 -0
- data/lib/admin_module/snapshots.rb +133 -0
- data/lib/admin_module/stages.rb +171 -0
- data/lib/admin_module/tasks.rb +147 -0
- data/lib/admin_module/version.rb +3 -0
- data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
- data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
- data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
- data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
- data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
- data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
- data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
- data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
- data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
- data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
- data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
- data/spec/data/build/test1.xml +0 -0
- data/spec/data/build/test2.xml +1 -0
- data/spec/data/import_dcs.yml +31 -0
- data/spec/data/import_locks.yml +4 -0
- data/spec/data/import_snapshots.yml +35 -0
- data/spec/data/import_stages.yml +4 -0
- data/spec/data/import_tasks.yml +25 -0
- data/spec/data/patch-test.xml +1 -0
- data/spec/data/remove_test_del_rule.xml +1 -0
- data/spec/data/stages.yml +518 -0
- data/spec/data/test_del_rule.xml +1 -0
- data/spec/lib/admin_module/admin_module_spec.rb +175 -0
- data/spec/lib/admin_module/cli_spec.rb +36 -0
- data/spec/lib/admin_module/client_spec.rb +158 -0
- data/spec/lib/admin_module/command/config_spec.rb +477 -0
- data/spec/lib/admin_module/command/dc_spec.rb +202 -0
- data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
- data/spec/lib/admin_module/command/lock_spec.rb +207 -0
- data/spec/lib/admin_module/command/rule_spec.rb +163 -0
- data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
- data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
- data/spec/lib/admin_module/command/stage_spec.rb +259 -0
- data/spec/lib/admin_module/command/task_spec.rb +207 -0
- data/spec/lib/admin_module/dc_spec.rb +192 -0
- data/spec/lib/admin_module/guideline_spec.rb +177 -0
- data/spec/lib/admin_module/locks_spec.rb +188 -0
- data/spec/lib/admin_module/rules_spec.rb +110 -0
- data/spec/lib/admin_module/rulesets_spec.rb +85 -0
- data/spec/lib/admin_module/snapshot_spec.rb +192 -0
- data/spec/lib/admin_module/stages_spec.rb +179 -0
- data/spec/lib/admin_module/tasks_spec.rb +196 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/asserts.rb +13 -0
- data/spec/support/data_clearing.rb +28 -0
- data/spec/support/dirs.rb +54 -0
- data/spec/support/helpers.rb +83 -0
- data/spec/support/lock.rb +23 -0
- data/spec/support/mocks.rb +213 -0
- data/spec/support/snapshot.rb +28 -0
- data/spec/support/stage.rb +22 -0
- data/spec/support/stage_factory.rb +138 -0
- data/spec/support/task.rb +23 -0
- 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
|
+
|
data/spec/spec_helper.rb
ADDED
|
@@ -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
|
+
|