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 GetRequestByRequestIdReturnsNullIfRequestIdIsNotFound()
        {
            IRequestQueue queue = new MemoryRequestQueue();

            Assert.AreEqual(0, queue.GetCount());

            Request request1 = CreateRequest();

            request1.Behavior.Tag = "A";

            Request request2 = CreateRequest();

            request2.Behavior.Tag = "B";

            queue.Enqueue(request1);
            queue.Enqueue(request2);

            Assert.AreEqual(2, queue.GetCount());

            Request req = queue.GetRequest(Guid.Empty);

            Assert.IsNull(req);
            Assert.AreEqual(2, queue.GetCount());
        }