public void Dequeue_QueueContainsSeveralElements_DeletesReturnedElement()
        {
            //
            // Arrange.
            //
            bool   expectedResult            = false;
            bool   actualResult              = false;
            string firstElement              = "First";
            QueueThroughArray <string> queue = new QueueThroughArray <string>();

            queue.Enqueue(firstElement);
            queue.Enqueue("Second");
            queue.Enqueue("Third");

            //
            // Act.
            //
            queue.Dequeue();
            string[] arrayOfLeftItems = new string[]
            {
                queue.Dequeue(),
                     queue.Dequeue()
            };
            actualResult = arrayOfLeftItems.Contains(firstElement);

            //
            // Assert.
            //
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void Dequeue_QueueIsEmpty_ThrowsInvalidOperationException()
        {
            //
            // Arrange.
            //
            QueueThroughArray <string> queue = new QueueThroughArray <string>();

            //
            // Act.
            //
            queue.Dequeue();
        }
        public void Dequeue_QueueContainsSeveralElements_ReturnsFirstElement()
        {
            //
            // Arrange.
            //
            string expectedResult            = "First";
            string actualResult              = string.Empty;
            QueueThroughArray <string> queue = new QueueThroughArray <string>();

            queue.Enqueue(expectedResult);
            queue.Enqueue("Second");
            queue.Enqueue("Third");

            //
            // Act.
            //
            actualResult = queue.Dequeue();

            //
            // Assert.
            //
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void Enqueue_AmountOfAddedElementsIsMoreThanLength_AddsAllElementsReturnsFirstOne()
        {
            //
            // Arrange.
            //
            string expectedResult            = "First";
            string actualResult              = string.Empty;
            int    length                    = 2;
            QueueThroughArray <string> queue = new QueueThroughArray <string>(length);

            queue.Enqueue(expectedResult);
            queue.Enqueue("Second");
            queue.Enqueue("Third");

            //
            // Act.
            //
            actualResult = queue.Dequeue();

            //
            // Assert.
            //
            Assert.AreEqual(expectedResult, actualResult);
        }