public void TestPrintMethod_Valid(string[] values)
        {
            ListIterator <string> list      = new ListIterator <string>(values);
            FieldInfo             listField = GetListFieldInfo();
            string firstItem = ((List <string>)listField.GetValue(list)).First();

            Assert.That(() => list.Print(), Is.EqualTo(firstItem));

            FieldInfo index = GetIndexFieldInfo();

            index.SetValue(list, 1);
            string secondItem = ((List <string>)listField.GetValue(list))[1];

            Assert.That(() => list.Print(), Is.EqualTo(secondItem));
        }
        public void CallingPrintOnCollectionWithoutElements()
        {
            ListIterator <string> listIterator = new ListIterator <string>(new List <string>());

            Assert.That(() => listIterator.Print(),
                        Throws.InvalidOperationException.With.Message.EqualTo("Invalid Operation!"));
        }
Ejemplo n.º 3
0
    public static void Main()
    {
        string input;

        while ((input = Console.ReadLine()) != "END")
        {
            var tokens  = input.Split().ToArray();
            var command = tokens[0];
            try
            {
                switch (command)
                {
                case "Create":
                    iterator = new ListIterator(tokens.Skip(1).ToList());
                    break;

                case "HasNext":
                    Console.WriteLine(iterator.HasNext());
                    break;

                case "Move":
                    Console.WriteLine(iterator.Move());
                    break;

                case "Print":
                    iterator.Print();
                    break;
                }
            }
            catch (ArgumentNullException exception)
            {
                Console.WriteLine(exception.Message);
            }
        }
    }
Ejemplo n.º 4
0
    static void Main(string[] args)
    {
        string[] input = Console.ReadLine().Split();

        ListIterator collectons = new ListIterator(input.Skip(1));
        string       commands;

        while ((commands = Console.ReadLine()) != "END")
        {
            try
            {
                switch (commands)
                {
                case "Move":
                    Console.WriteLine(collectons.Move());
                    break;

                case "HasNext":
                    Console.WriteLine(collectons.HasNext());
                    break;

                case "Print":
                    Console.WriteLine(collectons.Print());
                    break;
                }
            }
            catch (ArgumentNullException e)
            {
            }
        }
    }
Ejemplo n.º 5
0
    public void ConstructorTest_EmptyInput(params string[] collection)
    {
        ListIterator listIterator = new ListIterator(collection);

        Assert.That(() => listIterator.Print(),
                    Throws.InvalidOperationException);
    }
    public void PrintThrowsExceptionIfCalledOnEmptyCollection()
    {
        var iterator = new ListIterator(new List <string>());

        Assert.That(() => iterator.Print(),
                    Throws.InvalidOperationException);
    }
Ejemplo n.º 7
0
        public void TestValidPrint()
        {
            int[] values = new[] { 1, 2, 3, 5, 67, 7 };
            ListIterator <int> listyIterator = new ListIterator <int>(values.ToList());

            listyIterator.Print();
        }
        public void TestPrint_ToThrowExeption()
        {
            var list         = new List <string>();
            var listIterator = new ListIterator(list);

            Assert.Throws <InvalidOperationException>(() => listIterator.Print());
        }
        public void PrintingCurrentElement()
        {
            int currentElement = 3;

            listIterator.Move();
            listIterator.Move();
            Assert.That(listIterator.Print(), Is.EqualTo(currentElement.ToString()));
        }
    public void PrintShouldThrowExceptionWhenListIsEmpty()
    {
        ListIterator iterator = new ListIterator(new string[0]);

        Assert.That(() => iterator.Print(),
                    Throws.InvalidOperationException
                    .With.Message.EqualTo("Invalid Operation!"));
    }
Ejemplo n.º 11
0
        public void PrintOnEmptyListThrowsException()
        {
            ListIterator li = new ListIterator();

            Assert.That(() => li.Print(), Throws
                        .InvalidOperationException
                        .With.Message.EqualTo("Invalid operation!"));
        }
Ejemplo n.º 12
0
        public void PrintFromEmptyCollection()
        {
            //Arrange
            ListIterator <int> listIterator = new ListIterator <int>(new List <int>());

            //Assert
            Assert.Throws <ArgumentException>(() => listIterator.Print());
        }
