shard-spectator/spec/helpers/spy_sut.cr
2019-01-19 14:49:13 -07:00

30 lines
719 B
Crystal

# 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
# Number of times the `#===` method was called.
getter case_eq_call_count = 0
# 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
# Returns true and increments `#case_eq_call_count`.
def ===(other : T) forall T
@case_eq_call_count += 1
true
end
# Returns true and increments `#match_eq_call_count`.
def =~(other : T) forall T
@match_call_count += 1
true
end
end