Exemplo n.º 1
0
        public void TestCase00_StubVehicle()
        {
            // ARRANGE
            VehicleOperationsStub        roverStub = new VehicleOperationsStub();
            IEnumerable <VehicleCommand> commands  = "AAARAARA".Select(command => VehicleCommandFactory.Build(roverStub, command));
            MarsRoverEngine sut = new MarsRoverEngine(roverStub, commands);

            // ACT
            sut.ExecuteCommands();

            // ASSERT
            Assert.Equal <int>(6, roverStub.AdvanceInvocations);
            Assert.Equal <int>(2, roverStub.TurnRightInvocations);
            Assert.Equal <int>(0, roverStub.TurnLeftInvocations);
        }
Exemplo n.º 2
0
        public void TestCase01()
        {
            // ARRANGE
            Terrain mars  = new Terrain(5, 5);
            Vehicle rover = new Vehicle(mars);

            rover.Initialize(0, 0, Orientation.N);
            IEnumerable <VehicleCommand> commands = "AAARAARAAAA".Select(command => VehicleCommandFactory.Build(rover, command));
            MarsRoverEngine sut = new MarsRoverEngine(rover, commands);

            // ACT
            sut.ExecuteCommands();
            var finalStatus = sut.GetCurrentVehicleStatus();

            // ASSERT
            Assert.Equal <int>(2, finalStatus.Position.X);
            Assert.Equal <int>(-1, finalStatus.Position.Y);
            Assert.Equal <Orientation>(Orientation.S, finalStatus.Orientation);
            Assert.False(finalStatus.InTerrainLimits);
        }