Sha256: 825d3eb771a5cfcd599c090d743ac2e1f36f3ec73164e0dba11f7c19a20793a7

Contents?: true

Size: 1.17 KB

Versions: 6

Compression:

Stored size: 1.17 KB

Contents

require 'facets/typecast.rb'
require 'test/unit'

class TC_TypeCast < Test::Unit::TestCase

  class TestClass
    attr_accessor :my_var
    def initialize(my_var); @my_var = my_var; end

    def to_string(options={})
      @my_var
    end

    class << self
      def from_string(string, options={})
        self.new( string )
      end
    end
  end


  def setup
    @test_string = "this is a test"
    @test_class = TestClass.new(@test_string)
  end

  def test_to_string
    assert_equal( '1234', 1234.cast_to(String) )
  end

  def test_custom_to_string
    assert_equal( @test_string, @test_class.cast_to(String) )
  end

  def test_custom_from_string
    assert_equal( @test_class.my_var, @test_string.cast_to(TestClass).my_var )
  end

  def test_string_to_class
    assert_equal( Test::Unit::TestCase, "Test::Unit::TestCase".cast_to(Class) )
  end

  def test_string_to_time
    assert_equal( "Mon Oct 10 00:00:00 2005", "2005-10-10".cast_to(Time).localtime.strftime("%a %b %d %H:%M:%S %Y") )
  end

  def test_no_converter
    "sfddsf".cast_to( ::Regexp )
    assert(1+1==3, 'should not get here')
  rescue TypeCastException => ex
    assert_equal(TypeCastException, ex.class)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
facets-2.6.0 test/more/test_typecast.rb
facets-2.4.4 test/more/test_typecast.rb
facets-2.4.5 test/more/test_typecast.rb
facets-2.5.0 test/more/test_typecast.rb
facets-2.5.1 test/more/test_typecast.rb
facets-2.5.2 test/more/test_typecast.rb