@ -20,4 +20,17 @@ module Ruby
|
||||
$stdout = orig_stdout
|
||||
end
|
||||
end
|
||||
module AttributeTests
|
||||
include RubyTests
|
||||
def setup
|
||||
super
|
||||
@vool = compile( "class Tryout < Base; #{attr_def};end" ).to_vool
|
||||
end
|
||||
def getter
|
||||
@vool.body.statements.first
|
||||
end
|
||||
def setter
|
||||
@vool.body.statements.last
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -74,51 +74,4 @@ module Ruby
|
||||
assert_raises_muted { compile( input ).to_vool}
|
||||
end
|
||||
end
|
||||
class TestClassStatementTransform < MiniTest::Test
|
||||
include RubyTests
|
||||
|
||||
def setup
|
||||
input = "class Tryout < Base;attr :page ;end"
|
||||
@vool = compile( input ).to_vool
|
||||
end
|
||||
def getter
|
||||
@vool.body.statements.first
|
||||
end
|
||||
def setter
|
||||
@vool.body.statements.last
|
||||
end
|
||||
def test_class
|
||||
assert_equal Vool::ClassStatement , @vool.class
|
||||
end
|
||||
def test_body
|
||||
assert_equal Vool::Statements , @vool.body.class
|
||||
end
|
||||
def test_getter
|
||||
assert_equal Vool::MethodStatement , getter.class
|
||||
end
|
||||
def test_getter_return
|
||||
assert_equal Vool::ReturnStatement , getter.body.class
|
||||
end
|
||||
def test_getter_name
|
||||
assert_equal :page , getter.name
|
||||
end
|
||||
def test_setter
|
||||
assert_equal Vool::MethodStatement , setter.class
|
||||
end
|
||||
def test_setter_assign
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::IvarAssignment , setter.body.first.class
|
||||
end
|
||||
def test_setter_return
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::ReturnStatement , setter.body.last.class
|
||||
end
|
||||
def test_setter_name
|
||||
assert_equal :page= , setter.name
|
||||
end
|
||||
def test_setter_args
|
||||
assert_equal [:val] , setter.args
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
48
test/ruby/test_class_statement2.rb
Normal file
48
test/ruby/test_class_statement2.rb
Normal file
@ -0,0 +1,48 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Ruby
|
||||
class TestClassStatementTransform < MiniTest::Test
|
||||
include AttributeTests
|
||||
|
||||
def attr_def
|
||||
"attr :page"
|
||||
end
|
||||
|
||||
def test_class
|
||||
assert_equal Vool::ClassStatement , @vool.class
|
||||
end
|
||||
def test_body
|
||||
assert_equal Vool::Statements , @vool.body.class
|
||||
end
|
||||
def test_method_len
|
||||
assert_equal 2 , @vool.body.length , "setter, getter"
|
||||
end
|
||||
def test_getter
|
||||
assert_equal Vool::MethodStatement , getter.class
|
||||
end
|
||||
def test_getter_return
|
||||
assert_equal Vool::ReturnStatement , getter.body.class
|
||||
end
|
||||
def test_getter_name
|
||||
assert_equal :page , getter.name
|
||||
end
|
||||
def test_setter
|
||||
assert_equal Vool::MethodStatement , setter.class
|
||||
end
|
||||
def test_setter_assign
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::IvarAssignment , setter.body.first.class
|
||||
end
|
||||
def test_setter_return
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::ReturnStatement , setter.body.last.class
|
||||
end
|
||||
def test_setter_name
|
||||
assert_equal :page= , setter.name
|
||||
end
|
||||
def test_setter_args
|
||||
assert_equal [:val] , setter.args
|
||||
end
|
||||
end
|
||||
|
||||
end
|
47
test/ruby/test_class_statement3.rb
Normal file
47
test/ruby/test_class_statement3.rb
Normal file
@ -0,0 +1,47 @@
|
||||
require_relative "helper"
|
||||
|
||||
module Ruby
|
||||
class TestClassStatementTransformList < MiniTest::Test
|
||||
include AttributeTests
|
||||
|
||||
def attr_def
|
||||
"attr :page , :size"
|
||||
end
|
||||
def test_class
|
||||
assert_equal Vool::ClassStatement , @vool.class
|
||||
end
|
||||
def test_body
|
||||
assert_equal Vool::Statements , @vool.body.class
|
||||
end
|
||||
def test_method_len
|
||||
assert_equal 4 , @vool.body.length , "2 setters, 2 getters"
|
||||
end
|
||||
def test_getter
|
||||
assert_equal Vool::MethodStatement , getter.class
|
||||
end
|
||||
def test_getter_return
|
||||
assert_equal Vool::ReturnStatement , getter.body.class
|
||||
end
|
||||
def test_getter_name
|
||||
assert_equal :page , getter.name
|
||||
end
|
||||
def test_setter
|
||||
assert_equal Vool::MethodStatement , setter.class
|
||||
end
|
||||
def test_setter_assign
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::IvarAssignment , setter.body.first.class
|
||||
end
|
||||
def test_setter_return
|
||||
assert_equal Vool::Statements , setter.body.class
|
||||
assert_equal Vool::ReturnStatement , setter.body.last.class
|
||||
end
|
||||
def test_setter_name
|
||||
assert_equal :size= , setter.name
|
||||
end
|
||||
def test_setter_args
|
||||
assert_equal [:val] , setter.args
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue
Block a user