rubyx/test/ruby/helper.rb

56 lines
1.3 KiB
Ruby

require_relative "../helper"
module Ruby
module RubyTests
include ScopeHelper
def setup
Parfait.boot!(Parfait.default_test_options)
end
def compile(input)
RubyCompiler.compile(input)
end
def compile_main(input)
RubyCompiler.compile(as_main(input))
end
def compile_main_sol(input)
xcompiler = RubyX::RubyXCompiler.new(RubyX.default_test_options)
xcompiler.ruby_to_sol(as_main(input))
end
def assert_raises_muted &block
orig_stdout = $stdout
$stdout = StringIO.new
assert_raises &block
$stdout = orig_stdout
end
end
module AttributeTests
include RubyTests
def setup
super
@sol = compile( "class Tryout < Base; #{attr_def};end" ).to_sol
end
def getter
@sol.body.statements.first
end
def setter
@sol.body.statements.last
end
def test_class
assert_equal Sol::ClassExpression , @sol.class
end
def test_body
assert_equal Sol::Statements , @sol.body.class
end
def test_getter
assert_equal Sol::MethodExpression , getter.class
end
def test_getter_return
assert_equal Sol::ReturnStatement , getter.body.class
end
def test_getter_name
assert_equal :page , getter.name
end
end
end