title: Setup argment matcher with IEnumerable in NSubstitue
body: <p>I am working on a unit test for a project and I cannot figure out how to get NSubstitute to work the way I would expect it to. The issue I am having is that the code I was to substitute is in a while loop and depending on what is returned from the substituted value determines if the loop continues.</p>
  
  <p>What I would like to do is have Process() return a different result based on what is passed in. I have tried</p>
  
  <pre><code>api.Process(Arg.Is&lt;IEnumerable&lt;int&gt;&gt;(new[] {1,2,3}, Arg.Any&lt;bool&gt;()).Returns(new ProcessingResult(){Success = true, IdsNotProcessed = List&lt;int&gt;{30}});
  </code></pre>
  
  <p>but it does not seems to work as processingResult comes back null because NSubstitue is not matching the argument.</p>
  
  <pre><code>    [Test]
      public void TestTwoLoops()
      {
          var api = Substitute.For&lt;IApi&gt;();
          api.Process(/*list containing 1,2,3*/, Arg.Any&lt;bool&gt;()).Returns(new ProcessingResult(){Success = true, IdsNotProcessed = List&lt;int&gt;{30}});
          api.Process(/*list containing 30*/, Arg.Any&lt;bool&gt;()).Returns(new List&lt;int&gt;{});
  
          var sut = new WidgetMaker(api);
  
          sut.MakeWidget();
      }
  
      public class WidgetMaker
      {
          public WidgetMaker(IApi api)
          {
              _api = api;
          }
  
          public void MakeWidgets(IEnumerable&lt;int&gt; widgetIds)
          {
              var idsToProcess = widgetIds.ToList();
  
              while(true)
              {
                  if(!idsToProcess.Any())
                  {
                      berak;
                  }
  
                  var processingResult = _api.Process(idsToProcess, false);
  
                  if(processingResult.Success)
                  {
                      idsToProcess.Clear();
                      idsToProcess.AddRange(processingResult.IdsNotProcessed);
                  }
                  else
                  {
                      break;
                  }
              }
          }
  
          private IApi _api;
      }
  </code></pre>