public void Fill_ThrowsException_IfOpenQuantityIsLessThanFillQuantity() { PriceLevel priceLevel = new PriceLevel(100); Order order1 = new Order() { IsBuy = true, OrderId = 1, Price = 100, Sequnce = 1 }; priceLevel.AddOrder(order1); Assert.Equal(1, priceLevel.OrderCount); Order order2 = new Order() { IsBuy = true, OrderId = 2, Price = 100, Sequnce = 2 }; priceLevel.AddOrder(order2); Assert.Equal(2, priceLevel.OrderCount); Exception ex = Assert.Throws <Exception>(() => priceLevel.Fill(order1, 1100)); Assert.Equal("Order quantity is less then requested fill quanity", ex.Message); Assert.Equal(2, priceLevel.OrderCount); }
public void Fill_RemovesOrder_IfOpenQuantityIs0() { PriceLevel priceLevel = new PriceLevel(100); Order order1 = new Order() { IsBuy = true, OrderId = 1, Price = 100, OpenQuantity = 1000, Sequnce = 1 }; priceLevel.AddOrder(order1); Assert.Equal(1, priceLevel.OrderCount); Order order2 = new Order() { IsBuy = true, OrderId = 2, Price = 100, OpenQuantity = 1000, Sequnce = 2 }; priceLevel.AddOrder(order2); Assert.Equal(2, priceLevel.OrderCount); priceLevel.Fill(order1, 1000); Assert.Equal(1, priceLevel.OrderCount); Assert.Contains(order2, priceLevel); }
public void Fill_DoesNotRemoveOrder_IfOpenQuantityIsNot0() { PriceLevel priceLevel = new PriceLevel(100); Order order1 = new Order() { IsBuy = true, OrderId = 1, OpenQuantity = 1000, Price = 100, Sequnce = 1 }; priceLevel.AddOrder(order1); Assert.Equal(1, priceLevel.OrderCount); Order order2 = new Order() { IsBuy = true, OrderId = 2, OpenQuantity = 1000, Price = 100, Sequnce = 2 }; priceLevel.AddOrder(order2); Assert.Equal(2, priceLevel.OrderCount); priceLevel.Fill(order1, 900); Assert.Equal(2, priceLevel.OrderCount); Assert.Contains(order1, priceLevel); Assert.Contains(order2, priceLevel); Assert.True(100 == order1.OpenQuantity, "Quantity should be 100"); }