Ejemplo n.º 13
0
        public void Print_NoElements_ThrowException()
        {
            //Arrange
            var emptyCollection = new List <string>();
            var listIterator    = new ListIterator(emptyCollection);

            //Assert
            Assert.Throws <InvalidOperationException>(() => listIterator.Print());
        }
Ejemplo n.º 14
0
        public void Print_CollectionWithoutElements_TrowsInvalidOperationException()
        {
            //Arrange
            var list = new ListIterator(new string[] { });

            //Assert
            Assert.That(() => list.Print(), Throws.InvalidOperationException
                        .With.Message.EqualTo("Invalid Operation!"));
        }
 public void LastNameInListIsStillPrintedWhenMoveCommandReturnsFalse()
 {
     iterator = new ListIterator(input);
     for (int i = 1; i <= 3; i++)
     {
         iterator.Move();
     }
     Assert.That(() => iterator.Print(), Is.EqualTo("Gosho"));
 }
Ejemplo n.º 16
0
        private static void ExecuteCommands()
        {
            string[]     inputArgs = Console.ReadLine().Split();
            ListIterator iterator  = new ListIterator(inputArgs.Skip(1));
            //MethodInfo[] iteratorMethods = iterator.GetType().GetMethods();

            string command = string.Empty;

            while (!(command = Console.ReadLine()).Equals("END"))
            {
                try
                {
                    switch (command)
                    {
                    case "HasNext":
                        Console.WriteLine(iterator.HasNext());
                        break;

                    case "Move":
                        Console.WriteLine(iterator.Move());
                        break;

                    case "Print":
                        Console.WriteLine(iterator.Print());
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                //try
                //{
                //    var parsedMethod = iteratorMethods.FirstOrDefault(m => m.Name == command);

                //    if (parsedMethod == null)
                //    {
                //        Console.WriteLine($"This option {command} does not exists");
                //    }

                //    Console.WriteLine(parsedMethod.Invoke(iterator, new object[] { }));
                //}
                //catch (TargetInvocationException tie)
                //{
                //    if (tie.InnerException is InvalidOperationException)
                //    {
                //        Console.WriteLine(tie.InnerException.Message);
                //    }
                //}
                //catch (ArgumentNullException ane)
                //{
                //    Console.WriteLine(ane.Message);
                //}
            }
        }
Ejemplo n.º 17
0
        public void TestThatPrintMethodReturnsTheProperResult(int currentElement)

        {
            for (int i = 0; i < currentElement; i++)
            {
                this.listIterator.Move();
            }

            Assert.AreEqual(this.arguments[currentElement], listIterator.Print());
        }
Ejemplo n.º 18
0
    public static void Main()
    {
        string input = Console.ReadLine();

        var tokens = input.Split();

        ListIterator listIterator;

        try
        {
            listIterator = new ListIterator(tokens.Skip(1).ToArray());
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }
        while (input != "END")
        {
            tokens = input.Split();

            var result = string.Empty;

            var command = tokens[0];

            switch (command)
            {
            case "Move":
                result = listIterator.Move().ToString();
                break;

            case "HasNext":
                result = listIterator.HasNext().ToString();
                break;

            case "Print":
                try
                {
                    listIterator.Print();
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine(ioe.Message);
                }
                break;
            }

            if (!string.IsNullOrEmpty(result))
            {
                Console.WriteLine(result);
            }

            input = Console.ReadLine();
        }
    }
Ejemplo n.º 19
0
        public void PrintShouldThrowExceptionIfCalledOnEmptyCollection()
        {
            // Arrange
            var strings = new List <string>()
            {
            };
            var list = new ListIterator(strings);

            // Assert
            Assert.Throws <InvalidOperationException>(() => list.Print());
        }
Ejemplo n.º 20
0
        public void Print_IfThereAreItem_PrintTheCorrectOne()
        {
            var list = new List <string> {
                "a", "b", "c"
            };
            var iterator = new ListIterator(list);
            var expected = "b";

            iterator.Move();

            Assert.AreEqual(expected, iterator.Print());
        }
Ejemplo n.º 21
0
        public void Print_ElementsArePresentInList_PrintElement()
        {
            //Arrange
            var list = new ListIterator(new[] { "First", "Second", "Third", "Forth", "Fifth", "Sixth", "Seventh", "Eight", });

            //Assert
            while (list.HasNext())
            {
                Assert.That(() => list.Print(), Is.TypeOf <string>());
                list.Move();
            }
        }
    public void PrintReturnsTheCorrectElement()
    {
        string[] parameters = new string[] { "Pesho", "Gosho", "Sasho", "Stamat", "Balkan" };

        ListIterator iterator = new ListIterator(parameters);

        iterator.Move();

        string expectedValue = "Gosho";

        Assert.That(iterator.Print(), Is.EqualTo(expectedValue));
    }
Ejemplo n.º 23
0
        public void TestPrintMethod()
        {
            var          initialValues = new string[] { "a", "b", "c" };
            ListIterator listIterator  = new ListIterator(initialValues);

            int indexToCheck = initialValues.Length - 2;

            FieldInfo fieldInfo = GetIndexFieldInfo();

            fieldInfo.SetValue(listIterator, indexToCheck);

            Assert.That(() => listIterator.Print(), Is.EqualTo(initialValues[indexToCheck]));
        }
Ejemplo n.º 24
0
        public void PrintTestGeneral()
        {
            //Arrange
            ListIterator <int> listIterator = new ListIterator <int>(new List <int>()
            {
                1, 2, 3
            });

            //Act
            string result = listIterator.Print();

            //Assert
            Assert.AreEqual("1", result);
        }
Ejemplo n.º 25
0
        public void TestPrint()
        {
            var list = new ListIterator();

            FieldInfo listInfo = typeof(ListIterator)
                                 .GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
                                 .First(p => p.FieldType == typeof(List <string>));

            var strings = new List <string> {
                "a", "b"
            };

            listInfo.SetValue(list, strings);
            Assert.That(() => list.Print(), Is.EqualTo(strings[0]));
        }
Ejemplo n.º 26
0
        public void Print_ExistingElements_ReturnElement()
        {
            //Arrange
            var collection = new List <string>()
            {
                "Joseph", "Charles"
            };
            var listIterator = new ListIterator(collection);

            //Act
            var stateUnderTest = listIterator.Print();

            //Assert
            Assert.AreEqual("Joseph", stateUnderTest);
        }
Ejemplo n.º 27
0
        public void PrintReturnsElement()
        {
            string[] testData   = new string[] { "aa", "bb", "cc" };
            string[] resultData = new string[testData.Length];

            ListIterator li = new ListIterator(testData);

            for (int i = 0; i < testData.Length; i++)
            {
                resultData[i] = li.Print();
                li.Move();
            }

            Assert.That(resultData, Is.EqualTo(testData));
        }
Ejemplo n.º 28
0
        public void Print_WithElements_DoesNotThrowException()
        {
            string[] arr = new string[10];
            for (int i = 0; i < 10; i++)
            {
                arr[i] = i.ToString();
            }

            ListIterator iterator = new ListIterator(arr);

            for (int i = 0; i < 10; i++)
            {
                Assert.DoesNotThrow(() => iterator.Print());
                iterator.Move();
            }
        }
Ejemplo n.º 29
0
        public void PrintShouldPrintTheElementAtTheCurrentIndex()
        {
            // Arrange
            var strings = new List <string>()
            {
                "string1", "string2", "string3"
            };
            var list           = new ListIterator(strings);
            var expectedResult = "string3";

            // Act
            list.Move();
            list.Move();

            // Assert
            Assert.AreEqual(expectedResult, list.Print());
        }
Ejemplo n.º 30
0
    static void Main()
    {
        string input = Console.ReadLine();

        ListIterator iterator = null;

        while (input != "END")
        {
            try
            {
                string[] inputTokens = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);

                switch (inputTokens[0])
                {
                case "Create":
                    string[] methodArgs = inputTokens.Skip(1).ToArray();
                    iterator = new ListIterator(methodArgs);
                    break;

                case "Move":
                    Console.WriteLine(iterator.Move());
                    break;

                case "HasNext":
                    Console.WriteLine(iterator.HasNext());
                    break;

                case "Print":
                    Console.WriteLine(iterator.Print());
                    break;
                }
            }
            catch (ArgumentException argEx)
            {
                Console.WriteLine(argEx.Message);
            }
            catch (InvalidOperationException invEx)
            {
                Console.WriteLine(invEx.Message);
            }
            input = Console.ReadLine();
        }
    }