From a37d90e6cb0dae3a588a339d9529d93e07fdf8a0 Mon Sep 17 00:00:00 2001 From: Kevin Clark Date: Wed, 18 Jun 2008 00:50:00 +0000 Subject: [PATCH] Add tests for Ruby TTransport. Only require .rb files in ruby tests. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668892 13f79535-47bb-0310-9956-ffa450edef68 --- lib/rb/lib/thrift/transport/ttransport.rb | 2 + test/rb/core/test_exceptions.rb | 11 +++++ test/rb/core/transport/test_ttransport.rb | 55 +++++++++++++++++++++++ test/rb/test_suite.rb | 2 +- 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 test/rb/core/test_exceptions.rb create mode 100644 test/rb/core/transport/test_ttransport.rb diff --git a/lib/rb/lib/thrift/transport/ttransport.rb b/lib/rb/lib/thrift/transport/ttransport.rb index bdf09351..fb41495c 100644 --- a/lib/rb/lib/thrift/transport/ttransport.rb +++ b/lib/rb/lib/thrift/transport/ttransport.rb @@ -28,6 +28,8 @@ class TTransportException < TException end +# TTransport is basically an abstract class, but isn't raising NotImplementedError +# TODO: Fix this - Kevin Clark - 3/27/08 class TTransport def isOpen(); nil; end diff --git a/test/rb/core/test_exceptions.rb b/test/rb/core/test_exceptions.rb new file mode 100644 index 00000000..eb63963b --- /dev/null +++ b/test/rb/core/test_exceptions.rb @@ -0,0 +1,11 @@ +require File.join(File.dirname(__FILE__), '../test_helper') + +require 'thrift/thrift' + +class TestTException < Test::Unit::TestCase + def test_has_accessible_message + msg = "hi there thrift" + assert_equal msg, TException.new(msg).message + end +end + diff --git a/test/rb/core/transport/test_ttransport.rb b/test/rb/core/transport/test_ttransport.rb new file mode 100644 index 00000000..5811dece --- /dev/null +++ b/test/rb/core/transport/test_ttransport.rb @@ -0,0 +1,55 @@ +require File.join(File.dirname(__FILE__), '../../test_helper') + +require 'thrift/transport/ttransport' + +class DummyTransport < TTransport + def initialize(data) + @data = data + end + + def read(size) + @data.slice!(0, size) + end +end + +# TTransport is basically an abstract class, but isn't raising NotImplementedError +class TestTTransport < Test::Unit::TestCase + def setup + @trans = TTransport.new + end + + def test_isOpen + assert_nil @trans.isOpen + end + + def test_open + assert_nil @trans.open + end + + def test_close + assert_nil @trans.close + end + + def test_read + assert_nil @trans.read(100) # arbitrary size + end + + # TODO: + # This doesn't necessarily test he right thing. + # It _looks_ like read isn't guarenteed to return the length + # you ask for and readAll is. This means our test needs to check + # for blocking. -- Kevin Clark 3/27/08 + def test_readAll + # Implements read + t = DummyTransport.new("hello") + assert_equal "hello", t.readAll(5) + end + + def test_write + assert_nil @trans.write(5) # arbitrary value + end + + def test_flush + assert_nil @trans.flush + end +end \ No newline at end of file diff --git a/test/rb/test_suite.rb b/test/rb/test_suite.rb index 42febdab..af686a82 100644 --- a/test/rb/test_suite.rb +++ b/test/rb/test_suite.rb @@ -1 +1 @@ -Dir["{core,generation,integration}/**/*"].each {|f| require f } \ No newline at end of file +Dir["{core,generation,integration}/**/*.rb"].each {|f| require f } \ No newline at end of file -- 2.17.1