Made the Ogg::Vorbis::Tagger object inaccessable after #close was called.
[ruby-vorbistagger.git] / test / test_main.rb
index bbc5b0023a2987e31af883c4573dde96f4605dd5..3b577196032c72dff3769a74edb109588e2ef82c 100644 (file)
@@ -252,4 +252,34 @@ EOF
        def test_close
                Ogg::Vorbis::Tagger.new(OGG_FILE).close
        end
+
+       def test_close2
+               assert_raise(Ogg::Vorbis::Tagger::ClosedStreamError) do
+                       Ogg::Vorbis::Tagger.new(OGG_FILE).close.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