var return_val = null var stub_target = null var target_subpath = null # the parameter values to match method call on. var parameters = null var stub_method = null var call_super = false # -- Paramter Override -- # Parmater overrides are stored in here along with all the other stub info # so that you can chain stubbing parameter overrides along with all the # other stubbing. This adds some complexity to the logic that tries to # find the correct stub for a call by a double. Since an instance of this # class could be just a parameter override, or it could have been chained # we have to have _paramter_override_only so that we know when to tell the # difference. var parameter_count = -1 var parameter_defaults = null # Anything that would make this stub not just an override of paramters # must set this flag to false. This must be private bc the actual logic # to determine if this stub is only an override is more complicated. var _parameter_override_only = true # -- const NOT_SET = '|_1_this_is_not_set_1_|' func _init(target=null, method=null, subpath=null): stub_target = target stub_method = method target_subpath = subpath func to_return(val): return_val = val call_super = false _parameter_override_only = false return self func to_do_nothing(): return to_return(null) func to_call_super(): call_super = true _parameter_override_only = false return self func when_passed(p1=NOT_SET,p2=NOT_SET,p3=NOT_SET,p4=NOT_SET,p5=NOT_SET,p6=NOT_SET,p7=NOT_SET,p8=NOT_SET,p9=NOT_SET,p10=NOT_SET): parameters = [p1,p2,p3,p4,p5,p6,p7,p8,p9,p10] var idx = 0 while(idx < parameters.size()): if(str(parameters[idx]) == NOT_SET): parameters.remove(idx) else: idx += 1 return self func param_count(x): parameter_count = x return self func param_defaults(values): parameter_count = values.size() parameter_defaults = values return self func has_param_override(): return parameter_count != -1 func is_param_override_only(): var to_return = false if(has_param_override()): to_return = _parameter_override_only return to_return func to_s(): var base_string = str(stub_target) if(target_subpath != null): base_string += str('[', target_subpath, '].') else: base_string += '.' base_string += stub_method if(has_param_override()): base_string += str(' (param count override=', parameter_count, ' defaults=', parameter_defaults) if(is_param_override_only()): base_string += " ONLY" base_string += ') ' if(call_super): base_string += " to call SUPER" if(parameters != null): base_string += str(' with params (', parameters, ') returns ', return_val) return base_string