private void Dispose(EnumeratorSpy enumeratorSpy) { NumCallsToDispose++; var enumerator = GetRealEnumerator(enumeratorSpy); RemoveSpyToRealEnumeratorMapping(enumeratorSpy); enumerator.Dispose(); }
public IEnumerator <T> GetEnumerator() { NumCallsToGetEnumerator++; var enumeratorSpy = new EnumeratorSpy(this); var enumerator = _sequence.GetEnumerator(); AddSpyToRealEnumeratorMapping(enumeratorSpy, enumerator); return(enumeratorSpy); }
private IEnumerator <T> GetRealEnumerator(EnumeratorSpy enumeratorSpy) { return(_enumerators[enumeratorSpy]); }
private void RemoveSpyToRealEnumeratorMapping(EnumeratorSpy enumeratorSpy) { _enumerators.Remove(enumeratorSpy); }
private void AddSpyToRealEnumeratorMapping(EnumeratorSpy enumeratorSpy, IEnumerator <T> enumerator) { _enumerators.Add(enumeratorSpy, enumerator); }
private T GetCurrent(EnumeratorSpy enumeratorSpy) { NumCallsToCurrent++; return(GetRealEnumerator(enumeratorSpy).Current); }
private void Reset(EnumeratorSpy enumeratorSpy) { NumCallsToReset++; GetRealEnumerator(enumeratorSpy).Reset(); }
private bool MoveNext(EnumeratorSpy enumeratorSpy) { NumCallsToMoveNext++; return(GetRealEnumerator(enumeratorSpy).MoveNext()); }