public void ShouldRemoveTriggerWhenTriggerIsExecuted()
{
var orderBookBestBidAsk = new OrderBookBestBidAsk("ABC");
var book = new OrderBook("ABC", limitOrderMatchingAlgorithmMock, marketOrderMatchingAlgorithmMock, orderBookBestBidAsk);
var trigger = new BestPriceTrigger("ABC", 10, WayEnum.Buy);
var stopOrder = new StopLimitOrder("abc", 10, 90, 90, WayEnum.Buy, 2, trigger);
trigger.SetTriggerAction(() =>
{
stopOrder.Delete();
});
book.AddStopLimitOrder(stopOrder);
Assert.AreEqual(trigger, book.BuySideStopLimitOrders[0].Trigger);
orderBookBestBidAsk.Set(11,12, 100, 100);
trigger.TryExecute(orderBookBestBidAsk);
Assert.AreEqual(0, book.BuySideStopLimitOrders.Count);
}