shard-spectator/spec/helpers/spy_sut.cr

31 lines
719 B
Crystal
Raw Normal View History

# Example system to test that doubles as a spy.
# This class tracks calls made to it.
class SpySUT
# Number of times the `#==` method was called.
getter eq_call_count = 0
2019-01-19 20:50:57 +00:00
# Number of times the `#===` method was called.
getter case_eq_call_count = 0
2019-01-19 21:49:13 +00:00
# Number of times the `#=~` method was called.
getter match_call_count = 0
# Returns true and increments `#eq_call_count`.
def ==(other : T) forall T
@eq_call_count += 1
true
end
2019-01-19 20:50:57 +00:00
# Returns true and increments `#case_eq_call_count`.
def ===(other : T) forall T
@case_eq_call_count += 1
true
end
2019-01-19 21:49:13 +00:00
# Returns true and increments `#match_eq_call_count`.
def =~(other : T) forall T
@match_call_count += 1
true
end
end