Exemplo n.º 1
0
        public void Plato_IsInRange_Should_Return_True_When_Input_Is_InRange()
        {
            _positionMock.Setup(p => p.X).Returns(1);
            _positionMock.Setup(p => p.Y).Returns(2);

            bool isInRange = _plato.IsInRange(_positionMock.Object);

            Assert.IsTrue(isInRange);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            string isContinue = "Y";

            IPlato plato = _factory.GetInputReader <IPlato>().ReadInput();

            while (isContinue == "Y")
            {
                IPosition startPosition = _factory.GetInputReader <IPosition>().ReadInput();

                if (!plato.IsInRange(startPosition))
                {
                    Console.WriteLine("Start position is out of range!");
                    continue;
                }

                IDriver   driver       = _factory.CreateDriver(plato, startPosition);
                IPosition lastPosition = null;
                while (lastPosition == null)
                {
                    ICommandList commandList = _factory.GetInputReader <ICommandList>().ReadInput();

                    try
                    {
                        lastPosition = driver.Drive(commandList);
                    }
                    catch (ArgumentOutOfRangeException e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                Console.WriteLine($"Rower position: {lastPosition}");

                Console.WriteLine("Do you want continue? (Y/N)");
                isContinue = Console.ReadLine().ToUpperInvariant();
            }
        }