title: Writing C# nunit test without having access to the rest of the code
body: <p>I have a class Person and the interface:</p>
  
  <pre><code>interface IService
  {
      double GetAccDetails(int personId);
  }
  
  public class Person
  {
      private int _personId;
      private IService _service;
  
      public Person(int personId, IService service)
      {
          _personId= personId;
          _service = service;
      }
  
      public double Amount {get; set;}
  
      public void UpdateBackingAcc()
      {
          Amount = _service.GetAccDetails(_personId);
      }
  }
  </code></pre>
  
  <p>And I have to cover this piece of the code with nunit tests, however I don't have access to the service,but only to the code I published.</p>
  
  <p>So my questions are:</p>
  
  <ol>
  <li><p>Should I moque it in order to write the unit tests? If yes, it will always return me some static value so I don't see much profit of it.</p></li>
  <li><p>What kind of tests could be created for the given interface? I assume, one of the tests could try to use <code>personId1</code> and get some static value, then it could use <code>personId2</code> and maybe get another value and then to check if the amount was updated or not. So if that's correct, this could be only 1 unit test.</p></li>
  </ol>
  
  <p>Probably it makes sense to check if the value is negative or not... maybe also is the value is 0...</p>
  
  <p>Any other ideas?</p>