Breaks a recursion by throwing a descriptive exception.
Inheritance: IRecursionHandler
 public void SutIsRecursionHandler()
 {
     // Fixture setup
     // Exercise system
     var sut = new ThrowingRecursionHandler();
     // Verify outcome
     Assert.IsAssignableFrom<IRecursionHandler>(sut);
     // Teardown
 }
 public void HandleRecursiveRequestThrows()
 {
     // Fixture setup
     var sut = new ThrowingRecursionHandler();
     // Exercise system and verify outcome
     Assert.Throws<ObjectCreationException>(
         () => sut.HandleRecursiveRequest(
             new object(),
             new[] { new object() }));
     // Teardown
 }