+
+ def test_merge
+ repl = {
+ "artist" => "Ballista",
+ "genre" => "Death Metal",
+ }
+
+ Ogg::Vorbis::Tagger.open(OGG_FILE) do |t|
+ t.comments.merge!(repl)
+
+ assert_equal(["artist", "album", "date", "genre"],
+ t.comments.keys)
+ assert_equal(["Ballista", "...For Victory", "1994",
+ "Death Metal"],
+ t.comments.values)
+ end
+ end
+
+ def test_shift
+ Ogg::Vorbis::Tagger.open(OGG_FILE) do |t|
+ assert_equal(["artist", "Bolt Thrower"], t.comments.shift)
+ assert_equal(["album", "...For Victory"], t.comments.shift)
+ assert_equal(["date", "1994"], t.comments.shift)
+ assert_equal(nil, t.comments.shift)
+ end
+ end
+
+ 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