[前][次][番号順一覧][スレッド一覧]

ruby-changes:4608

From: ko1@a...
Date: Sun, 20 Apr 2008 18:04:09 +0900 (JST)
Subject: [ruby-changes:4608] knu - Ruby:r16102 (ruby_1_8_7): Add test/yamlstore.rb.

knu	2008-04-20 18:03:56 +0900 (Sun, 20 Apr 2008)

  New Revision: 16102

  Added files:
    branches/ruby_1_8_7/test/yaml/test_yamlstore.rb

  Log:
    Add test/yamlstore.rb.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_7/test/yaml/test_yamlstore.rb?revision=16102&view=markup

Index: ruby_1_8_7/test/yaml/test_yamlstore.rb
===================================================================
--- ruby_1_8_7/test/yaml/test_yamlstore.rb	(revision 0)
+++ ruby_1_8_7/test/yaml/test_yamlstore.rb	(revision 16102)
@@ -0,0 +1,74 @@
+require 'test/unit'
+require 'yaml/store'
+
+class YAMLStoreTest < Test::Unit::TestCase
+  def setup
+    @yamlstore_file = "yamlstore.tmp.#{Process.pid}"
+    @yamlstore = YAML::Store.new(@yamlstore_file)
+  end
+
+  def teardown
+    File.unlink(@yamlstore_file) rescue nil
+  end
+
+  def test_opening_new_file_in_readonly_mode_should_result_in_empty_values
+    @yamlstore.transaction(true) do
+      assert_nil @yamlstore[:foo]
+      assert_nil @yamlstore[:bar]
+    end
+  end
+  
+  def test_opening_new_file_in_readwrite_mode_should_result_in_empty_values
+    @yamlstore.transaction do
+      assert_nil @yamlstore[:foo]
+      assert_nil @yamlstore[:bar]
+    end
+  end
+  
+  def test_data_should_be_loaded_correctly_when_in_readonly_mode
+    @yamlstore.transaction do
+      @yamlstore[:foo] = "bar"
+    end
+    @yamlstore.transaction(true) do
+      assert_equal "bar", @yamlstore[:foo]
+    end
+  end
+  
+  def test_data_should_be_loaded_correctly_when_in_readwrite_mode
+    @yamlstore.transaction do
+      @yamlstore[:foo] = "bar"
+    end
+    @yamlstore.transaction do
+      assert_equal "bar", @yamlstore[:foo]
+    end
+  end
+  
+  def test_changes_after_commit_are_discarded
+    @yamlstore.transaction do
+      @yamlstore[:foo] = "bar"
+      @yamlstore.commit
+      @yamlstore[:foo] = "baz"
+    end
+    @yamlstore.transaction(true) do
+      assert_equal "bar", @yamlstore[:foo]
+    end
+  end
+  
+  def test_changes_are_not_written_on_abort
+    @yamlstore.transaction do
+      @yamlstore[:foo] = "bar"
+      @yamlstore.abort
+    end
+    @yamlstore.transaction(true) do
+      assert_nil @yamlstore[:foo]
+    end
+  end
+  
+  def test_writing_inside_readonly_transaction_raises_error
+    assert_raise(PStore::Error) do
+      @yamlstore.transaction(true) do
+        @yamlstore[:foo] = "bar"
+      end
+    end
+  end
+end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]