ole-qa-framework 3.14.1 → 3.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/LICENSE.md +1 -1
- data/README.md +93 -1
- data/Rakefile.rb +38 -12
- data/config/options.yml +11 -0
- data/data/circulation.yml +10 -0
- data/data/country.yml +3 -0
- data/lib/common/common_object.rb +1 -1
- data/lib/common/data_object.rb +1 -2
- data/lib/common/line_object.rb +1 -1
- data/lib/common/page.rb +27 -3
- data/lib/common/subline_object.rb +1 -1
- data/lib/data_factory/account_factory.rb +3 -3
- data/lib/data_factory/bib_factory.rb +14 -4
- data/lib/data_factory/metadata_factory.rb +4 -3
- data/lib/data_factory/patron_factory.rb +10 -5
- data/lib/data_factory/string_factory.rb +2 -2
- data/lib/docstore/common/results.rb +1 -1
- data/lib/docstore/pages/marc_results.rb +1 -1
- data/lib/docstore/pages/search.rb +1 -1
- data/lib/module/factory_helpers.rb +1 -1
- data/lib/module/qa_helpers.rb +1 -1
- data/lib/ole-qa-framework.rb +17 -16
- data/lib/ole_qa_framework/COMPATIBILITY.rb +1 -1
- data/lib/ole_qa_framework/VERSION.rb +2 -2
- data/lib/olefs/common/e_doc.rb +1 -1
- data/lib/olefs/common/lookup.rb +1 -1
- data/lib/olefs/common/purap_document.rb +1 -1
- data/lib/olefs/objects/invoice_current_item.rb +1 -1
- data/lib/olefs/objects/invoice_line.rb +1 -1
- data/lib/olefs/objects/line_item.rb +1 -1
- data/lib/olefs/objects/receiving_line.rb +1 -1
- data/lib/olefs/pages/building_lookup.rb +1 -1
- data/lib/olefs/pages/invoice.rb +1 -1
- data/lib/olefs/pages/load_report.rb +1 -1
- data/lib/olefs/pages/load_summary_lookup.rb +1 -1
- data/lib/olefs/pages/main_menu.rb +1 -1
- data/lib/olefs/pages/payment_request.rb +1 -1
- data/lib/olefs/pages/purchase_order.rb +1 -1
- data/lib/olefs/pages/receiving_document.rb +1 -1
- data/lib/olefs/pages/requisition.rb +1 -1
- data/lib/olefs/pages/vendor_lookup.rb +1 -1
- data/lib/olefs/subobjects/accounting_line.rb +1 -1
- data/lib/olefs/subobjects/copies_line.rb +1 -1
- data/lib/olefs/subobjects/exception_notes_line.rb +1 -1
- data/lib/olefs/subobjects/invoice_line_item.rb +1 -1
- data/lib/olefs/subobjects/notes_line.rb +1 -1
- data/lib/olefs/subobjects/processing_line.rb +1 -1
- data/lib/olefs/subobjects/receipt_notes_line.rb +1 -1
- data/lib/olels/common/batch_profile.rb +1 -1
- data/lib/olels/common/e_doc.rb +1 -1
- data/lib/olels/common/editor.rb +1 -1
- data/lib/olels/common/lookup.rb +1 -1
- data/lib/olels/objects/access_info_line.rb +1 -1
- data/lib/olels/objects/batch_data_mapping_line.rb +1 -1
- data/lib/olels/objects/batch_delete_field_line.rb +1 -1
- data/lib/olels/objects/batch_rename_field_line.rb +1 -1
- data/lib/olels/objects/control_006_line.rb +1 -1
- data/lib/olels/objects/control_007_line.rb +1 -1
- data/lib/olels/objects/data_line.rb +1 -1
- data/lib/olels/objects/editor_note.rb +1 -1
- data/lib/olels/objects/export_filter_line.rb +1 -1
- data/lib/olels/objects/holdings_note.rb +1 -1
- data/lib/olels/objects/import_defaults_line.rb +1 -1
- data/lib/olels/objects/import_match_line.rb +1 -1
- data/lib/olels/objects/import_pf_line.rb +1 -1
- data/lib/olels/objects/item_note.rb +1 -1
- data/lib/olels/objects/ownership_extent_line.rb +1 -1
- data/lib/olels/objects/patron_address_line.rb +1 -1
- data/lib/olels/objects/patron_email_line.rb +1 -1
- data/lib/olels/objects/patron_phone_line.rb +1 -1
- data/lib/olels/objects/workbench_line.rb +1 -1
- data/lib/olels/pages/batch_export_profile.rb +1 -1
- data/lib/olels/pages/batch_import_profile.rb +1 -1
- data/lib/olels/pages/batch_job_details.rb +1 -1
- data/lib/olels/pages/batch_job_report.rb +1 -1
- data/lib/olels/pages/batch_process.rb +1 -1
- data/lib/olels/pages/batch_profile_lookup.rb +1 -1
- data/lib/olels/pages/batch_type_lookup.rb +1 -1
- data/lib/olels/pages/bib_editor.rb +1 -1
- data/lib/olels/pages/describe_workbench.rb +1 -1
- data/lib/olels/pages/instance_editor.rb +1 -1
- data/lib/olels/pages/item_editor.rb +1 -1
- data/lib/olels/pages/item_lookup.rb +1 -1
- data/lib/olels/pages/loan.rb +1 -1
- data/lib/olels/pages/location.rb +1 -1
- data/lib/olels/pages/location_level_lookup.rb +1 -1
- data/lib/olels/pages/location_lookup.rb +1 -1
- data/lib/olels/pages/main_menu.rb +1 -1
- data/lib/olels/pages/old_describe_workbench.rb +1 -1
- data/lib/olels/pages/patron.rb +1 -1
- data/lib/olels/pages/patron_lookup.rb +1 -1
- data/lib/olels/pages/renewal.rb +1 -1
- data/lib/olels/pages/request.rb +1 -1
- data/lib/olels/pages/request_lookup.rb +1 -1
- data/lib/olels/pages/return.rb +1 -1
- data/lib/olels/pages/staff_upload.rb +1 -1
- data/lib/olels/subobjects/ownership_note.rb +1 -1
- data/spec/common/browser_spec.rb +2 -2
- data/spec/common/data_object_spec.rb +2 -2
- data/spec/common/line_object_spec.rb +2 -2
- data/spec/common/page_spec.rb +2 -2
- data/spec/common/session_spec.rb +62 -0
- data/spec/common/subline_object_spec.rb +2 -2
- data/spec/data_factory/account_factory_spec.rb +1 -1
- data/spec/data_factory/bib_factory_spec.rb +17 -1
- data/spec/data_factory/patron_factory_spec.rb +6 -1
- data/spec/data_factory/string_factory_spec.rb +1 -1
- data/spec/modules/qa_helpers_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- metadata +7 -9
- data/lib/config/alt/dev_env.yml +0 -8
- data/lib/config/alt/test_env.yml +0 -8
- data/lib/config/default_options.yml +0 -8
- data/lib/module/qa_data_helpers.rb +0 -17
- data/lib/module/qa_page_helpers.rb +0 -41
- data/spec/modules/qa_page_helpers_spec.rb +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 725c44e11f55eccafd6ff4c7809e2b73b8e67eb4
|
4
|
+
data.tar.gz: 03eb2fb83bfd8cab61508524ca0ed69caffd0e61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e30b829f8bef67fc32d46346b0a0a4644cb59422825cbeb5479d7082a8e3d1106ac9cb3a93bfd596071988e03bd9167292f9b17a7a1dfd1d0372bf7fcfda469d
|
7
|
+
data.tar.gz: e36db42fcfbbf8ebb55adf695acc3c51ce0ea3ae17978bbfb73c9ed8144b506a864a5af0b866479af4ebe9544dc3afc2fb76ef7f39d5de3f88b765f1bf8cdb02
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,33 @@
|
|
1
|
+
### v3.15.0 - 2014/06/18
|
2
|
+
|
3
|
+
* Update Framework module & Session class
|
4
|
+
* Add session spec
|
5
|
+
* Move lib/config/default_options.yml to config/options.yml
|
6
|
+
* Update Rakefile
|
7
|
+
* Remove select_config task
|
8
|
+
* Add show_config task
|
9
|
+
* Add configurator task
|
10
|
+
* Update Readme
|
11
|
+
* Add instructions for show_config & configurator tasks
|
12
|
+
* Clean up modules
|
13
|
+
* Move page helpers to lib/common/page.rb
|
14
|
+
* Remove lib/module/qa_page_helpers.rb
|
15
|
+
* Remove redundant page helpers spec
|
16
|
+
* Remove lib/module/qa_data_helpers.rb
|
17
|
+
* Clean up Data Factories
|
18
|
+
* Change classes to modules
|
19
|
+
* Add country attribute to patron factory
|
20
|
+
* Add country data file to data/
|
21
|
+
* Update Copyright info
|
22
|
+
* Clean up specs
|
23
|
+
* Add @ole.nil? check to specs using live sessions
|
24
|
+
* Add circulation info selector to Bib Factory
|
25
|
+
* OLE_QA::Framework::Bib_Factory.circulation_info will return a hash containing
|
26
|
+
a circulation desk code, circulation desk name, and an array of locations which
|
27
|
+
are mapped to that circulation desk.
|
28
|
+
* Added examples to spec/data_factory/bib_factory_spec.rb
|
29
|
+
* Add institutional data configuration section to README.md
|
30
|
+
|
1
31
|
### v3.14.1 - 2014/05/19
|
2
32
|
|
3
33
|
* Add Conributions document
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -8,4 +8,96 @@ http://www.kuali.org/ole
|
|
8
8
|
- - -
|
9
9
|
This is a testing framework for the Kuali Open Library environment. It
|
10
10
|
is be used to define OLE pages and screen elements for OLE regression
|
11
|
-
testing scripts and the OLE Smoketest application.
|
11
|
+
testing scripts and the OLE Smoketest application.
|
12
|
+
|
13
|
+
### Configuration
|
14
|
+
|
15
|
+
Options can be set in the file config/options.yml. Here is a list of the
|
16
|
+
options hash keys and their meanings:
|
17
|
+
|
18
|
+
- :url:
|
19
|
+
- The URL of the main OLE installation you will be testing.
|
20
|
+
- :docstore_url:
|
21
|
+
- The URL of the OLE Document Store installation.
|
22
|
+
- :headless?:
|
23
|
+
- If set to true, the testing session will be run headlessly
|
24
|
+
in an XVFB session handled by the Headless gem.
|
25
|
+
- :implicit_wait:
|
26
|
+
- Used to set Selenium Webdriver's default wait period.
|
27
|
+
- :explicit_wait:
|
28
|
+
- Used to set the Watir Webdriver default wait period.
|
29
|
+
- :doc_wait:
|
30
|
+
- Used to set the maximum timeout for an OLE eDocument
|
31
|
+
to finish routing to the next step in its workflow.
|
32
|
+
- :browser:
|
33
|
+
- Pass an active instance of Watir Webdriver if you want to start
|
34
|
+
an OLE Framework session with an already-running browser.
|
35
|
+
|
36
|
+
These options can be set manually, or using the Rake configurator task.
|
37
|
+
Use the Rake show_config task to see the current options settings at any time.
|
38
|
+
|
39
|
+
### Instituational Data
|
40
|
+
|
41
|
+
Institutional data is defined in the YAML files in the data/ directory. The
|
42
|
+
OLE QA Framework can be adapted to use different institutional data first by
|
43
|
+
editing the YAML data files in data/, and optionally altering the default values
|
44
|
+
of a few data factories and their respective RSpec tests in the spec/ directory.
|
45
|
+
|
46
|
+
#### YAML Data Files
|
47
|
+
|
48
|
+
The data/ directory contains the following YAML data files:
|
49
|
+
|
50
|
+
- accounts.yml
|
51
|
+
- OLE account numbers, organized into a hash containing arrays of
|
52
|
+
account numbers organized by chart code.
|
53
|
+
- borrower_types.yml
|
54
|
+
- Borrower types used for patron and circulation information,
|
55
|
+
organized into an array.
|
56
|
+
- circulation.yml
|
57
|
+
- Circulation desks and the locations which they serve, organized
|
58
|
+
into an array containing a hash for each desk, which itself contains
|
59
|
+
an array of locations served by that desk.
|
60
|
+
- country.yml
|
61
|
+
- A string containing the country name to be used for patron information,
|
62
|
+
as it appears in the OLE application itself.
|
63
|
+
- objects.yml
|
64
|
+
- Object code values for accounting, organized into a hash containing
|
65
|
+
arrays of object codes organized by chart code.
|
66
|
+
- patron.yml
|
67
|
+
- An array of hashes containing patron information drawn from the OLE
|
68
|
+
demo data, with keys for ID, first and last name, and barcode.
|
69
|
+
- states.yml
|
70
|
+
- An array of states used for OLE patron information, as they appear
|
71
|
+
in the OLE application itself.
|
72
|
+
|
73
|
+
#### Default Data Values in Classes
|
74
|
+
|
75
|
+
The following classes in the lib/data_factory/ directory contain default
|
76
|
+
selections which may need to be changed for optimal functionality:
|
77
|
+
|
78
|
+
- account_factory.rb
|
79
|
+
- Methods for selecting account and object codes default to the :BL
|
80
|
+
chart selector.
|
81
|
+
- string_factory.rb
|
82
|
+
- Prices are formatted to two decimal places by default. Non-US prices
|
83
|
+
may need commas or other separator values.
|
84
|
+
- Phone numbers are in US NNN-NNN-NNNN format.
|
85
|
+
- patron_factory.rb
|
86
|
+
- Phone numbers are in US NNN-NNN-NNNN format.
|
87
|
+
|
88
|
+
#### Default Data Values in Specs
|
89
|
+
|
90
|
+
The following specs in spec/data_factory contain default selections which
|
91
|
+
may need to be changed for optimal functionality:
|
92
|
+
|
93
|
+
- bib_factory_spec.rb
|
94
|
+
- Tests for selecting a circulation desk use the 'BL_EDUC' circulation
|
95
|
+
desk, taken from the OLE demo data.
|
96
|
+
- string_factory_spec.rb
|
97
|
+
- Tests for phone numbers default to the US NNN-NNN-NNNN phone number
|
98
|
+
format.
|
99
|
+
- patron_factory_spec.rb
|
100
|
+
- Tests for phone numbers default to the US NNN-NNN-NNNN phone number
|
101
|
+
format.
|
102
|
+
|
103
|
+
|
data/Rakefile.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -20,6 +20,7 @@ require 'rspec/core/rake_task'
|
|
20
20
|
require 'bundler/gem_tasks'
|
21
21
|
require 'fileutils'
|
22
22
|
require 'lib/ole_qa_framework/COMPATIBILITY.rb'
|
23
|
+
require 'yaml'
|
23
24
|
|
24
25
|
desc "Print the current version number."
|
25
26
|
task :version do
|
@@ -31,16 +32,41 @@ task :works_with do
|
|
31
32
|
puts OLE_QA::Framework::OLE_VERSION
|
32
33
|
end
|
33
34
|
|
34
|
-
desc
|
35
|
-
task :
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
puts "
|
43
|
-
|
44
|
-
|
35
|
+
desc 'Interactively configure config/options.yml'
|
36
|
+
task :configurator do
|
37
|
+
config_file = File.open('config/options.yml','r')
|
38
|
+
options = YAML.load(config_file)
|
39
|
+
config_file.close
|
40
|
+
|
41
|
+
options.each do |k,v|
|
42
|
+
puts "#{k.to_s.ljust(20)}: #{v}"
|
43
|
+
puts "... (k)eep or (c)hange? [k|c]"
|
44
|
+
ans = STDIN.gets.chomp
|
45
|
+
if ans =~ /[Cc]/
|
46
|
+
puts "Enter new value:"
|
47
|
+
new_val = STDIN.gets.chomp
|
48
|
+
if v.is_a?(TrueClass) || v.is_a?(FalseClass)
|
49
|
+
new_val.match(/^[Tt]/) ? new_val = true : new_val = false
|
50
|
+
else
|
51
|
+
new_val = new_val.to_i unless new_val.to_i == 0
|
52
|
+
end
|
53
|
+
options[k] = new_val
|
54
|
+
puts "#{k.to_s.ljust(20)} updated to: #{new_val}"
|
55
|
+
end
|
45
56
|
end
|
57
|
+
|
58
|
+
config_file = File.open('config/options.yml','w')
|
59
|
+
YAML.dump(options,config_file)
|
60
|
+
config_file.close
|
61
|
+
|
46
62
|
end
|
63
|
+
|
64
|
+
desc 'Show current options in config/options.yml'
|
65
|
+
task :show_config do
|
66
|
+
config_file = File.open('config/options.yml','r')
|
67
|
+
options = YAML.load(config_file)
|
68
|
+
config_file.close
|
69
|
+
options.each do |k,v|
|
70
|
+
puts "#{k.to_s.ljust(20)}: #{v}"
|
71
|
+
end
|
72
|
+
end
|
data/config/options.yml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Default options for an OLE QA Framework session.
|
2
|
+
# (Parsed at session instantiation. See
|
3
|
+
# OLE_QA::Framework::Session#new for
|
4
|
+
# more information.)
|
5
|
+
---
|
6
|
+
:url: http://tst.ole.kuali.org/
|
7
|
+
:docstore_url: http://tst.docstore.ole.kuali.org/
|
8
|
+
:headless?: true
|
9
|
+
:implicit_wait: 0
|
10
|
+
:explicit_wait: 30
|
11
|
+
:doc_wait: 45
|
data/data/country.yml
ADDED
data/lib/common/common_object.rb
CHANGED
data/lib/common/data_object.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -16,6 +16,5 @@ module OLE_QA::Framework
|
|
16
16
|
|
17
17
|
# An object in OLE which contains screen elements but is not itself a screen element.
|
18
18
|
class Data_Object < Common_Object
|
19
|
-
include OLE_QA::Framework::Data_Helpers
|
20
19
|
end
|
21
20
|
end
|
data/lib/common/line_object.rb
CHANGED
data/lib/common/page.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -29,8 +29,6 @@ module OLE_QA::Framework
|
|
29
29
|
# An array containing the elements (Symbol) to wait on before the page is considered loaded.
|
30
30
|
attr_reader :wait_on
|
31
31
|
|
32
|
-
include OLE_QA::Framework::Page_Helpers
|
33
|
-
|
34
32
|
# @param ole_session [Object] The OLE_QA::Framework::Session instance in which the page should load.
|
35
33
|
# @param url [String] The URL (if any) used to open the page. (Set to "" if unused.)
|
36
34
|
# @param lookup_url [String] The URL (if any) by which a document represented by the page can be opened.
|
@@ -99,6 +97,31 @@ module OLE_QA::Framework
|
|
99
97
|
false
|
100
98
|
end
|
101
99
|
|
100
|
+
# Set a line object definition on a page object.
|
101
|
+
# - A line object created with this method becomes an accessor attribute
|
102
|
+
# associated with an instance variable on the page or data object on
|
103
|
+
# which it is created.
|
104
|
+
#
|
105
|
+
# @param name [Symbol] The name the new line object will have on the object.
|
106
|
+
# (This will be an instance variable, so it cannot contain spaces.)
|
107
|
+
# @param klas [Class] The class to instantiate for the new line object.
|
108
|
+
# (An error will be returned if the class given is not defined.)
|
109
|
+
# @param force [Boolean] If set to true, this method can be used to override an existing line object definition.
|
110
|
+
#
|
111
|
+
# @raise StandardError if a parameter is of an incorrect type.
|
112
|
+
# @raise StandardError if an instance method already exists for a line object with the same name.
|
113
|
+
# (Suppress with force = true.)
|
114
|
+
#
|
115
|
+
def set_line(name, klas, force = false)
|
116
|
+
raise StandardError, "Name must be a symbol. Given: #{name} (#{name.class})" unless name.instance_of?(Symbol)
|
117
|
+
raise StandardError, "Klas must be a class. Given: #{klas} (#{klas.class})" unless klas.instance_of?(Class)
|
118
|
+
raise StandardError, "Line object is already defined. (Use the 'force = true' option to suppress this error.)" if @lines.include?(name) && ! force
|
119
|
+
instance_variable_set("@#{name}", klas.new(@ole, 1))
|
120
|
+
make_reader(name) unless force
|
121
|
+
@lines << name unless force
|
122
|
+
end
|
123
|
+
alias_method(:line, :set_line)
|
124
|
+
|
102
125
|
# Set screen elements common to most or all pages across the OLE interface.
|
103
126
|
def set_elements
|
104
127
|
# These elements exist outside of any frame, so @browser is used to force
|
@@ -121,5 +144,6 @@ module OLE_QA::Framework
|
|
121
144
|
# @return [Boolean] Whether the logout process succeeded.
|
122
145
|
function(:logout) { logout_button.click ; login_confirmation.present? ? false : true}
|
123
146
|
end
|
147
|
+
|
124
148
|
end
|
125
149
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -15,7 +15,7 @@
|
|
15
15
|
module OLE_QA::Framework
|
16
16
|
|
17
17
|
# Generate usable accounting strings from source files in ole-qa-framework/data/
|
18
|
-
|
18
|
+
module Account_Factory
|
19
19
|
|
20
20
|
account_file = File.open("#{OLE_QA::Framework.data_dir}/accounts.yml",'r')
|
21
21
|
@account_matrix = YAML.load(account_file)
|
@@ -49,4 +49,4 @@ module OLE_QA::Framework
|
|
49
49
|
|
50
50
|
end
|
51
51
|
end
|
52
|
-
end
|
52
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -13,8 +13,8 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
module OLE_QA::Framework
|
16
|
-
# Manufacture strings for bibliographic record testing
|
17
|
-
|
16
|
+
# Manufacture strings for bibliographic, instance, and item record testing
|
17
|
+
module Bib_Factory
|
18
18
|
class << self
|
19
19
|
|
20
20
|
include OLE_QA::Framework::Factory_Helpers
|
@@ -60,6 +60,16 @@ module OLE_QA::Framework
|
|
60
60
|
str << name_builder(last_len.to_i)
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
# Return a hash containing circulation desk and location information.
|
65
|
+
# @note Pass a circulation desk code defined in data/circulation.yml to return
|
66
|
+
# info on a specific circulation desk.
|
67
|
+
def circulation_info(desk_code = '')
|
68
|
+
circ_ary = YAML.load_file(OLE_QA::Framework.data_dir + '/circulation.yml')
|
69
|
+
hsh_out = desk_code.empty? ? circ_ary.sample : circ_ary.find {|circ| circ[:code] == desk_code}
|
70
|
+
raise OLE_QA::Framework::Error,"No circulation desk found.#{ ' Given: ' + desk_code unless desk_code.empty?}" if hsh_out.nil?
|
71
|
+
return hsh_out
|
72
|
+
end
|
63
73
|
end
|
64
74
|
end
|
65
|
-
end
|
75
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -13,8 +13,9 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
module OLE_QA::Framework
|
16
|
-
# This class contains methods to generate assorted metadata.
|
17
|
-
|
16
|
+
# This class contains methods to generate assorted metadata for the OLE application.
|
17
|
+
# {OLE_QA::Framework::Bib_Factory} should be used for creating bibliographic metadata.
|
18
|
+
module Metadata_Factory
|
18
19
|
class << self
|
19
20
|
include OLE_QA::Framework::Factory_Helpers
|
20
21
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2005-
|
1
|
+
# Copyright 2005-2014 The Kuali Foundation
|
2
2
|
#
|
3
3
|
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,12 +14,13 @@
|
|
14
14
|
|
15
15
|
module OLE_QA::Framework
|
16
16
|
# Return usable patron records from source files in ole-qa-framework/data/patron.yml
|
17
|
-
|
17
|
+
module Patron_Factory
|
18
18
|
|
19
19
|
|
20
|
-
@patron_matrix = YAML.
|
21
|
-
@states = YAML.
|
22
|
-
@borrower_types = YAML.
|
20
|
+
@patron_matrix = YAML.load_file("#{OLE_QA::Framework.data_dir}/patron.yml")
|
21
|
+
@states = YAML.load_file("#{OLE_QA::Framework.data_dir}/states.yml")
|
22
|
+
@borrower_types = YAML.load_file("#{OLE_QA::Framework.data_dir}/borrower_types.yml")
|
23
|
+
@country = YAML.load_file("#{OLE_QA::Framework.data_dir}/country.yml")
|
23
24
|
|
24
25
|
class << self
|
25
26
|
|
@@ -35,6 +36,9 @@ module OLE_QA::Framework
|
|
35
36
|
# An array containing a collection of valid borrower types to use for patron records.
|
36
37
|
attr_reader :borrower_types
|
37
38
|
|
39
|
+
# A string containing the country name as it appears in the OLE application.
|
40
|
+
attr_reader :country
|
41
|
+
|
38
42
|
# Return a random patron record.
|
39
43
|
def select_patron
|
40
44
|
@patron_matrix.sample
|
@@ -50,6 +54,7 @@ module OLE_QA::Framework
|
|
50
54
|
patron[:city] = name_builder(sampler(4..12))
|
51
55
|
patron[:state] = @states.sample.upcase
|
52
56
|
patron[:postal_code] = num_str(5)
|
57
|
+
patron[:country] = @country
|
53
58
|
patron[:phone] = num_str(3) + '-' + num_str(3) + '-' + num_str(4)
|
54
59
|
patron[:email] = patron[:first] + patron[:last] + '@' + str(sampler(4..8)) + '.' + str(3)
|
55
60
|
patron
|