eadcodec 0.0.4 → 0.1.0
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/Rakefile +12 -5
- data/lib/eadcodec.rb +76 -1
- data/lib/elements/accessrestrict.rb +12 -0
- data/lib/elements/accruals.rb +11 -0
- data/lib/elements/acqinfo.rb +12 -0
- data/lib/elements/altformavail.rb +12 -0
- data/lib/elements/appraisal.rb +11 -0
- data/lib/elements/archdesc.rb +32 -0
- data/lib/elements/arrangement.rb +11 -0
- data/lib/elements/bibliography.rb +12 -0
- data/lib/elements/bioghist.rb +11 -0
- data/lib/elements/c.rb +65 -0
- data/lib/elements/chronitem.rb +12 -0
- data/lib/elements/chronlist.rb +12 -0
- data/lib/elements/container.rb +13 -0
- data/lib/elements/controlaccess.rb +10 -0
- data/lib/elements/creation.rb +4 -0
- data/lib/elements/custodhist.rb +11 -0
- data/lib/elements/date.rb +14 -0
- data/lib/elements/defitem.rb +10 -0
- data/lib/elements/description.rb +10 -0
- data/lib/elements/dimensions.rb +13 -0
- data/lib/elements/dsc.rb +21 -0
- data/lib/elements/ead.rb +39 -0
- data/lib/elements/eadheader.rb +28 -0
- data/lib/elements/event.rb +9 -0
- data/lib/elements/extent.rb +13 -0
- data/lib/elements/filedesc.rb +13 -0
- data/lib/elements/fileplan.rb +10 -0
- data/lib/elements/geogname.rb +16 -0
- data/lib/elements/head.rb +11 -0
- data/lib/elements/id.rb +12 -0
- data/lib/elements/item.rb +9 -0
- data/lib/elements/label.rb +9 -0
- data/lib/elements/langmaterial.rb +12 -0
- data/lib/elements/language.rb +20 -0
- data/lib/elements/list.rb +13 -0
- data/lib/elements/materialspec.rb +13 -0
- data/lib/elements/name.rb +15 -0
- data/lib/elements/note.rb +15 -0
- data/lib/elements/odd.rb +13 -0
- data/lib/elements/originalsloc.rb +12 -0
- data/lib/elements/origination.rb +12 -0
- data/lib/elements/otherfindaid.rb +11 -0
- data/lib/elements/p.rb +10 -0
- data/lib/elements/physdesc.rb +14 -0
- data/lib/elements/physfacet.rb +16 -0
- data/lib/elements/physloc.rb +14 -0
- data/lib/elements/phystech.rb +11 -0
- data/lib/elements/processinfo.rb +11 -0
- data/lib/elements/profiledesc.rb +10 -0
- data/lib/elements/relatedmaterial.rb +12 -0
- data/lib/elements/repository.rb +12 -0
- data/lib/elements/scopecontent.rb +12 -0
- data/lib/elements/subtitle.rb +4 -0
- data/lib/elements/titlestmt.rb +12 -0
- data/lib/elements/unitdate.rb +7 -0
- data/lib/elements/unitid.rb +16 -0
- data/lib/elements/unittitle.rb +13 -0
- data/lib/elements/userestrict.rb +12 -0
- data/test/{TestEADDescription.rb → description_test.rb} +27 -26
- data/test/{TestEADDocument.rb → document_test.rb} +2 -2
- data/test/level_test.rb +75 -0
- data/test/note_test.rb +36 -0
- data/test/partial_export_test.rb +63 -0
- data/test/phystech_test.rb +45 -0
- data/test/scopecontent_test.rb +41 -0
- data/test/{TestEADSubordinates.rb → subordinates_test.rb} +7 -8
- data/test/{TestEADSubtitle.rb → subtitle_test.rb} +5 -6
- data/test/test_helper.rb +45 -0
- data/test/xmlsoparser_test.rb +119 -0
- metadata +72 -50
- data/lib/EAD.rb +0 -229
- data/lib/EADAcqInfo.rb +0 -13
- data/lib/EADAltFormAvail.rb +0 -13
- data/lib/EADAppraisal.rb +0 -12
- data/lib/EADArrangement.rb +0 -12
- data/lib/EADBiogHist.rb +0 -10
- data/lib/EADChronList.rb +0 -27
- data/lib/EADContainer.rb +0 -15
- data/lib/EADControlAccess.rb +0 -12
- data/lib/EADCustodHist.rb +0 -12
- data/lib/EADDate.rb +0 -24
- data/lib/EADDescription.rb +0 -22
- data/lib/EADDimensions.rb +0 -15
- data/lib/EADDocument.rb +0 -106
- data/lib/EADEvent.rb +0 -11
- data/lib/EADExtent.rb +0 -15
- data/lib/EADFilePlan.rb +0 -12
- data/lib/EADGeogName.rb +0 -15
- data/lib/EADHeader.rb +0 -70
- data/lib/EADLabel.rb +0 -11
- data/lib/EADLang.rb +0 -42
- data/lib/EADLevel.rb +0 -73
- data/lib/EADList.rb +0 -36
- data/lib/EADMaterialSpec.rb +0 -14
- data/lib/EADName.rb +0 -17
- data/lib/EADNote.rb +0 -24
- data/lib/EADOtherFindAid.rb +0 -12
- data/lib/EADPhysFacet.rb +0 -17
- data/lib/EADPhysTech.rb +0 -16
- data/lib/EADProcessInfo.rb +0 -13
- data/lib/EADProfileDesc.rb +0 -17
- data/lib/EADRelatedMaterial.rb +0 -21
- data/lib/EADRepository.rb +0 -13
- data/lib/EADScopeContent.rb +0 -21
- data/lib/EADSubordinates.rb +0 -29
- data/lib/EADSubtitle.rb +0 -8
- data/test/TestEAD.rb +0 -50
- data/test/TestEADLevel.rb +0 -76
- data/test/TestEADNote.rb +0 -36
- data/test/TestEADPhysTech.rb +0 -44
- data/test/TestEADScopeContent.rb +0 -43
- data/test/TestPartialExport.rb +0 -61
- data/test/TestXMLStreamObjectParser.rb +0 -126
data/lib/EADRelatedMaterial.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module EAD
|
|
2
|
-
class EADRelatedMaterial < EADElement
|
|
3
|
-
elname "relatedmaterial"
|
|
4
|
-
|
|
5
|
-
xmlattr :altrender
|
|
6
|
-
xmlattr :audience
|
|
7
|
-
xmlattr :encodinganalog
|
|
8
|
-
xmlattr :id
|
|
9
|
-
|
|
10
|
-
xmlsubel :head
|
|
11
|
-
xmlsubel_mult :p
|
|
12
|
-
|
|
13
|
-
def value
|
|
14
|
-
str = ""
|
|
15
|
-
p.each do |par|
|
|
16
|
-
str += "<p>"+par.value+"</p>\n"
|
|
17
|
-
end
|
|
18
|
-
str
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
data/lib/EADRepository.rb
DELETED
data/lib/EADScopeContent.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module EAD
|
|
2
|
-
class EADScopeContent < EADElement
|
|
3
|
-
elname "scopecontent"
|
|
4
|
-
|
|
5
|
-
xmlattr :altrender
|
|
6
|
-
xmlattr :audience
|
|
7
|
-
xmlattr :encodinganalog
|
|
8
|
-
xmlattr :id
|
|
9
|
-
|
|
10
|
-
xmlsubel :head
|
|
11
|
-
xmlsubel_mult :p
|
|
12
|
-
|
|
13
|
-
def value
|
|
14
|
-
str = ""
|
|
15
|
-
p.each do |par|
|
|
16
|
-
str += "<p>"+par.value+"</p>\n"
|
|
17
|
-
end
|
|
18
|
-
str
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
data/lib/EADSubordinates.rb
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
require "EAD.rb"
|
|
2
|
-
|
|
3
|
-
module EAD
|
|
4
|
-
class EADSubordinates < EADElement
|
|
5
|
-
elname "dsc"
|
|
6
|
-
|
|
7
|
-
include EADLevels
|
|
8
|
-
|
|
9
|
-
xmlattr :altrender
|
|
10
|
-
xmlattr :audience
|
|
11
|
-
xmlattr :encondinganalog
|
|
12
|
-
xmlattr :id
|
|
13
|
-
xmlattr :othertype
|
|
14
|
-
xmlattr :tpattern
|
|
15
|
-
xmlattr :type
|
|
16
|
-
|
|
17
|
-
xmlsubel :head
|
|
18
|
-
xmlsubel_mult :p
|
|
19
|
-
xmlsubel_mult :c
|
|
20
|
-
|
|
21
|
-
def description_level
|
|
22
|
-
0
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def unnumbered?
|
|
26
|
-
false
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
data/lib/EADSubtitle.rb
DELETED
data/test/TestEAD.rb
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), "..")
|
|
2
|
-
$-w = true
|
|
3
|
-
|
|
4
|
-
require 'EAD'
|
|
5
|
-
require 'test/unit'
|
|
6
|
-
require 'XMLUtils'
|
|
7
|
-
|
|
8
|
-
class TestEAD < Test::Unit::TestCase
|
|
9
|
-
def initialize(*args)
|
|
10
|
-
super(*args)
|
|
11
|
-
@test_file = nil
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def setup
|
|
15
|
-
@ead = EAD::EADDocument.new("1", "Teste")
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def export
|
|
19
|
-
@ead.export(@test_file)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def import
|
|
23
|
-
@ead = EAD::EADDocument.from_file(@test_file)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def validate_well_formed
|
|
27
|
-
assert(system("rxp", "-xs", @test_file))
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def validate_dtd
|
|
31
|
-
assert(system("rxp", "-VVs", @test_file))
|
|
32
|
-
#assert(system("xmlstarlet", "val", "-d", "ead.dtd", @test_file))
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def test_fake
|
|
36
|
-
#Just a fake test to fool Unit::TestCase
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def compare_xpath(value, path)
|
|
40
|
-
assert_equal(value, select(path))
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def element_exists(xpath, *args)
|
|
44
|
-
assert(XMLUtils::element_exists(xpath, @test_file), *args)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def select(xpath)
|
|
48
|
-
XMLUtils::select_path(xpath, @test_file)
|
|
49
|
-
end
|
|
50
|
-
end
|
data/test/TestEADLevel.rb
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
require "TestEAD"
|
|
2
|
-
require "EADSubordinates"
|
|
3
|
-
require "EADLevel"
|
|
4
|
-
|
|
5
|
-
class TestEADLevel < TestEAD
|
|
6
|
-
def initialize(*args)
|
|
7
|
-
super(*args)
|
|
8
|
-
|
|
9
|
-
@test_file = "test_ead_level.xml"
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def test_attrs
|
|
13
|
-
dsc = EAD::EADSubordinates.new
|
|
14
|
-
@ead.add_descelem(dsc)
|
|
15
|
-
|
|
16
|
-
c01 = EAD::EADLevel.new
|
|
17
|
-
c01.did = EAD::EADDescription.new
|
|
18
|
-
c01.phystech = EAD::EADPhysTech.new
|
|
19
|
-
dsc.add_level(c01)
|
|
20
|
-
|
|
21
|
-
c02 = EAD::EADLevel.new
|
|
22
|
-
c01.add_level(c02)
|
|
23
|
-
|
|
24
|
-
c03 = EAD::EADLevel.new
|
|
25
|
-
c02.add_level(c03)
|
|
26
|
-
|
|
27
|
-
export
|
|
28
|
-
element_exists("/ead/archdesc/dsc/c01", "Check that the level was added")
|
|
29
|
-
element_exists("/ead/archdesc/dsc/c01/did", "Check that the description was added")
|
|
30
|
-
element_exists("/ead/archdesc/dsc/c01/phystech", "Check that the phystech was added")
|
|
31
|
-
element_exists("/ead/archdesc/dsc/c01/c02", "Check that the second level was added")
|
|
32
|
-
element_exists("/ead/archdesc/dsc/c01/c02/c03", "Check that the third level was added")
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def test_import
|
|
36
|
-
import
|
|
37
|
-
dsc = @ead.descelems[0]
|
|
38
|
-
assert(dsc.levels[0], "Check that the level was imported")
|
|
39
|
-
assert(dsc.levels[0].did, "Check that the description was imported")
|
|
40
|
-
assert(dsc.levels[0].levels[0], "Check that the second level was imported")
|
|
41
|
-
assert(dsc.levels[0].levels[0].levels[0], "Check that the third level was imported")
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def test_attrs_unnumbered
|
|
45
|
-
dsc = EAD::EADSubordinates.new
|
|
46
|
-
@ead.add_descelem(dsc)
|
|
47
|
-
|
|
48
|
-
c01 = EAD::EADLevel.new
|
|
49
|
-
c01.set_unnumbered
|
|
50
|
-
c01.did = EAD::EADDescription.new
|
|
51
|
-
c01.phystech = EAD::EADPhysTech.new
|
|
52
|
-
dsc.add_level(c01)
|
|
53
|
-
|
|
54
|
-
c02 = EAD::EADLevel.new
|
|
55
|
-
c01.add_level(c02)
|
|
56
|
-
|
|
57
|
-
c03 = EAD::EADLevel.new
|
|
58
|
-
c02.add_level(c03)
|
|
59
|
-
|
|
60
|
-
export
|
|
61
|
-
element_exists("/ead/archdesc/dsc/c", "Check that the level was added")
|
|
62
|
-
element_exists("/ead/archdesc/dsc/c/did", "Check that the description was added")
|
|
63
|
-
element_exists("/ead/archdesc/dsc/c/phystech", "Check that the phystech was added")
|
|
64
|
-
element_exists("/ead/archdesc/dsc/c/c", "Check that the second level was added")
|
|
65
|
-
element_exists("/ead/archdesc/dsc/c/c/c", "Check that the third level was added")
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def test_import_unnumbered
|
|
69
|
-
import
|
|
70
|
-
dsc = @ead.descelems[0]
|
|
71
|
-
assert(dsc.levels[0], "Check that the level was imported")
|
|
72
|
-
assert(dsc.levels[0].did, "Check that the description was imported")
|
|
73
|
-
assert(dsc.levels[0].levels[0], "Check that the second level was imported")
|
|
74
|
-
assert(dsc.levels[0].levels[0].levels[0], "Check that the third level was imported")
|
|
75
|
-
end
|
|
76
|
-
end
|
data/test/TestEADNote.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
require "TestEAD"
|
|
2
|
-
require "EADNote"
|
|
3
|
-
|
|
4
|
-
class TestEADNote < TestEAD
|
|
5
|
-
def initialize(*args)
|
|
6
|
-
super(*args)
|
|
7
|
-
|
|
8
|
-
@test_file = "test_ead_note.xml"
|
|
9
|
-
@p = "Test p"
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def test_attrs
|
|
13
|
-
dsc = EAD::EADSubordinates.new
|
|
14
|
-
@ead.add_descelem(dsc)
|
|
15
|
-
|
|
16
|
-
c01 = EAD::EADLevel.new
|
|
17
|
-
dsc.add_level(c01)
|
|
18
|
-
|
|
19
|
-
sc = EAD::EADNote.new
|
|
20
|
-
sc.p << EAD::EADP.new(@p)
|
|
21
|
-
sc.p << EAD::EADP.new(@p)
|
|
22
|
-
c01.note = sc
|
|
23
|
-
|
|
24
|
-
export
|
|
25
|
-
element_exists("/ead/archdesc/dsc/c01/note", "Check that the scopecontent was added")
|
|
26
|
-
compare_xpath(@p, "/ead/archdesc/dsc/c01/note/p")
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def test_import
|
|
31
|
-
import
|
|
32
|
-
note = @ead.descelems[0].levels[0].note
|
|
33
|
-
assert_equal(@p, note.p[0].value)
|
|
34
|
-
assert_equal(@p, note.p[1].value)
|
|
35
|
-
end
|
|
36
|
-
end
|
data/test/TestEADPhysTech.rb
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
require "TestEAD"
|
|
2
|
-
|
|
3
|
-
class TestEADPhysTech < TestEAD
|
|
4
|
-
def initialize(*args)
|
|
5
|
-
super(*args)
|
|
6
|
-
@test_file = "test_ead_phystech.xml"
|
|
7
|
-
@head = "HEADTest"
|
|
8
|
-
@ptext = "Some Text "
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_export
|
|
12
|
-
phystech = EAD::EADPhysTech.new
|
|
13
|
-
phystech.head = @head
|
|
14
|
-
(1..4).each {|i| phystech.p << EAD::EADP.new(@ptext+i.to_s)}
|
|
15
|
-
|
|
16
|
-
did = EAD::EADDescription.new
|
|
17
|
-
did.head = "head"
|
|
18
|
-
did.unitid = "id"
|
|
19
|
-
|
|
20
|
-
@ead.archdesc.phystech = phystech
|
|
21
|
-
@ead.archdesc.did = did
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
# Since we've added content it is now valid EAD
|
|
25
|
-
validate_dtd
|
|
26
|
-
|
|
27
|
-
element_exists("/ead/archdesc/phystech", "Test did exists")
|
|
28
|
-
compare_xpath(@head, "/ead/archdesc/phystech/head")
|
|
29
|
-
(1..4).each do |i|
|
|
30
|
-
compare_xpath(@ptext+i.to_s, "/ead/archdesc/phystech/p["+i.to_s+"]")
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def test_import
|
|
36
|
-
import
|
|
37
|
-
phystech = @ead.archdesc.phystech
|
|
38
|
-
|
|
39
|
-
assert_equal(@head, phystech.head.value)
|
|
40
|
-
(1..4).each do |i|
|
|
41
|
-
assert_equal(@ptext+i.to_s, phystech.p[i-1].value)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
data/test/TestEADScopeContent.rb
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
require "TestEAD"
|
|
2
|
-
require "EADSubordinates"
|
|
3
|
-
require "EADLevel"
|
|
4
|
-
require "EADScopeContent"
|
|
5
|
-
|
|
6
|
-
class TestEADScopeContent < TestEAD
|
|
7
|
-
def initialize(*args)
|
|
8
|
-
super(*args)
|
|
9
|
-
|
|
10
|
-
@test_file = "test_ead_scopecontent.xml"
|
|
11
|
-
@head = "Test Head"
|
|
12
|
-
@p = "Test p"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_attrs
|
|
16
|
-
dsc = EAD::EADSubordinates.new
|
|
17
|
-
@ead.add_descelem(dsc)
|
|
18
|
-
|
|
19
|
-
c01 = EAD::EADLevel.new
|
|
20
|
-
dsc.add_level(c01)
|
|
21
|
-
|
|
22
|
-
sc = EAD::EADScopeContent.new
|
|
23
|
-
sc.head = @head
|
|
24
|
-
sc.p << EAD::EADP.new(@p)
|
|
25
|
-
sc.p << EAD::EADP.new(@p)
|
|
26
|
-
c01.scopecontent = sc
|
|
27
|
-
|
|
28
|
-
export
|
|
29
|
-
element_exists("/ead/archdesc/dsc/c01/scopecontent", "Check that the scopecontent was added")
|
|
30
|
-
compare_xpath(@head, "/ead/archdesc/dsc/c01/scopecontent/head")
|
|
31
|
-
compare_xpath(@p, "/ead/archdesc/dsc/c01/scopecontent/p")
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def test_import
|
|
36
|
-
import
|
|
37
|
-
assert_equal(1, @ead.archdesc.dsc[0].c.size)
|
|
38
|
-
sc = @ead.archdesc.dsc[0].c[0].scopecontent
|
|
39
|
-
assert_equal(@head, sc.head.value)
|
|
40
|
-
assert_equal(@p, sc.p[0].value)
|
|
41
|
-
assert_equal(@p, sc.p[1].value)
|
|
42
|
-
end
|
|
43
|
-
end
|
data/test/TestPartialExport.rb
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
require "TestEAD"
|
|
2
|
-
|
|
3
|
-
class TestPartialExport < TestEAD
|
|
4
|
-
def setup
|
|
5
|
-
super
|
|
6
|
-
@test_file = "test_ead_partial_export.xml"
|
|
7
|
-
@head = "Test head"
|
|
8
|
-
@type = "combined"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_partial_export
|
|
12
|
-
file = File.open(@test_file, "w")
|
|
13
|
-
|
|
14
|
-
did = EAD::EADDescription.new
|
|
15
|
-
did.head = "abc"
|
|
16
|
-
did.unitid = "teste"
|
|
17
|
-
@ead.archdesc.did = did
|
|
18
|
-
|
|
19
|
-
dsc = EAD::EADSubordinates.new
|
|
20
|
-
dsc.type = @type
|
|
21
|
-
@ead.archdesc.dsc << dsc
|
|
22
|
-
|
|
23
|
-
c01 = EAD::EADLevel.new
|
|
24
|
-
c01.did = EAD::EADDescription.new
|
|
25
|
-
c01.did.head = "abc"
|
|
26
|
-
c01.did.unitid = "teste"
|
|
27
|
-
c01.did.unittitle = "teste"
|
|
28
|
-
|
|
29
|
-
dsc.c << c01
|
|
30
|
-
c01.start_partial_export(file)
|
|
31
|
-
|
|
32
|
-
dsc = EAD::EADSubordinates.new
|
|
33
|
-
dsc.type = @type
|
|
34
|
-
c01.dsc << dsc
|
|
35
|
-
|
|
36
|
-
c02 = EAD::EADLevel.new
|
|
37
|
-
c02.did = EAD::EADDescription.new
|
|
38
|
-
c02.did.head = "abc"
|
|
39
|
-
c02.did.unitid = "teste"
|
|
40
|
-
c02.did.unittitle = "teste"
|
|
41
|
-
sc = EAD::EADScopeContent.new
|
|
42
|
-
sc.p << EAD::EADP.new('value1')
|
|
43
|
-
sc.p << EAD::EADP.new('value2')
|
|
44
|
-
c02.scopecontent = sc
|
|
45
|
-
|
|
46
|
-
dsc.c << c02
|
|
47
|
-
c02.start_partial_export(file)
|
|
48
|
-
|
|
49
|
-
@ead.end_partial_export(file)
|
|
50
|
-
|
|
51
|
-
file.close
|
|
52
|
-
|
|
53
|
-
validate_dtd
|
|
54
|
-
compare_xpath("fonds", "/ead/archdesc/@level")
|
|
55
|
-
compare_xpath(@type, "/ead/archdesc/dsc/@type")
|
|
56
|
-
element_exists("/ead/archdesc/dsc/c01", "the first level was not added")
|
|
57
|
-
element_exists("/ead/archdesc/dsc/c01/did", "the first level description was not added")
|
|
58
|
-
element_exists("/ead/archdesc/dsc/c01/dsc/c01", "the second level was not added")
|
|
59
|
-
element_exists("/ead/archdesc/dsc/c01/dsc/c01/did", "the second level description was not added")
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
$-w = true
|
|
2
|
-
|
|
3
|
-
require "test/unit"
|
|
4
|
-
require "xmlcodec"
|
|
5
|
-
require "EAD"
|
|
6
|
-
require "TestEAD"
|
|
7
|
-
|
|
8
|
-
class MyStreamListener
|
|
9
|
-
attr_reader :ead
|
|
10
|
-
def el_ead(el)
|
|
11
|
-
@ead = el.get_object
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class MyConsumingStreamListener
|
|
16
|
-
attr_reader :ead
|
|
17
|
-
def el_ead(el)
|
|
18
|
-
@ead = el.get_object
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def el_c02(el)
|
|
22
|
-
el.consume
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
class TestXMLStreamObjectParser < TestEAD
|
|
27
|
-
def initialize(*args)
|
|
28
|
-
super(*args)
|
|
29
|
-
|
|
30
|
-
@test_file = "test_ead_stream_object_parser.xml"
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_import
|
|
34
|
-
@ead.eadheader.id = "1"
|
|
35
|
-
|
|
36
|
-
dsc = EAD::EADSubordinates.new
|
|
37
|
-
@ead.add_descelem(dsc)
|
|
38
|
-
|
|
39
|
-
c01 = EAD::EADLevel.new
|
|
40
|
-
c01.did = EAD::EADDescription.new
|
|
41
|
-
c01.phystech = EAD::EADPhysTech.new
|
|
42
|
-
dsc.add_level(c01)
|
|
43
|
-
|
|
44
|
-
c02 = EAD::EADLevel.new
|
|
45
|
-
c01.add_level(c02)
|
|
46
|
-
|
|
47
|
-
c03 = EAD::EADLevel.new
|
|
48
|
-
c02.add_level(c03)
|
|
49
|
-
|
|
50
|
-
export
|
|
51
|
-
listener = MyStreamListener.new
|
|
52
|
-
parser = XMLCodec::XMLStreamObjectParser.new(listener)
|
|
53
|
-
parser.parse(File.new(@test_file))
|
|
54
|
-
@ead = listener.ead
|
|
55
|
-
|
|
56
|
-
assert_equal(@ead, parser.top_element)
|
|
57
|
-
|
|
58
|
-
assert_equal("1", @ead.eadheader.eadid.value)
|
|
59
|
-
assert_equal("1", @ead.eadheader.id)
|
|
60
|
-
assert_equal("Teste", @ead.eadheader.eadtitle.value)
|
|
61
|
-
|
|
62
|
-
dsc = @ead.descelems[0]
|
|
63
|
-
assert(dsc.levels[0], "Check that the level was imported")
|
|
64
|
-
assert(dsc.levels[0].did, "Check that the description was imported")
|
|
65
|
-
assert(dsc.levels[0].levels[0], "Check that the second level was imported")
|
|
66
|
-
assert(dsc.levels[0].levels[0].levels[0], "Check that the third level was imported")
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def test_consume
|
|
70
|
-
@ead.eadheader.id = "1"
|
|
71
|
-
|
|
72
|
-
dsc = EAD::EADSubordinates.new
|
|
73
|
-
@ead.add_descelem(dsc)
|
|
74
|
-
|
|
75
|
-
c01 = EAD::EADLevel.new
|
|
76
|
-
c01.did = EAD::EADDescription.new
|
|
77
|
-
c01.phystech = EAD::EADPhysTech.new
|
|
78
|
-
dsc.add_level(c01)
|
|
79
|
-
|
|
80
|
-
c02 = EAD::EADLevel.new
|
|
81
|
-
c01.add_level(c02)
|
|
82
|
-
|
|
83
|
-
c03 = EAD::EADLevel.new
|
|
84
|
-
c02.add_level(c03)
|
|
85
|
-
|
|
86
|
-
export
|
|
87
|
-
|
|
88
|
-
listener = MyConsumingStreamListener.new
|
|
89
|
-
parser = XMLCodec::XMLStreamObjectParser.new(listener)
|
|
90
|
-
parser.parse(File.new(@test_file))
|
|
91
|
-
@ead = listener.ead
|
|
92
|
-
|
|
93
|
-
dsc = @ead.descelems[0]
|
|
94
|
-
assert(dsc.levels[0], "Check that the level was imported")
|
|
95
|
-
assert(dsc.levels[0].did, "Check that the description was imported")
|
|
96
|
-
assert_equal(0, dsc.levels[0].levels.size, "Check that c03 was consumed")
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def test_numbering
|
|
100
|
-
@ead.eadheader.id = "1"
|
|
101
|
-
|
|
102
|
-
dsc = EAD::EADSubordinates.new
|
|
103
|
-
@ead.add_descelem(dsc)
|
|
104
|
-
|
|
105
|
-
c01 = EAD::EADLevel.new
|
|
106
|
-
c01.did = EAD::EADDescription.new
|
|
107
|
-
c01.phystech = EAD::EADPhysTech.new
|
|
108
|
-
dsc.add_level(c01)
|
|
109
|
-
|
|
110
|
-
export
|
|
111
|
-
|
|
112
|
-
listener = MyStreamListener.new
|
|
113
|
-
parser = XMLCodec::XMLStreamObjectParser.new(listener)
|
|
114
|
-
parser.parse(File.new(@test_file))
|
|
115
|
-
@ead = listener.ead
|
|
116
|
-
|
|
117
|
-
dsc = @ead.descelems[0]
|
|
118
|
-
c01 = dsc.levels[0]
|
|
119
|
-
|
|
120
|
-
assert(dsc.element_id)
|
|
121
|
-
assert(dsc.parent_id)
|
|
122
|
-
assert(c01.element_id)
|
|
123
|
-
assert(c01.parent_id)
|
|
124
|
-
assert_equal(c01.parent_id, dsc.element_id)
|
|
125
|
-
end
|
|
126
|
-
end
|