title: Moq First() Last() and GetEnumerator() wierdness
body: <p>I am Moqing my Route Parts from a 
  <code>rps = new List</code><code>... (3 Route Parts)</code></p>
  
  <p>and <code>Moqing GetEnumerator()</code> for my Route as below  </p>
  
  <p><code>route.Setup(ro =&gt; ro.GetEnumerator()).Returns(rps.GetEnumerator());</code></p>
  
  <p>but the <code>Moq</code> fails in the following code with "Sequence contains no elements" on the call to <code>Last()</code></p>
  
  <pre><code>o.Route.Any(rp =&gt; rp.IsNonTowLocation &amp;&amp; 
  rp != o.Route.First() &amp;&amp; 
  rp != o.Route.Last())
  </code></pre>
  
  <p>Looking at <code>First()</code> <code>Last()</code> in the immediate windows I find the values change if I execute <code>First()</code> <code>Last()</code> multiple times. Its as if the <code>MoveNext()</code> gets called but not <code>Reset()</code> and the Enumerable it totally confused. Has anyone experienced this with <code>Moq</code> and found a solution?</p>