72 lines
2.2 KiB
GDScript
72 lines
2.2 KiB
GDScript
extends GutTest
|
|
|
|
var Stubber = load('res://addons/gut/stubber.gd')
|
|
var Doubler = load('res://addons/gut/doubler.gd')
|
|
var StubParams = load('res://addons/gut/stub_params.gd')
|
|
|
|
|
|
class HasAccessors:
|
|
var string_normal_accessors = 'default' :
|
|
get: return string_normal_accessors
|
|
set(val): string_normal_accessors = val
|
|
|
|
var string_accessor_method = 'default' :
|
|
get = _get_string_accessor_method,
|
|
set = _set_string_accessor_method
|
|
|
|
func _get_string_accessor_method():
|
|
return string_accessor_method
|
|
|
|
func _set_string_accessor_method(val):
|
|
string_accessor_method = val
|
|
|
|
func this_is_a_normal_method():
|
|
print('you called this normal method')
|
|
|
|
|
|
var doubler = null
|
|
var stubber = null
|
|
|
|
|
|
func before_each():
|
|
doubler = Doubler.new(GutUtils.DOUBLE_STRATEGY.INCLUDE_NATIVE)
|
|
# doubler.print_source = true
|
|
doubler.inner_class_registry.register(self.get_script())
|
|
stubber = GutUtils.Stubber.new()
|
|
doubler.set_stubber(stubber)
|
|
|
|
|
|
func test_can_double_scripts_with_accessors():
|
|
var DoubleHasAccessors = doubler.double(HasAccessors)
|
|
var inst = DoubleHasAccessors.new()
|
|
assert_not_null(inst)
|
|
|
|
func test_normal_get_accessor_not_stubbed():
|
|
var DoubleHasAccessors = doubler.double(HasAccessors)
|
|
var dbl_ha = DoubleHasAccessors.new()
|
|
assert_eq(dbl_ha.string_normal_accessors, 'default')
|
|
|
|
func test_normal_set_accessor_not_stubbed():
|
|
var DoubleHasAccessors = doubler.double(HasAccessors)
|
|
var dbl_ha = DoubleHasAccessors.new()
|
|
dbl_ha.string_normal_accessors = 'foo'
|
|
assert_eq(dbl_ha.string_normal_accessors, 'foo')
|
|
|
|
func test_get_accessor_method_is_stubbed_to_do_nothing():
|
|
var dbl_ha = doubler.double(HasAccessors).new()
|
|
assert_null(dbl_ha.string_accessor_method)
|
|
|
|
func test_set_accessor_method_is_stubbed_to_do_nothing():
|
|
var dbl_ha = doubler.double(HasAccessors).new()
|
|
var sp1 = StubParams.new(dbl_ha, '_get_string_accessor_method').to_call_super()
|
|
stubber.add_stub(sp1)
|
|
dbl_ha.string_accessor_method = 'bar'
|
|
assert_eq(dbl_ha.string_accessor_method, 'default')
|
|
|
|
func test_partial_double_works():
|
|
var dbl_ha = doubler.partial_double(HasAccessors).new()
|
|
dbl_ha.string_normal_accessors = 'foo'
|
|
dbl_ha.string_accessor_method = 'bar'
|
|
assert_eq(dbl_ha.string_normal_accessors, 'foo')
|
|
assert_eq(dbl_ha.string_accessor_method, 'bar')
|