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); }
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); }