public void MarketOrderShouldDecreaseAvailableQuantity() { var market = new Market { SellPrice = 100M, SellQuantity = 50 }; var order = market.CreateMarketOrder(Way.Buy, quantity: 10); market.Send(order); Check.That(market.SellQuantity).IsEqualTo(40); }
public void MarketOrderShouldCaptureExec() { var market = new Market { SellPrice = 100M, SellQuantity = 50 }; var executed = false; var order = market.CreateMarketOrder(Way.Buy, quantity: 10); market.OrderExecuted += (s, a) => executed = true; market.Send(order); Check.That(executed).IsTrue(); Check.That(market.SellQuantity).IsEqualTo(40); }
public void LargeMarketOrderShouldFail() { var market = new Market { SellPrice = 100M, SellQuantity = 50 }; var order = market.CreateMarketOrder(Way.Buy, quantity: 100); bool failed = false; string failureReason = null; market.OrderFailed += (s, failure) => { failed = true; failureReason = failure; }; market.Send(order); Check.That(failed).IsTrue(); Check.That(failureReason).IsEqualTo("Excessive quantity!"); }