eadcodec 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|