Fix for Content negotiation should fallback to the first formatter that can write the type #1033

Eh the difference with using a mock is that you're that a method is called with the specific arguments you expect. So it's easier to see what's really expected in the test.

I guess what I don't really like about this is that this really feels like multiple test cases.
1. request doesn't provide an accept header (count == 2)
2. request provides a single accept header value that we can't match (count == 3)
3. request provides multiple accept header values that we can't match (count == 4)

In my mind, making it a data-driven test just obscures what's being tested.

Your call if you want to change it.. I think it will be hard for someone looking at this code in 6 months to tell why this was written as-is.