public void PeekDoesNotDequeueItem()
        {
            var queue = new LeakyQueue <int>();

            queue.Enqueue(12);
            queue.Enqueue(34);

            Assert.AreEqual(12, queue.Peek());
            Assert.AreEqual(12, queue.Peek());
        }
        public void QueueHeadCanBeAdvanced()
        {
            var queue = new LeakyQueue <int>();

            queue.Enqueue(12);
            queue.Enqueue(34);

            Assert.AreEqual(12, queue.Peek());
            queue.AdvanceHead();
            Assert.AreEqual(34, queue.Peek());
        }
        public void PeekInEmptyQueueThrowsException()
        {
            var queue = new LeakyQueue <int>();

            Assert.Throws <InvalidOperationException>(
                delegate() { queue.Peek(); }
                );
        }