Sha256: 25b04d13fe71bf636aef770714c284055133707689b3caa07c8e4ec0d105ea52
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
require 'test/unit' require 'marc' require 'stringio' class XMLTest < Test::Unit::TestCase def test_xml_entities r1 = MARC::Record.new r1 << MARC::DataField.new('245', '0', '0', ['a', 'foo & bar & baz']) xml = r1.to_xml.to_s assert_match /foo & bar & baz/, xml reader = MARC::XMLReader.new(StringIO.new(xml)) r2 = reader.entries[0] assert_equal 'foo & bar & baz', r2['245']['a'] end def test_batch reader = MARC::XMLReader.new('test/batch.xml') count = 0 for record in reader count += 1 assert_instance_of(MARC::Record, record) end assert_equal(count, 2) end def test_read_string xml = File.new('test/batch.xml').read reader = MARC::XMLReader.new(StringIO.new(xml)) assert_equal 2, reader.entries.length end def test_leader_from_xml reader = MARC::XMLReader.new('test/one.xml') record = reader.entries[0] assert_equal ' njm a22 uu 4500', record.leader # serializing as MARC should populate the record length and directory offset record = MARC::Record.new_from_marc(record.to_marc) assert_equal '00734njm a2200217uu 4500', record.leader end def test_read_write record1 = MARC::Record.new record1.leader = '00925njm 22002777a 4500' record1.append MARC::ControlField.new('007', 'sdubumennmplu') record1.append MARC::DataField.new('245', '0', '4', ['a', 'The Great Ray Charles'], ['h', '[sound recording].']) writer = MARC::XMLWriter.new('test/test.xml', :stylesheet => 'style.xsl') writer.write(record1) writer.close xml = File.read('test/test.xml') assert_match /<controlfield tag='007'>sdubumennmplu<\/controlfield>/, xml assert_match /<\?xml-stylesheet type="text\/xsl" href="style.xsl"\?>/, xml reader = MARC::XMLReader.new('test/test.xml') record2 = reader.entries[0] assert_equal(record1, record2) File.unlink('test/test.xml') end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
marc-0.2.0 | test/tc_xml.rb |
marc-0.1.9 | test/tc_xml.rb |