public TryGetLimitOrder ( uint exchangeOrderId ) : ILimitOrder | ||
exchangeOrderId | uint | |
return | ILimitOrder |
public void ShouldCreateNewOrderBookItMatchItAndRemoveIt() { var repo = new OrderRepository(); var limitAlgo = new LimitOrderMatchingAlgorithm(new DateService()); var marketAlgo = new MarketOrderMatchingAlgorithm(new DateService()); var level1 = new OrderBookBestBidAsk("ABC"); var book = new OrderBook("ABC", limitAlgo, marketAlgo, level1); var sellOrder1 = repo.NewLimitOrder("ABC", 9, 88.2d, 100, WayEnum.Sell); book.AddLimitOrder(sellOrder1); var buyOrder1 = repo.NewLimitOrder("ABC", 9, 88.0d, 50, WayEnum.Buy); book.AddLimitOrder(buyOrder1); Assert.AreEqual(88.2d, level1.BestAskPrice); Assert.AreEqual(88.0d, level1.BestBidPrice); buyOrder1.Modify(50, 88.2d); Assert.AreEqual(88.2d, level1.BestAskPrice); Assert.IsNull(level1.BestBidPrice); var retrievedBuyOrder = repo.TryGetLimitOrder(buyOrder1.ExchangeOrderId); Assert.IsNull(retrievedBuyOrder); }
public void RepositoryShouldReturnNullOnNonExistingOrderId() { var repo = new OrderRepository(); var order = repo.NewLimitOrder("ABC", 12, 200.45d, 90, WayEnum.Buy); var retrievedOrder = repo.TryGetLimitOrder(666); Assert.IsNull(retrievedOrder); }
public void NewOrderShouldBeRetrievableThroughOrderId() { var repo = new OrderRepository(); var order = repo.NewLimitOrder("ABC", 12, 200.45d, 90, WayEnum.Buy); var retrievedOrder = repo.TryGetLimitOrder(order.ExchangeOrderId); Assert.AreEqual(order, retrievedOrder); }
public void RepositoryShouldRemoveOrderFromRepositoryWhenOrderIsDeleted() { var repo = new OrderRepository(); var order = repo.NewLimitOrder("ABC", 12, 200.45d, 90, WayEnum.Buy); order.Delete(); var retrievedOrder = repo.TryGetLimitOrder(order.ExchangeOrderId); Assert.IsNull(retrievedOrder); }