The reason for the problems with anonymous types is that they are internal types rather than public, so your tests can't use them.
If you add an InternalsVisibleTo attribute to your webapi project you'll then be able to reference the result and its Content via dynamic eg:
[TestMethod]
public void TestGetOrderInfo()
{
var controller = new OrderController(_repo);
dynamic results = controller.GetOrderInfo(46);
dynamic content = results.Content;
...
}