private static void ApplyOutputArguments(IInterceptedFakeObjectCall call, CallMetadata callToApply) { foreach (var outputArgument in GetIndicesAndValuesOfOutputParameters(call, callToApply.RecordedCall)) { call.SetArgumentValue(outputArgument.Item1, outputArgument.Item2); } }
public void AddItem(CallMetadata item) { if (!calls.ContainsKey(item.UniqueId)) { calls[item.UniqueId] = new List <CallMetadata>(); } calls[item.UniqueId].Add(item); this.Count++; }
/// <summary> /// Records the specified call. /// </summary> /// <param name="fakeObjectCall">The call to record.</param> public virtual void RecordCall(ICompletedFakeObjectCall fakeObjectCall) { var hash = fakeObjectCall.GetHashCode(); var watch = watches[hash]; watches.Remove(hash); watch.Stop(); var callData = new CallData(fakeObjectCall.Method, CommonExtensions.GetOutputArgumentsForCall(fakeObjectCall), fakeObjectCall.ReturnValue.Copy()); var item = new CallMetadata { HasBeenApplied = false, RecordedCall = callData, ElapsedTime = watch.ElapsedMilliseconds, UniqueId = KeyGenerator.GetMethodKey(fakeObjectCall.FakedObject.GetType(), fakeObjectCall.Method, CommonExtensions.GetCurrentStack()) }; this.recordedCalls.AddItem(item); }