summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-13 12:13:20 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-13 12:13:20 +0000
commit1240b1c30131e145837bd7764d871524e3f8f22d (patch)
tree09dde2710007b18f60f7610630caa38212138d1c
parentf36292a0e4e7c8c72e70a55badf57e8a21d1ff8d (diff)
downloadruby-1240b1c30131e145837bd7764d871524e3f8f22d.tar.gz
ruby-1240b1c30131e145837bd7764d871524e3f8f22d.tar.xz
ruby-1240b1c30131e145837bd7764d871524e3f8f22d.zip
add WIN32OLE_VARIANT class
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/win32ole/tests/testOLEVARIANT.rb74
-rw-r--r--ext/win32ole/tests/testall.rb1
2 files changed, 75 insertions, 0 deletions
diff --git a/ext/win32ole/tests/testOLEVARIANT.rb b/ext/win32ole/tests/testOLEVARIANT.rb
new file mode 100644
index 000000000..a9a52a826
--- /dev/null
+++ b/ext/win32ole/tests/testOLEVARIANT.rb
@@ -0,0 +1,74 @@
+require 'test/unit'
+
+require 'win32ole'
+
+class TestWIN32OLE_VARIANT < Test::Unit::TestCase
+ def test_new
+ obj = WIN32OLE_VARIANT.new('foo')
+ assert_instance_of(WIN32OLE_VARIANT, obj)
+ end
+
+ def test_new_no_argument
+ ex = nil
+ begin
+ obj = WIN32OLE_VARIANT.new
+ rescue ArgumentError
+ ex = $!
+ end
+ assert_instance_of(ArgumentError, ex)
+ assert_equal("wrong number of arguments (0 for 1..3)", ex.message);
+ end
+
+ def test_new_one_argument
+ ex = nil
+ begin
+ obj = WIN32OLE_VARIANT.new('foo')
+ rescue
+ ex = $!
+ end
+ assert_equal(nil, ex);
+ end
+
+ def test_value
+ obj = WIN32OLE_VARIANT.new('foo')
+ assert_equal('foo', obj.value)
+ end
+
+ def test_new_2_argument
+ ex = nil
+ obj = nil
+ begin
+ obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR|WIN32OLE::VARIANT::VT_BYREF)
+ rescue
+ ex = $!
+ end
+ assert_equal('foo', obj.value);
+ end
+
+ def test_new_2_argument2
+ ex = nil
+ obj = nil
+ begin
+ obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR)
+ rescue
+ ex = $!
+ end
+ assert_equal('foo', obj.value);
+ end
+
+ def test_conversion_num2str
+ obj = WIN32OLE_VARIANT.new(124, WIN32OLE::VARIANT::VT_BSTR)
+ assert_equal("124", obj.value);
+ end
+
+ def test_conversion_str2date
+ obj = WIN32OLE_VARIANT.new("2004-12-24 12:24:45", WIN32OLE::VARIANT::VT_DATE)
+ assert_equal("2004/12/24 12:24:45", obj.value)
+ end
+
+ def test_conversion_str2cy
+ obj = WIN32OLE_VARIANT.new("\\10,000", WIN32OLE::VARIANT::VT_CY)
+ assert_equal("10000", obj.value)
+ end
+
+end
diff --git a/ext/win32ole/tests/testall.rb b/ext/win32ole/tests/testall.rb
index a943ae09b..6bd379771 100644
--- a/ext/win32ole/tests/testall.rb
+++ b/ext/win32ole/tests/testall.rb
@@ -8,4 +8,5 @@ require "testOLEMETHOD"
require "testOLEVARIABLE"
require "testVARIANT"
require "testOLETYPELIB"
+# require "testOLEVARIANT"
# require "testOLEEVENT"