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,3 @@
1
+ module AdminModule
2
+ VERSION = "0.1.4"
3
+ end
@@ -0,0 +1,126 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ let(:cli) do
6
+ AdminModule.configure do |config|
7
+ config.credentials = { :dev => ['devuser', 'devpassword'] }
8
+ end
9
+ AdminModule::CLI.new
10
+ end
11
+
12
+ after(:each) do
13
+ cli.quit
14
+ end
15
+
16
+ describe "#environment=" do
17
+ context "sets the environment to use" do
18
+ context "when set to :sit" do
19
+ let(:cli) do
20
+ AdminModule.configure do |config|
21
+ config.credentials = { :sit => ['situser', 'sitpassword*'] }
22
+ end
23
+ cli = AdminModule::CLI.new
24
+ cli.environment = :sit
25
+ cli
26
+ end
27
+
28
+
29
+ it "#environment returns :sit" do
30
+ expect(cli.environment).to eq :sit
31
+ end
32
+
33
+ it "#credentials returns values for :sit" do
34
+ expect(cli.credentials).to eq ['situser', 'sitpassword*']
35
+ end
36
+
37
+ it "#base_url returns values for :sit" do
38
+ expect(cli.base_url).to eq "http://207.38.119.211/fap2SIT/Admin"
39
+ end
40
+ end
41
+ end
42
+
43
+ #context "with :test configured as default environment" do
44
+ # AdminModule.configure do |config|
45
+ # config.default_environment = :test
46
+ # end
47
+
48
+ # it "returns :test" do
49
+ # expect(cli.environment).to eq :test
50
+ # end
51
+ #end # context "with invalid source file"
52
+ end
53
+
54
+ describe "#environment" do
55
+ context "returns default environment if not overridden" do
56
+ let(:devuser) { 'DevUser' }
57
+ let(:devpass) { 'DevPassword1*' }
58
+ let(:cli) do
59
+ AdminModule.configure do |config|
60
+ config.reset
61
+ config.credentials = { :dev => [devuser, devpass] }
62
+ end
63
+ cli = AdminModule::CLI.new
64
+ cli
65
+ end
66
+
67
+
68
+ it "returns :dev" do
69
+ expect(cli.environment).to eq :dev
70
+ end
71
+ end
72
+
73
+ #context "with :test configured as default environment" do
74
+ # AdminModule.configure do |config|
75
+ # config.default_environment = :test
76
+ # end
77
+
78
+ # it "returns :test" do
79
+ # expect(cli.environment).to eq :test
80
+ # end
81
+ #end # context "with invalid source file"
82
+ end
83
+
84
+
85
+ describe "#credentials" do
86
+ context "returns default credentials if not overridden" do
87
+ let(:devuser) { 'DevUser' }
88
+ let(:devpass) { 'DevPassword1*' }
89
+ let(:cli) do
90
+ AdminModule.configure do |config|
91
+ config.reset
92
+ config.credentials = { :dev => [devuser, devpass] }
93
+ end
94
+ cli = AdminModule::CLI.new
95
+ cli
96
+ end
97
+
98
+
99
+ it "returns :dev's credentials" do
100
+ expect(cli.credentials).to eq [devuser, devpass]
101
+ end
102
+ end
103
+ end
104
+
105
+
106
+ describe "#base_urls" do
107
+ context "returns default urls if not overridden" do
108
+ let(:devuser) { 'DevUser' }
109
+ let(:devpass) { 'DevPassword1*' }
110
+ let(:cli) do
111
+ AdminModule.configure do |config|
112
+ config.reset
113
+ config.credentials = { :dev => [devuser, devpass] }
114
+ end
115
+ cli = AdminModule::CLI.new
116
+ cli
117
+ end
118
+
119
+
120
+ it "returns :dev's base url" do
121
+ expect(cli.base_url).to eq "http://207.38.119.211/fap2Dev/Admin"
122
+ end
123
+ end
124
+ end
125
+
126
+ end # describe AdminModule
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ # Kill the browser after each test.
6
+ after(:each) do
7
+ quit_cli
8
+ end
9
+
10
+
11
+ describe "#create_stage" do
12
+ context "stage data missing name parameter" do
13
+
14
+ let(:missing_name) do
15
+ { name: '',
16
+ transition_to: [
17
+ '001 New File',
18
+ '022 Docs Verification',
19
+ '060 Reconsideration Exceptions/Overrides',
20
+ '096 Withdrawn',
21
+ '120 Second Review-Pending Docs' ]
22
+ }
23
+ end
24
+
25
+
26
+ it "will raise exception" do
27
+ expect { cli.create_stage(missing_name) }.to raise_exception(ArgumentError)
28
+ end
29
+ end # context
30
+
31
+
32
+ context "stage name already exists" do
33
+
34
+ let(:name_exists) do
35
+ factory = StageFactory.new
36
+ factory.name('020 Pending Docs')
37
+ .set_transitions([
38
+ '001 New File',
39
+ '022 Docs Verification',
40
+ '060 Reconsideration Exceptions/Overrides',
41
+ '096 Withdrawn',
42
+ '120 Second Review-Pending Docs' ])
43
+
44
+ factory.data
45
+ end
46
+
47
+
48
+ it "will raise exception" do
49
+ expect { cli.create_stage(name_exists) }.to raise_exception(ArgumentError)
50
+ end
51
+ end # context
52
+
53
+ context "stage name does not exist" do
54
+
55
+ let(:new_stage) do
56
+ factory = StageFactory.new
57
+ factory.name('Test Stage')
58
+ .set_transitions([
59
+ '001 New File',
60
+ '022 Docs Verification',
61
+ '060 Reconsideration Exceptions/Overrides',
62
+ '096 Withdrawn',
63
+ '120 Second Review-Pending Docs' ])
64
+
65
+ factory.data
66
+ end
67
+
68
+ it "stage is created" do
69
+ delete_stage_for_test new_stage
70
+
71
+ cli.create_stage(new_stage)
72
+
73
+ stage_name = new_stage[:name]
74
+ actual = cli.get_stage stage_name
75
+
76
+ expect(actual[:name]).to eq stage_name
77
+ expect(actual[:transition_to]).to eq new_stage[:transition_to]
78
+ end
79
+
80
+ it "stage is deleted" do
81
+ create_stage_for_test new_stage
82
+
83
+ cli.delete_stage(new_stage)
84
+ expect{ cli.get_stage(new_stage[:name]) }.to raise_exception
85
+ end
86
+ end # context
87
+ end # describe "#create_stage"
88
+
89
+ end # describe AdminModule
@@ -0,0 +1,57 @@
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(:non_existant_rule_name) { 'Z-NotARule' }
17
+ let(:test_rule_name) { 'Z-TestDelRule' }
18
+ let(:test_rule_xml) { 'spec/data/test_del_rule.xml' }
19
+ let(:remove_test_rule_xml) { 'spec/data/remove_test_del_rule.xml' }
20
+
21
+
22
+ describe "#delete_rule" do
23
+
24
+ context "invalid parameters" do
25
+
26
+ context "missing rule name parameter" do
27
+
28
+ it "will raise exception" do
29
+ expect { cli.delete_rule(nil) }.to raise_exception(ArgumentError)
30
+ expect { cli.delete_rule('') }.to raise_exception(ArgumentError)
31
+ end
32
+
33
+ end # context
34
+
35
+ context "rule does not exist" do
36
+
37
+ it "will raise exception" do
38
+ expect { cli.delete_rule(non_existant_rule_name) }.to raise_exception(ArgumentError)
39
+ end
40
+ end # context
41
+ end # context
42
+
43
+ context "valid parameters" do
44
+
45
+ it "rule is deleted" do
46
+ # Create a rule to delete.
47
+ cli.deploy test_rule_xml, 'Z-TEMP', 'Running cli_delete_spec - step 1: Add Z-TestDelRule.'
48
+ # Have to upload another gdl so we don't have a guideline pointing to
49
+ # the rule we're going to delete.
50
+ cli.deploy remove_test_rule_xml, 'Z-TEMP', 'Running cli_delete_spec - step 2: Remove Z-TestDelRule.'
51
+
52
+ cli.delete_rule(test_rule_name)
53
+ expect(cli.get_rules().include?(test_rule_name)).to eq false
54
+ end
55
+ end # context
56
+ end # describe "#delete_rule"
57
+ end # describe AdminModule
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ after(:each) do
6
+ quit_cli
7
+ end
8
+
9
+ describe "#deploy" do
10
+ context "with invalid source file" do
11
+ it "will raise an IOError exception" do
12
+ expect { cli.deploy('source_xml.xml', 'dest_gdl_name') }.to raise_exception(IOError)
13
+ end
14
+ end # context "with invalid source file"
15
+
16
+ context "with valid source file" do
17
+ let(:data_dir) { 'spec/data' }
18
+ let(:test_source_file) { File.join(data_dir, 'patch-test.xml') }
19
+
20
+ AdminModule.configure do |config|
21
+ config.aliases = { 'temp' => 'Z-TEMP' }
22
+ end
23
+
24
+
25
+ it "deploys to default environment" do
26
+ expect { cli.deploy(test_source_file, 'Z-TEMP') }.not_to raise_exception
27
+ end
28
+ end # context "with valid source file"
29
+ end
30
+
31
+
32
+ describe "#deploy_files" do
33
+ context "with one invalid source file" do
34
+ it "will raise an IOError exception" do
35
+ expect { cli.deploy_files(['source_xml.xml'], 'Multi-upload fail test') }.to raise_exception(IOError)
36
+ end
37
+ end
38
+
39
+ context "with valid source files" do
40
+ let(:data_dir) { 'spec/data' }
41
+ let(:test_source_file1) { File.join(data_dir, 'patch-test.xml') }
42
+ let(:test_source_file2) { File.join(data_dir, 'patch-test.xml') }
43
+ let(:test_source_files) { [test_source_file1, test_source_file2] }
44
+
45
+ AdminModule.configure do |config|
46
+ config.aliases = { 'patch-test' => 'Z-TEMP' }
47
+ config.browser_timeout = 359
48
+ end
49
+
50
+
51
+ it "deploys to default environment" do
52
+ expect { cli.deploy_files(test_source_files, 'Multi-upload test') }.not_to raise_exception
53
+ end
54
+ end # context "with valid source file"
55
+ end
56
+
57
+ end # describe AdminModule
@@ -0,0 +1,62 @@
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
+ describe "#get_lock" do
17
+ context "invalid lock name" do
18
+ it "will raise exception" do
19
+ expect { cli.get_lock('invalid') }.to raise_exception(ArgumentError)
20
+ end
21
+ end # context "invalid lock name"
22
+
23
+
24
+ context "valid lock name" do
25
+
26
+ let(:expected_dod_lock) do
27
+ { name: 'DODLock',
28
+ description: '',
29
+ is_program_lock: false,
30
+ parameters: [],
31
+ dts: [
32
+ 'Delinquency Status',
33
+ 'Has Escrow Account'
34
+ ]
35
+ }
36
+ end
37
+
38
+
39
+ it "will return lock configuration data" do
40
+ expect( cli.get_lock('DODLock') ).to eq expected_dod_lock
41
+ end
42
+ end # context "valid lock name"
43
+ end # describe "#get_lock"
44
+
45
+ describe "#export_locks" do
46
+ context "with filename" do
47
+
48
+ let(:target_file) { 'tmp/spec/admin_module/locks.yml' }
49
+
50
+ before(:each) do
51
+ FileUtils.rm_rf target_file
52
+ end
53
+
54
+
55
+ it "writes multiple locks to a file" do
56
+ cli.export_locks(target_file)
57
+ locks = read_yaml_data_file(target_file)
58
+ expect(locks.size).to eq 20
59
+ end
60
+ end # context
61
+ end # describe "#export_locks"
62
+ end # describe AdminModule
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe AdminModule::CLI do
4
+
5
+ # Quit the browser after each test.
6
+ after(:each) do
7
+ quit_cli
8
+ end
9
+
10
+ describe "#get_stage" do
11
+ context "invalid stage name" do
12
+ it "will raise exception" do
13
+ expect { cli.get_stage('invalid') }.to raise_exception(ArgumentError)
14
+ end
15
+ end # context "invalid stage name"
16
+
17
+
18
+ context "valid stage name" do
19
+
20
+ let(:expected_stage) do
21
+ factory = StageFactory.new
22
+ factory.name('020 Pending Docs').
23
+ set_transitions([
24
+ '001 New File',
25
+ '022 Docs Verification',
26
+ '060 Reconsideration Exceptions/Overrides',
27
+ '096 Withdrawn',
28
+ '120 Second Review-Pending Docs'
29
+ ]
30
+ )
31
+ factory.data
32
+ end
33
+
34
+
35
+ it "will return stage configuration data" do
36
+ stage_name = expected_stage[:name]
37
+ actual = cli.get_stage stage_name
38
+
39
+ expect(actual[:name]).to eq stage_name
40
+ expect(actual[:transition_to]).to eq expected_stage[:transition_to]
41
+ end
42
+ end # context "valid stage name"
43
+ end # describe "#get_stage"
44
+
45
+ describe "#export_stages" do
46
+ context "with filename" do
47
+
48
+ let(:target_file) { 'tmp/spec/admin_module/stages.yml' }
49
+
50
+ before(:each) do
51
+ FileUtils.rm_rf target_file
52
+ end
53
+
54
+
55
+ it "writes multiple stages to a file" do
56
+ cli.export_stages(target_file)
57
+ stages = read_yaml_data_file(target_file)
58
+ expect(stages.size).to eq 49
59
+ end
60
+ end # context
61
+ end # describe "#export_stages"
62
+ end # describe AdminModule