X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=test%2Ftest_main.rb;h=6355e7e9d23fca663d55283d059b51f427a71804;hb=f20bab80ca655b5b65a5d0d8660d2265a2410b00;hp=3003783554337a3bd3b2b05722ea3d29d414038a;hpb=a666f7bdc7f889257a3dcdad95f759bb984253e0;p=ruby-vorbistagger.git diff --git a/test/test_main.rb b/test/test_main.rb index 3003783..6355e7e 100644 --- a/test/test_main.rb +++ b/test/test_main.rb @@ -1,6 +1,7 @@ require "test/unit" require "ogg/vorbis/tagger" require "fileutils" +require "digest/md5" class MainTest < Test::Unit::TestCase OGG_FILE = "test/test.ogg" @@ -29,6 +30,32 @@ class MainTest < Test::Unit::TestCase end end + def test_write_is_non_destructive + a = Digest::MD5.hexdigest(File.read(OGG_FILE)) + + Ogg::Vorbis::Tagger.open(OGG_FILE) do |t| + t.write + end + + b = Digest::MD5.hexdigest(File.read(OGG_FILE)) + + assert_equal(a, b) + end + + def test_multiple_writes + a = Digest::MD5.hexdigest(File.read(OGG_FILE)) + + Ogg::Vorbis::Tagger.open(OGG_FILE) do |t| + 1.upto(10) do + t.write + end + end + + b = Digest::MD5.hexdigest(File.read(OGG_FILE)) + + assert_equal(a, b) + end + def test_write_stable_order Ogg::Vorbis::Tagger.open(OGG_FILE) do |t| assert_equal(3, t.write) @@ -225,4 +252,37 @@ EOF def test_close Ogg::Vorbis::Tagger.new(OGG_FILE).close end + + def test_close2 + t = Ogg::Vorbis::Tagger.new(OGG_FILE) + t.close + + assert_raise(Ogg::Vorbis::Tagger::ClosedStreamError) do + t.close + end + + assert_raise(Ogg::Vorbis::Tagger::ClosedStreamError) do + Ogg::Vorbis::Tagger.open(OGG_FILE) do |t| + t.close + end + end + end + + def test_open_non_existing_file + assert_raises(Ogg::Vorbis::Tagger::OpenError) do + Ogg::Vorbis::Tagger.new("foo.bar") + end + end + + def test_open_non_ogg_file + File.open("test/foo.bar", "w") do |f| + f << "foobarbazxyzzy" + end + + assert_raises(Ogg::Vorbis::Tagger::InvalidDataError) do + Ogg::Vorbis::Tagger.new("test/foo.bar") + end + ensure + FileUtils.rm_f("test/foo.bar") + end end