56 lines
1.3 KiB
Ruby
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
|