public void RequestsIteratorIsFifo() { IRequestQueue queue = new MemoryRequestQueue(); Assert.AreEqual(0, queue.GetCount()); Request request1 = CreateRequest(); Request request2 = CreateRequest(); Request request3 = CreateRequest(); Request request4 = CreateRequest(); queue.Enqueue(request1); queue.Enqueue(request2); queue.Enqueue(request3); queue.Enqueue(request4); Assert.AreEqual(4, queue.GetCount()); List <Request> list = new List <Request>(); foreach (Request req in queue.GetRequests()) { list.Add(req); queue.Remove(req); } Assert.AreEqual(4, list.Count); Assert.IsTrue(AreEqual(request1, list[0])); Assert.IsTrue(AreEqual(request2, list[1])); Assert.IsTrue(AreEqual(request3, list[2])); Assert.IsTrue(AreEqual(request4, list[3])); Assert.AreEqual(0, queue.GetCount()); }
public void CanGetRequestByRequestId() { IRequestQueue queue = new MemoryRequestQueue(); Assert.AreEqual(0, queue.GetCount()); Request request1 = CreateRequest(); request1.Behavior.Tag = "A"; Request request2 = CreateRequest(); request2.Behavior.Tag = "B"; Request request3 = CreateRequest(); request3.Behavior.Tag = "A"; queue.Enqueue(request1); queue.Enqueue(request2); queue.Enqueue(request3); Assert.AreEqual(3, queue.GetCount()); Request req = queue.GetRequest(request2.RequestId); queue.Remove(req); Assert.IsNotNull(req); Assert.IsTrue(AreEqual(request2, req)); Assert.AreEqual(2, queue.GetCount()); }
public void RemovingARequestsDecreasesCount() { IRequestQueue queue = new MemoryRequestQueue(); Request request = CreateRequest(); Assert.AreEqual(0, queue.GetCount()); queue.Enqueue(request); Assert.AreEqual(1, queue.GetCount()); queue.Remove(request); Assert.AreEqual(0, queue.GetCount()); }
public void RequestsByPriceAreFifo() { IRequestQueue queue = new MemoryRequestQueue(); Assert.AreEqual(0, queue.GetCount()); Request request1 = CreateRequest(); request1.Behavior.Stamps = 7; Request request2 = CreateRequest(); request2.Behavior.Stamps = 6; Request request3 = CreateRequest(); request3.Behavior.Stamps = 1; Request request4 = CreateRequest(); request4.Behavior.Stamps = 5; queue.Enqueue(request1); queue.Enqueue(request2); queue.Enqueue(request3); queue.Enqueue(request4); Assert.AreEqual(4, queue.GetCount()); List <Request> list = new List <Request>(); foreach (Request req in queue.GetRequests(5)) { list.Add(req); queue.Remove(req); } Assert.AreEqual(3, list.Count); Assert.IsTrue(AreEqual(request1, list[0])); Assert.IsTrue(AreEqual(request2, list[1])); Assert.IsTrue(AreEqual(request4, list[2])); Assert.AreEqual(1, queue.GetCount()); }
public void CanGetRequestsIteratorByPrice() { IRequestQueue queue = new MemoryRequestQueue(); Assert.AreEqual(0, queue.GetCount()); Request request1 = CreateRequest(); request1.Behavior.Stamps = 8; Request request2 = CreateRequest(); request2.Behavior.Stamps = 3; Request request3 = CreateRequest(); request3.Behavior.Stamps = 5; queue.Enqueue(request1); queue.Enqueue(request2); queue.Enqueue(request3); Assert.AreEqual(3, queue.GetCount()); List <Request> list = new List <Request>(); foreach (Request req in queue.GetRequests(5)) { list.Add(req); queue.Remove(req); } Assert.AreEqual(2, list.Count); Assert.IsTrue(AreEqual(request1, list[0])); Assert.IsTrue(AreEqual(request3, list[1])); Assert.AreEqual(1, queue.GetCount()); }