public void TestSimpleDOMUpdate() { lastUpdatedSots = null; IDOM dom = new K2Depth.K2DOM(); Assert.IsNotNull(dom); // wire up the handlers dom.DOMImage += DOMImage; dom.DOMUpdate += DOMUpdate; IDOMData domData = dom.Create(100.00M, 20M, 1); Assert.IsNotNull(domData); lastUpdatedSots = new List<IDOMSlot>(); dom.Update(101M, 5, 4); System.Threading.Thread.Sleep(1000); int slotIndex = dom.GetSlotIndex(101M); Assert.AreNotEqual(-1, slotIndex); IDOMSlot slot = dom.DOMData.K2DOMSlots[slotIndex]; Assert.IsNotNull(slot); Assert.AreEqual(101M, slot.Price); Assert.AreEqual(5M, slot.BidSize); Assert.AreEqual(4M, slot.AskSize); Assert.IsNotNull(lastUpdatedSots); Assert.AreEqual(1, lastUpdatedSots.Count); Assert.AreEqual(101M, lastUpdatedSots[0].Price); Assert.AreEqual(5M, lastUpdatedSots[0].BidSize.Value); Assert.AreEqual(4M, lastUpdatedSots[0].AskSize.Value); lastUpdatedSots = new List<IDOMSlot>(); dom.Update(99M, 3, 5); System.Threading.Thread.Sleep(1000); // make sure 101 is not affected slotIndex = dom.GetSlotIndex(101M); Assert.AreNotEqual(-1, slotIndex); slot = dom.DOMData.K2DOMSlots[slotIndex]; Assert.IsNotNull(slot); Assert.AreEqual(101M, slot.Price); Assert.AreEqual(5M, slot.BidSize); Assert.AreEqual(4M, slot.AskSize); // make sure 99 is updated slotIndex = dom.GetSlotIndex(99M); Assert.AreNotEqual(-1, slotIndex); slot = dom.DOMData.K2DOMSlots[slotIndex]; Assert.IsNotNull(slot); Assert.AreEqual(99M, slot.Price); Assert.AreEqual(3M, slot.BidSize); Assert.AreEqual(5M, slot.AskSize); // Update existing lastUpdatedSots = new List<IDOMSlot>(); dom.Update(99M, 101, 5); System.Threading.Thread.Sleep(1000); // make sure 99 is updated slotIndex = dom.GetSlotIndex(99M); Assert.AreNotEqual(-1, slotIndex); slot = dom.DOMData.K2DOMSlots[slotIndex]; Assert.IsNotNull(slot); Assert.AreEqual(99M, slot.Price); Assert.AreEqual(101M, slot.BidSize); Assert.AreEqual(5M, slot.AskSize); Assert.AreEqual(99M, lastUpdatedSots[0].Price); Assert.AreEqual(101M, lastUpdatedSots[0].BidSize); Assert.AreEqual(5M, lastUpdatedSots[0].AskSize); // Apply simple update }