public void TestCopperForGoldOrder()
{
var askRepositoryMock = new Mock <IAskRepository>();
askRepositoryMock.Setup(f => f.GetAsks()).Returns(GetAsksForCopperForGoldOrder());
var commodityRepositoryMock = new Mock <ICommodityRepository>();
commodityRepositoryMock.Setup(f => f.GetCommodities()).Returns(GetCommodities());
Ask ask = new Ask();
ask.AllowPartialFill = true;
ask.ApplyCommissionToBuy = true;
ask.BuyQuantity = 1000000;
ask.CommodityBuyID = copper;
ask.CommoditySellID = gold;
ask.SellRatio = 1295;
ask.BuyRatio = 3;
ask.MaxLegDepth = 4;
var askRepository = askRepositoryMock.Object;
OrderProcessor proc = new OrderProcessor(askRepository, commodityRepositoryMock.Object);
Stopwatch watch = new Stopwatch();
proc.Start().Wait();
watch.Start();
var order = proc.GetQuote(ask);
watch.Stop();
TestContext.WriteLine(watch.ElapsedMilliseconds.ToString());
Assert.AreNotEqual(0, order.Sum(o => o.OrderLegs.Where(ol => ol.CommodityBuyID == copper).Sum(ol => ol.BuyQuantity)));
}