title: How to unit test the default case of an enum based switch statement
body: <p>I have a switch statement in a factory that returns a command based on the value of the enum passed in. Something like:</p>
  
  <pre><code>public ICommand Create(EnumType enumType)
  {
     switch (enumType)
     {
        case(enumType.Val1):
           return new SomeCommand();
        case(enumType.Val2):
           return new SomeCommand();
        case(enumType.Val3):
           return new SomeCommand();
        default:
           throw new ArgumentOutOfRangeException("Unknown enumType" + enumType);
     }
  }
  </code></pre>
  
  <p>I currently have a switch case for each value in the enum. I have unit tests for each of these cases. How do I unit test that the default case throws an error?  Obviously, at the moment I can't pass in an unknown EnumType but who's to say this won't be changed in the future.  Is there anyway I can extend or mock the EnumType purely for the sake of the unit test?</p>