spec/support/structural_metadata_helper.rb in ddr-models-2.6.2 vs spec/support/structural_metadata_helper.rb in ddr-models-2.7.0.rc1
- old
+ new
@@ -1,135 +1,306 @@
require 'spec_helper'
def simple_structure_document
- Nokogiri::XML(simple_structure) do |config|
+ Nokogiri::XML(simple_structure_xml) do |config|
config.noblanks
end
end
def nested_structure_document
- Nokogiri::XML(nested_structure) do |config|
+ Nokogiri::XML(nested_structure_xml) do |config|
config.noblanks
end
end
+def nested_structure_mptr_document
+ Nokogiri::XML(nested_structure_mptr_xml) do |config|
+ config.noblanks
+ end
+end
+
def multiple_struct_maps_structure_document
Nokogiri::XML(multiple_struct_maps_structure) do |config|
config.noblanks
end
end
-def simple_structure
+def simple_structure_xml
<<-eos
<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metsHdr>
+ <agent ROLE="CREATOR">
+ <name>Sam Spade</name>
+ </agent>
+ </metsHdr>
+ <fileSec>
+ <fileGrp>
+ <file ID="abc" USE="foo">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ab3" />
+ </file>
+ <file ID="def" USE="bar">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4cd9" />
+ </file>
+ <file ID="ghi" USE="baz">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ef1" />
+ </file>
+ </fileGrp>
+ </fileSec>
<structMap TYPE="default">
<div ORDER="1">
- <fptr CONTENTIDS="info:fedora/test:6" />
+ <fptr FILEID="abc" />
</div>
<div ORDER="2">
- <fptr CONTENTIDS="info:fedora/test:5" />
+ <fptr FILEID="def" />
</div>
<div ORDER="3">
- <fptr CONTENTIDS="info:fedora/test:7" />
+ <fptr FILEID="ghi" />
</div>
</structMap>
</mets>
eos
end
-def nested_structure
+def nested_structure_xml
<<-eos
<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metsHdr>
+ <agent ROLE="CREATOR">
+ <name>Sam Spade</name>
+ </agent>
+ </metsHdr>
+ <fileSec>
+ <fileGrp>
+ <file ID="abc" USE="foo">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ab3" />
+ </file>
+ <file ID="def" USE="bar">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4cd9" />
+ </file>
+ <file ID="ghi" USE="baz">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ef1" />
+ </file>
+ </fileGrp>
+ </fileSec>
<structMap TYPE="default">
<div ORDER="1" LABEL="Front">
- <fptr CONTENTIDS="info:fedora/test:5" />
+ <fptr FILEID="abc" />
</div>
<div ORDER="2" LABEL="Back">
<div ORDER="1" LABEL="Top">
- <fptr CONTENTIDS="info:fedora/test:7" />
- </div>
+ <fptr FILEID="def" />
+ </div>
<div ORDER="2" LABEL="Bottom">
- <fptr CONTENTIDS="info:fedora/test:6" />
- </div>
+ <fptr FILEID="ghi" />
+ </div>
</div>
</structMap>
</mets>
eos
end
+def nested_structure_mptr_xml
+ <<-eos
+ <mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metsHdr>
+ <agent ROLE="CREATOR">
+ <name>Sam Spade</name>
+ </agent>
+ </metsHdr>
+ <structMap TYPE="default">
+ <div ORDER="1" LABEL="Front">
+ <mptr LOCTYPE="ARK" xlink:href="ark:/99999/fk4ab3" />
+ </div>
+ <div ORDER="2" LABEL="Back">
+ <div ORDER="1" LABEL="Top">
+ <mptr LOCTYPE="ARK" xlink:href="ark:/99999/fk4cd9" />
+ </div>
+ <div ORDER="2" LABEL="Bottom">
+ <mptr LOCTYPE="ARK" xlink:href="ark:/99999/fk4ef1" />
+ </div>
+ </div>
+ </structMap>
+ </mets>
+ eos
+end
+
def multiple_struct_maps_structure
<<-eos
<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <fileSec>
+ <fileGrp>
+ <file ID="abc" USE="foo">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ab3" />
+ </file>
+ <file ID="def" USE="bar">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4cd9" />
+ </file>
+ <file ID="ghi" USE="baz">
+ <FLocat LOCTYPE="ARK" xlink:href="ark:/99999/fk4ef1" />
+ </file>
+ </fileGrp>
+ </fileSec>
<structMap TYPE="default">
<div ORDER="1" LABEL="Front">
- <fptr CONTENTIDS="info:fedora/test:5" />
+ <fptr FILEID="abc" />
</div>
<div ORDER="2" LABEL="Back">
<div ORDER="1" LABEL="Top">
- <fptr CONTENTIDS="info:fedora/test:7" />
- </div>
+ <fptr FILEID="def" />
+ </div>
<div ORDER="2" LABEL="Bottom">
- <fptr CONTENTIDS="info:fedora/test:6" />
- </div>
+ <fptr FILEID="ghi" />
+ </div>
</div>
</structMap>
<structMap TYPE="reverse">
<div ORDER="1" LABEL="Back">
<div ORDER="1" LABEL="Bottom">
- <fptr CONTENTIDS="info:fedora/test:6" />
+ <fptr FILEID="ghi" />
</div>
<div ORDER="2" LABEL="Top">
- <fptr CONTENTIDS="info:fedora/test:7" />
- </div>
+ <fptr FILEID="def" />
+ </div>
</div>
<div ORDER="2" LABEL="Front">
- <fptr CONTENTIDS="info:fedora/test:5" />
+ <fptr FILEID="abc" />
</div>
</structMap>
</mets>
eos
end
-def simple_structure_query_response
- [{"system_create_dtsi"=>"2015-06-17T21:04:24Z", "system_modified_dtsi"=>"2015-06-17T21:04:56Z", "object_state_ssi"=>"A", "active_fedora_model_ssi"=>"Component", "id"=>"test:6", "object_profile_ssm"=>["{\"datastreams\":{\"RELS-EXT\":{\"dsLabel\":\"Fedora Object-to-Object Relationship Metadata\",\"dsVersionID\":\"RELS-EXT.1\",\"dsCreateDate\":\"2015-06-17T21:04:56Z\",\"dsState\":\"A\",\"dsMIME\":\"application/rdf+xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"X\",\"dsSize\":408,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:6+RELS-EXT+RELS-EXT.1\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"bf84faa89d6b25924bc06357f7c33347a602e2ec8df9c1020ec98015fe571760\"},\"descMetadata\":{\"dsLabel\":\"Descriptive Metadata for this object\",\"dsVersionID\":\"descMetadata.1\",\"dsCreateDate\":\"2015-06-17T21:04:56Z\",\"dsState\":\"A\",\"dsMIME\":\"application/n-triples\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":70,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:6+descMetadata+descMetadata.1\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"4d227bc972634ba2126eefff207fb3b35f6ff802a210ad7945d2ec60360076dd\"},\"rightsMetadata\":{},\"properties\":{},\"thumbnail\":{},\"adminMetadata\":{},\"content\":{},\"extractedText\":{},\"multiresImage\":{},\"structMetadata\":{}},\"objLabel\":null,\"objOwnerId\":\"fedoraAdmin\",\"objModels\":[\"info:fedora/fedora-system:FedoraObject-3.0\"],\"objCreateDate\":\"2015-06-17T21:04:24Z\",\"objLastModDate\":\"2015-06-17T21:04:24Z\",\"objDissIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A6/methods/fedora-system%3A3/viewMethodIndex\",\"objItemIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A6/methods/fedora-system%3A3/viewItemIndex\",\"objState\":\"A\"}"], "identifier_tesim"=>["abc001"], "is_part_of_ssim"=>["info:fedora/test:2"], "has_model_ssim"=>["info:fedora/afmodel:Component"], "title_ssi"=>"abc001", "internal_uri_ssi"=>"info:fedora/test:6", "identifier_ssi"=>"abc001", "access_role_ssi"=>"[]", "_version_"=>1504261016868880384, "timestamp"=>"2015-06-17T21:04:56.958Z"}, {"system_create_dtsi"=>"2015-06-17T21:03:58Z", "system_modified_dtsi"=>"2015-06-17T21:04:54Z", "object_state_ssi"=>"A", "active_fedora_model_ssi"=>"Component", "id"=>"test:5", "object_profile_ssm"=>["{\"datastreams\":{\"RELS-EXT\":{\"dsLabel\":\"Fedora Object-to-Object Relationship Metadata\",\"dsVersionID\":\"RELS-EXT.1\",\"dsCreateDate\":\"2015-06-17T21:04:54Z\",\"dsState\":\"A\",\"dsMIME\":\"application/rdf+xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"X\",\"dsSize\":408,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:5+RELS-EXT+RELS-EXT.1\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"6a7f1cbe6e435991ae3bba134e52e7a275af8a232b209ac725fa54fdd81bb973\"},\"descMetadata\":{\"dsLabel\":\"Descriptive Metadata for this object\",\"dsVersionID\":\"descMetadata.1\",\"dsCreateDate\":\"2015-06-17T21:04:54Z\",\"dsState\":\"A\",\"dsMIME\":\"application/n-triples\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":70,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:5+descMetadata+descMetadata.1\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"8b106726ca2d39d9a2e187fc9da2e58b25bd3553031012515ae31cf4fbe520e9\"},\"rightsMetadata\":{},\"properties\":{},\"thumbnail\":{},\"adminMetadata\":{},\"content\":{},\"extractedText\":{},\"multiresImage\":{},\"structMetadata\":{}},\"objLabel\":null,\"objOwnerId\":\"fedoraAdmin\",\"objModels\":[\"info:fedora/fedora-system:FedoraObject-3.0\"],\"objCreateDate\":\"2015-06-17T21:03:58Z\",\"objLastModDate\":\"2015-06-17T21:03:58Z\",\"objDissIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A5/methods/fedora-system%3A3/viewMethodIndex\",\"objItemIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A5/methods/fedora-system%3A3/viewItemIndex\",\"objState\":\"A\"}"], "identifier_tesim"=>["abc002"], "is_part_of_ssim"=>["info:fedora/test:2"], "has_model_ssim"=>["info:fedora/afmodel:Component"], "title_ssi"=>"abc002", "internal_uri_ssi"=>"info:fedora/test:5", "identifier_ssi"=>"abc002", "access_role_ssi"=>"[]", "_version_"=>1504261014501195776, "timestamp"=>"2015-06-17T21:04:54.701Z"}, {"system_create_dtsi"=>"2015-06-17T21:04:46Z", "system_modified_dtsi"=>"2015-06-17T21:04:59Z", "object_state_ssi"=>"A", "active_fedora_model_ssi"=>"Component", "id"=>"test:7", "object_profile_ssm"=>["{\"datastreams\":{\"RELS-EXT\":{\"dsLabel\":\"Fedora Object-to-Object Relationship Metadata\",\"dsVersionID\":\"RELS-EXT.1\",\"dsCreateDate\":\"2015-06-17T21:04:59Z\",\"dsState\":\"A\",\"dsMIME\":\"application/rdf+xml\",\"dsFormatURI\":null,\"dsControlGroup\":\"X\",\"dsSize\":408,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:7+RELS-EXT+RELS-EXT.1\",\"dsLocationType\":null,\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"cb385ff9a55b5fe24e8c2a8159fc928e3ee582ef312955132d34282676102a6a\"},\"descMetadata\":{\"dsLabel\":\"Descriptive Metadata for this object\",\"dsVersionID\":\"descMetadata.1\",\"dsCreateDate\":\"2015-06-17T21:04:59Z\",\"dsState\":\"A\",\"dsMIME\":\"application/n-triples\",\"dsFormatURI\":null,\"dsControlGroup\":\"M\",\"dsSize\":70,\"dsVersionable\":true,\"dsInfoType\":null,\"dsLocation\":\"test:7+descMetadata+descMetadata.1\",\"dsLocationType\":\"INTERNAL_ID\",\"dsChecksumType\":\"SHA-256\",\"dsChecksum\":\"523ee1e5d55d188bd17b2789e4c9109c8f9d0170b63af1219de8a74d4f32966a\"},\"rightsMetadata\":{},\"properties\":{},\"thumbnail\":{},\"adminMetadata\":{},\"content\":{},\"extractedText\":{},\"multiresImage\":{},\"structMetadata\":{}},\"objLabel\":null,\"objOwnerId\":\"fedoraAdmin\",\"objModels\":[\"info:fedora/fedora-system:FedoraObject-3.0\"],\"objCreateDate\":\"2015-06-17T21:04:46Z\",\"objLastModDate\":\"2015-06-17T21:04:46Z\",\"objDissIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A7/methods/fedora-system%3A3/viewMethodIndex\",\"objItemIndexViewURL\":\"http://localhost:8983/fedora/objects/test%3A7/methods/fedora-system%3A3/viewItemIndex\",\"objState\":\"A\"}"], "identifier_tesim"=>["abc003"], "is_part_of_ssim"=>["info:fedora/test:2"], "has_model_ssim"=>["info:fedora/afmodel:Component"], "title_ssi"=>"abc003", "internal_uri_ssi"=>"info:fedora/test:7", "identifier_ssi"=>"abc003", "access_role_ssi"=>"[]", "_version_"=>1504261019487174656, "timestamp"=>"2015-06-17T21:04:59.455Z"}]
+def simple_structure_dereferenced_hash
+ yaml = <<-eos
+ default:
+ :type: 'default'
+ :contents:
+ - :order: '1'
+ :contents:
+ - :repo_id: 'test:7'
+ :use: 'foo'
+ - :order: '2'
+ :contents:
+ - :repo_id: 'test:8'
+ :use: 'bar'
+ - :order: '3'
+ :contents:
+ - :repo_id: 'test:9'
+ :use: 'baz'
+ eos
+ YAML.load(yaml)
end
-def simple_structure_to_json
- j = <<-eos
- {\"default\":
- {\"type\":\"default\",
- \"divs\":[{\"order\":\"1\",\"fptrs\":[\"test:6\"],\"divs\":[]},
- {\"order\":\"2\",\"fptrs\":[\"test:5\"],\"divs\":[]},
- {\"order\":\"3\",\"fptrs\":[\"test:7\"],\"divs\":[]}
- ]
- }
- }
+def nested_structure_dereferenced_hash
+ yaml = <<-eos
+ default:
+ :type: 'default'
+ :contents:
+ - :label: 'Front'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:7'
+ :use: 'foo'
+ - :label: 'Back'
+ :order: '2'
+ :contents:
+ - :label: 'Top'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:8'
+ :use: 'bar'
+ - :label: 'Bottom'
+ :order: '2'
+ :contents:
+ - :repo_id: 'test:9'
+ :use: 'baz'
eos
- j.gsub(/\s+/, "")
+ YAML.load(yaml)
end
-def multiple_struct_maps_structure_to_json
- j = <<-eos
- {\"default\":
- {\"type\":\"default\",
- \"divs\":[{\"label\":\"Front\",\"order\":\"1\",\"fptrs\":[\"test:5\"],\"divs\":[]},
- {\"label\":\"Back\",\"order\":\"2\",\"fptrs\":[],
- \"divs\":[{\"label\":\"Top\",\"order\":\"1\",\"fptrs\":[\"test:7\"],\"divs\":[]},
- {\"label\":\"Bottom\",\"order\":\"2\",\"fptrs\":[\"test:6\"],\"divs\":[]}
- ]
- }
- ]
- },
- \"reverse\":
- {\"type\":\"reverse\",
- \"divs\":[{\"label\":\"Back\",\"order\":\"1\",\"fptrs\":[],
- \"divs\":[{\"label\":\"Bottom\",\"order\":\"1\",\"fptrs\":[\"test:6\"],\"divs\":[]},
- {\"label\":\"Top\",\"order\":\"2\",\"fptrs\":[\"test:7\"],\"divs\":[]}
- ]
- },
- {\"label\":\"Front\",\"order\":\"2\",\"fptrs\":[\"test:5\"],\"divs\":[]}
- ]
- }
- }
+def nested_structure_mptr_dereferenced_hash
+ yaml = <<-eos
+ default:
+ :type: 'default'
+ :contents:
+ - :label: 'Front'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:7'
+ - :label: 'Back'
+ :order: '2'
+ :contents:
+ - :label: 'Top'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:8'
+ - :label: 'Bottom'
+ :order: '2'
+ :contents:
+ - :repo_id: 'test:9'
eos
- j.gsub(/\s+/, "")
-end
\ No newline at end of file
+ YAML.load(yaml)
+end
+
+def multiple_struct_maps_structure_dereferenced_hash
+ yaml = <<-eos
+ default:
+ :type: 'default'
+ :contents:
+ - :label: 'Front'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:7'
+ :use: 'foo'
+ - :label: 'Back'
+ :order: '2'
+ :contents:
+ - :label: 'Top'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:8'
+ :use: 'bar'
+ - :label: 'Bottom'
+ :order: '2'
+ :contents:
+ - :repo_id: 'test:9'
+ :use: 'baz'
+ reverse:
+ :type: 'reverse'
+ :contents:
+ - :label: 'Back'
+ :order: '1'
+ :contents:
+ - :label: 'Bottom'
+ :order: '1'
+ :contents:
+ - :repo_id: 'test:9'
+ :use: 'baz'
+ - :label: 'Top'
+ :order: '2'
+ :contents:
+ - :repo_id: 'test:8'
+ :use: 'bar'
+ - :label: 'Front'
+ :order: '2'
+ :contents:
+ - :repo_id: 'test:7'
+ :use: 'foo'
+ eos
+ YAML.load(yaml)
+end
+
+def simple_structure_to_json
+ simple_structure_dereferenced_hash.to_json
+end
+
+def nested_structure_to_json
+ nested_structure_dereferenced_hash.to_json
+end
+
+def nested_structure_mptr_to_json
+ nested_structure_mptr_dereferenced_hash.to_json
+end
+
+def multiple_struct_maps_structure_to_json
+ multiple_struct_maps_structure_dereferenced_hash.to_json
+end