cul-fedora-arm 0.5.1
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.
- data/.buildpath +6 -0
- data/.document +5 -0
- data/.gitignore +6 -0
- data/.loadpath +5 -0
- data/.project +17 -0
- data/LICENSE +20 -0
- data/README.rdoc +29 -0
- data/Rakefile +60 -0
- data/VERSION +1 -0
- data/cul-fedora-arm.gemspec +92 -0
- data/lib/cul-fedora-arm.rb +6 -0
- data/lib/cul/fedora/.rb +0 -0
- data/lib/cul/fedora/arm/builder.rb +230 -0
- data/lib/cul/fedora/arm/foxml_builder.rb +300 -0
- data/lib/cul/fedora/arm/tasks.rb +106 -0
- data/lib/cul/fedora/connector.rb +64 -0
- data/lib/cul/fedora/image/image.rb +353 -0
- data/test/cul_fedora_arm_builder_test.rb +372 -0
- data/test/cul_fedora_arm_tasks_test.rb +59 -0
- data/test/cul_fedora_image_test.rb +117 -0
- data/test/factories.rb +1 -0
- data/test/fixtures/case1/builder-template-noheader.txt +6 -0
- data/test/fixtures/case1/builder-template.txt +7 -0
- data/test/fixtures/case2/builder-template.txt +3 -0
- data/test/fixtures/case3/builder-template.txt +2 -0
- data/test/fixtures/case3/test001.bmp +0 -0
- data/test/fixtures/case3/test001.gif +0 -0
- data/test/fixtures/case3/test001.jpg +0 -0
- data/test/fixtures/case3/test001.png +0 -0
- data/test/fixtures/case3/test001.tiff +0 -0
- data/test/fixtures/case4/builder-template.txt +2 -0
- data/test/fixtures/case4/test-mods.xml +6 -0
- data/test/helpers/soap_inputs.rb +38 -0
- data/test/helpers/template_builder.rb +4 -0
- data/test/test_helper.rb +17 -0
- metadata +135 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'net/http'
|
3
|
+
require 'net/https'
|
4
|
+
|
5
|
+
class CulFedoraArmTasksTest < Test::Unit::TestCase
|
6
|
+
context "Given the 'test_config' fedora instance " do
|
7
|
+
setup do
|
8
|
+
@connector = Cul::Fedora::Connector.parse(YAML::load_file("private/fedora-config.yml"))["test_config"]
|
9
|
+
end
|
10
|
+
|
11
|
+
should "build a connector properly" do
|
12
|
+
assert_kind_of Cul::Fedora::Connector, @connector
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
context "test next pid(s) reservation task on localhost" do
|
17
|
+
setup do
|
18
|
+
@numPids = 3
|
19
|
+
@ns = "test"
|
20
|
+
@task = Cul::Fedora::Arm::Tasks::ReservePidsTask.new(@numPids,@ns)
|
21
|
+
end
|
22
|
+
should "return expected output when executed" do
|
23
|
+
assert_nothing_raised [(response = @task.post(@connector))] do
|
24
|
+
end
|
25
|
+
assert_equal @numPids, response.pid.length
|
26
|
+
response.pid.each {|p| assert_equal 0, p.index(@ns)}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
context "test metadata update SOAP message generation" do
|
30
|
+
setup do
|
31
|
+
@task = Cul::Fedora::Arm::Tasks::UpdateMODSTask.new("test:13","CONTENT",METADATA_MODS_TEST)
|
32
|
+
@expectedInput = MODIFY_MODS_SOAP_MESSAGE
|
33
|
+
@expectedOutput
|
34
|
+
end
|
35
|
+
end
|
36
|
+
context "test DC metadata update against local host" do
|
37
|
+
setup do
|
38
|
+
@pid = 'ldpd:1'
|
39
|
+
@src = DateTime.new().strftime("dublincore-%Y%m%dT%H%M%S.xml")
|
40
|
+
@expectedInput = sprintf(METADATA_DC_TEST, @src)
|
41
|
+
@task = Cul::Fedora::Arm::Tasks::UpdateDCTask.new(@pid,@expectedInput)
|
42
|
+
end
|
43
|
+
should "match expected SOAP output" do
|
44
|
+
assert_nothing_raised [(response = @task.post(@connector))] do
|
45
|
+
end
|
46
|
+
modifiedDate = DateTime.parse(response.modifiedDate)
|
47
|
+
now = DateTime.new()
|
48
|
+
diff = now - modifiedDate
|
49
|
+
assert diff < 2 # assert that the update time was within a couple of seconds
|
50
|
+
end
|
51
|
+
should "have updated the datastream correctly" do
|
52
|
+
@connector.rest_interface do |http|
|
53
|
+
response = http.get("/fedora/get/#{@pid}/DC")
|
54
|
+
assert response.body.rindex("<dc:source>#{@src}</dc:source>")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class CulFedoraImageTest < Test::Unit::TestCase
|
3
|
+
include Cul::Fedora::Image
|
4
|
+
TEST = 'test'
|
5
|
+
CASE1 = "#{TEST}/fixtures/case1"
|
6
|
+
CASE2 = "#{TEST}/fixtures/case2"
|
7
|
+
CASE3 = "#{TEST}/fixtures/case3"
|
8
|
+
def initialize(test_method_name)
|
9
|
+
super(test_method_name)
|
10
|
+
end
|
11
|
+
context "image library given a bitmap" do
|
12
|
+
setup do
|
13
|
+
@src = "#{CASE3}/test001.bmp"
|
14
|
+
@expected = {}
|
15
|
+
@expected[:width] = 373
|
16
|
+
@expected[:length] = 156
|
17
|
+
@expected[:size] = 174858
|
18
|
+
@expected[:mime] = 'image/bmp'
|
19
|
+
@expected[:sampling_unit] = :cm
|
20
|
+
@expected[:x_sampling] = 29
|
21
|
+
@expected[:y_sampling] = 29
|
22
|
+
@expected
|
23
|
+
# @expected[:bitdepth] = 24
|
24
|
+
end
|
25
|
+
should "correctly identify properties" do
|
26
|
+
actual = analyze_image(@src)
|
27
|
+
actual
|
28
|
+
assert_equal @expected, actual
|
29
|
+
end
|
30
|
+
teardown do
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
context "image library given a PNG" do
|
35
|
+
setup do
|
36
|
+
@src = "#{CASE3}/test001.png"
|
37
|
+
@expected = {}
|
38
|
+
@expected[:width] = 512
|
39
|
+
@expected[:length] = 512
|
40
|
+
@expected[:size] = 675412
|
41
|
+
@expected
|
42
|
+
# @expected[:bitdepth] = 32
|
43
|
+
end
|
44
|
+
should "correctly identify properties" do
|
45
|
+
actual = analyze_image(@src,true)
|
46
|
+
actual
|
47
|
+
assert_equal @expected, actual
|
48
|
+
end
|
49
|
+
teardown do
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
context "image library given a JPEG" do
|
54
|
+
setup do
|
55
|
+
@src = "#{CASE3}/test001.jpg"
|
56
|
+
@expected = {}
|
57
|
+
@expected[:width] = 313
|
58
|
+
@expected[:length] = 234
|
59
|
+
@expected[:x_sampling] = 72
|
60
|
+
@expected[:y_sampling] = 72
|
61
|
+
@expected[:size] = 15138
|
62
|
+
@expected[:mime] = 'image/jpeg'
|
63
|
+
@expected
|
64
|
+
end
|
65
|
+
should "correctly identify properties" do
|
66
|
+
actual = analyze_image(@src,false)
|
67
|
+
actual
|
68
|
+
assert_equal @expected, actual
|
69
|
+
end
|
70
|
+
teardown do
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
context "image library given a GIF" do
|
75
|
+
setup do
|
76
|
+
@src = "#{CASE3}/test001.gif"
|
77
|
+
@expected = {}
|
78
|
+
@expected[:width] = 492
|
79
|
+
@expected[:length] = 1392
|
80
|
+
@expected[:size] = 474706
|
81
|
+
@expected[:mime] = 'image/gif'
|
82
|
+
@expected
|
83
|
+
end
|
84
|
+
should "correctly identify properties" do
|
85
|
+
actual = analyze_image(@src)
|
86
|
+
actual
|
87
|
+
assert_equal @expected, actual
|
88
|
+
end
|
89
|
+
teardown do
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
context "image library given a TIFF" do
|
94
|
+
setup do
|
95
|
+
@src = "#{CASE3}/test001.tiff"
|
96
|
+
@expected = {}
|
97
|
+
@expected[:width] = 2085
|
98
|
+
@expected[:length] = 1470
|
99
|
+
@expected[:size] = 5658702
|
100
|
+
@expected[:x_sampling] = 600
|
101
|
+
@expected[:y_sampling] = 600
|
102
|
+
@expected[:mime] = 'image/tiff'
|
103
|
+
@expected[:sampling_unit] = :inch
|
104
|
+
@expected
|
105
|
+
# @expected['compression'] = LSW
|
106
|
+
# @expected[:bitdepth] = 24
|
107
|
+
end
|
108
|
+
should "correctly identify properties" do
|
109
|
+
actual = analyze_image(@src)
|
110
|
+
actual
|
111
|
+
assert_equal @expected, actual
|
112
|
+
end
|
113
|
+
teardown do
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
data/test/factories.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "cul-fedora-arm"
|
@@ -0,0 +1,6 @@
|
|
1
|
+
0 collection:1;ac:5 Aggregator Content InteractiveResource AC:P:5001 insert license:by-nc-nd
|
2
|
+
1 0 Resource /01-Northover_IPD_SovDebt_Working_Paper.pdf Text insert license:by-nc-nd
|
3
|
+
2 0 Metadata /test-0001.xml MODS Text insert license:by-nc-nd
|
4
|
+
4 collection:1;ac:5 Aggregator Content InteractiveResource AC:P:5002 insert license:by-nc-nd
|
5
|
+
6 4 Metadata /test-0002.xml MODS Text insert license:by-nc-nd
|
6
|
+
7 4 Resource /02-851.pdf Text insert license:by-nc-nd
|
@@ -0,0 +1,7 @@
|
|
1
|
+
sequence target model_type source template_type dc_format id pid action license
|
2
|
+
0 collection:1;ac:5 Aggregator Content InteractiveResource AC:P:5001 insert license:by-nc-nd
|
3
|
+
1 0 Resource /01-Northover_IPD_SovDebt_Working_Paper.pdf Text insert license:by-nc-nd
|
4
|
+
2 0 Metadata /test-0001.xml MODS Text insert license:by-nc-nd
|
5
|
+
4 collection:1;ac:5 Aggregator Content InteractiveResource AC:P:5002 insert license:by-nc-nd
|
6
|
+
6 4 Metadata /test-0002.xml MODS Text insert license:by-nc-nd
|
7
|
+
7 4 Resource /02-851.pdf Text insert license:by-nc-nd
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd">
|
2
|
+
<identifier type="local">test.identifier.1</identifier>
|
3
|
+
<titleInfo displayLabel="Supplied title">
|
4
|
+
<title>test record title</title>
|
5
|
+
</titleInfo>
|
6
|
+
</mods>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'base64'
|
2
|
+
|
3
|
+
METADATA_MODS_TEST = <<METADATA
|
4
|
+
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd">
|
5
|
+
<identifier type="local">test.identifier.1</identifier>
|
6
|
+
<titleInfo displayLabel="Supplied title">
|
7
|
+
<title>%s</title>
|
8
|
+
</titleInfo>
|
9
|
+
</mods>
|
10
|
+
METADATA
|
11
|
+
# >>
|
12
|
+
|
13
|
+
METADATA_DC_TEST = <<METADATA
|
14
|
+
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" >
|
15
|
+
<dc:title>Test Input Data</dc:title>
|
16
|
+
<dc:creator>BATCH</dc:creator>
|
17
|
+
<dc:type>Text</dc:type>
|
18
|
+
<dc:format>text/xml</dc:format>
|
19
|
+
<dc:publisher>Columbia University Libraries</dc:publisher>
|
20
|
+
<dc:identifier>test.identifier.1</dc:identifier>
|
21
|
+
<dc:source>%s</dc:source>
|
22
|
+
</oai_dc:dc>
|
23
|
+
METADATA
|
24
|
+
# >>
|
25
|
+
|
26
|
+
NEXT_PIDS_SOAP_MESSAGE = <<NEXT_PID
|
27
|
+
<?xml version="1.0" encoding="utf-8"?>
|
28
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
29
|
+
<soap:Body>
|
30
|
+
<getNextPID xmlns="http://www.fedora.info/definitions/1/0/api/">
|
31
|
+
<numPIDs>13</numPIDs>
|
32
|
+
<pidNamespace>test</pidNamespace>
|
33
|
+
</getNextPID>
|
34
|
+
</soap:Body>
|
35
|
+
</soap:Envelope>
|
36
|
+
NEXT_PID
|
37
|
+
# >>
|
38
|
+
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'shoulda'
|
4
|
+
require 'factory_girl'
|
5
|
+
require 'activesupport'
|
6
|
+
require 'helpers/soap_inputs'
|
7
|
+
require 'helpers/template_builder'
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
+
$LOAD_PATH.unshift('./lib')
|
11
|
+
$LOAD_PATH.unshift('./test')
|
12
|
+
|
13
|
+
require 'cul-fedora-arm'
|
14
|
+
require 'cul/fedora/image/image'
|
15
|
+
class ActiveSupport::TestCase
|
16
|
+
end
|
17
|
+
|
metadata
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cul-fedora-arm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Stuart
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-10-21 00:00:00 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: thoughtbot-shoulda
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thoughtbot-factory_girl
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: activesupport
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: ruby-fedora
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
description: Tools for dealing with Cul ARM specification
|
56
|
+
email: tastyhat@jamesstuart.org
|
57
|
+
executables: []
|
58
|
+
|
59
|
+
extensions: []
|
60
|
+
|
61
|
+
extra_rdoc_files:
|
62
|
+
- LICENSE
|
63
|
+
- README.rdoc
|
64
|
+
files:
|
65
|
+
- .buildpath
|
66
|
+
- .document
|
67
|
+
- .gitignore
|
68
|
+
- .loadpath
|
69
|
+
- .project
|
70
|
+
- LICENSE
|
71
|
+
- README.rdoc
|
72
|
+
- Rakefile
|
73
|
+
- VERSION
|
74
|
+
- cul-fedora-arm.gemspec
|
75
|
+
- lib/cul-fedora-arm.rb
|
76
|
+
- lib/cul/fedora/.rb
|
77
|
+
- lib/cul/fedora/arm/builder.rb
|
78
|
+
- lib/cul/fedora/arm/foxml_builder.rb
|
79
|
+
- lib/cul/fedora/arm/tasks.rb
|
80
|
+
- lib/cul/fedora/connector.rb
|
81
|
+
- lib/cul/fedora/image/image.rb
|
82
|
+
- test/cul_fedora_arm_builder_test.rb
|
83
|
+
- test/cul_fedora_arm_tasks_test.rb
|
84
|
+
- test/cul_fedora_image_test.rb
|
85
|
+
- test/factories.rb
|
86
|
+
- test/fixtures/case1/builder-template-noheader.txt
|
87
|
+
- test/fixtures/case1/builder-template.txt
|
88
|
+
- test/fixtures/case2/builder-template.txt
|
89
|
+
- test/fixtures/case3/builder-template.txt
|
90
|
+
- test/fixtures/case3/test001.bmp
|
91
|
+
- test/fixtures/case3/test001.gif
|
92
|
+
- test/fixtures/case3/test001.jpg
|
93
|
+
- test/fixtures/case3/test001.png
|
94
|
+
- test/fixtures/case3/test001.tiff
|
95
|
+
- test/fixtures/case4/builder-template.txt
|
96
|
+
- test/fixtures/case4/test-mods.xml
|
97
|
+
- test/helpers/soap_inputs.rb
|
98
|
+
- test/helpers/template_builder.rb
|
99
|
+
- test/test_helper.rb
|
100
|
+
has_rdoc: true
|
101
|
+
homepage: http://github.com/tastyhat/cul-fedora-arm
|
102
|
+
licenses: []
|
103
|
+
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options:
|
106
|
+
- --charset=UTF-8
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: "0"
|
114
|
+
version:
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: "0"
|
120
|
+
version:
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.3.5
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: Tools for dealing with Cul ARM specification
|
128
|
+
test_files:
|
129
|
+
- test/cul_fedora_arm_builder_test.rb
|
130
|
+
- test/cul_fedora_arm_tasks_test.rb
|
131
|
+
- test/cul_fedora_image_test.rb
|
132
|
+
- test/factories.rb
|
133
|
+
- test/helpers/soap_inputs.rb
|
134
|
+
- test/helpers/template_builder.rb
|
135
|
+
- test/test_helper.rb
|