public void DispatchWithValidCommandSetShouldTransmitCorrectData() { var establishGrid = new EstablishGridCommand("5 5"); var confirmPosition = new ConfirmPositionCommand("1 2 N"); var move = new MoveCommand("LMRM"); var commandSet = new CommandSet(establishGrid, confirmPosition, move); var guidance = new MockRoverGuidance(cs => { Assert.IsNotNull(commandSet); Assert.AreEqual(establishGrid.Instructions, commandSet.EstablishGrid.Instructions); Assert.AreEqual(establishGrid.Grid.Width, commandSet.EstablishGrid.Grid.Width); Assert.AreEqual(establishGrid.Grid.Height, commandSet.EstablishGrid.Grid.Height); Assert.AreEqual(confirmPosition.Instructions, commandSet.ConfirmPosition.Instructions); Assert.AreEqual(confirmPosition.Coordinates.X, commandSet.ConfirmPosition.Coordinates.X); Assert.AreEqual(confirmPosition.Coordinates.Y, commandSet.ConfirmPosition.Coordinates.Y); Assert.AreEqual(confirmPosition.Heading, commandSet.ConfirmPosition.Heading); Assert.AreEqual(move.Instructions, commandSet.Move.Instructions); Assert.AreEqual(move.Moves.Count, commandSet.Move.Moves.Count); Assert.AreEqual(move.Moves[0], commandSet.Move.Moves[0]); Assert.AreEqual(move.Moves[1], commandSet.Move.Moves[1]); Assert.AreEqual(move.Moves[2], commandSet.Move.Moves[2]); Assert.AreEqual(move.Moves[3], commandSet.Move.Moves[3]); }, p => new Point(2, 1), h => Heading.North); var listener = new MockCommandSetListener(m => { Assert.AreEqual("2 1 N", m); }); var dispatcher = new LocalCommandSetDispatcher(guidance, listener); dispatcher.Dispatch(commandSet); }
public void InstructionsWithNoValuesShouldThrowException() { var instructions = ""; Assert.ThrowsException <ArgumentException>(() => { var command = new EstablishGridCommand(instructions); }); }
public void InstructionsWithIncorrectlyFormattedValuesShouldThrowException() { var instructions = "4 N"; Assert.ThrowsException <ArgumentException>(() => { var command = new EstablishGridCommand(instructions); }); }
public void InstructionsWithNullValueShouldThrowException() { string instructions = null; Assert.ThrowsException <ArgumentException>(() => { var command = new EstablishGridCommand(instructions); }); }
public void NullMoveShouldThrowException() { var establishGrid = new EstablishGridCommand("5 5"); var confirmPosition = new ConfirmPositionCommand("1 2 N"); Assert.ThrowsException <ArgumentNullException>(() => { var commandSet = new CommandSet(establishGrid, confirmPosition, null); }); }
public void NullConfirmPositionShouldThrowException() { var establishGrid = new EstablishGridCommand("5 5"); var move = new MoveCommand("LMRM"); Assert.ThrowsException <ArgumentNullException>(() => { var commandSet = new CommandSet(establishGrid, null, move); }); }
public void ZeroByZeroGridSizeShouldCreateObjectSuccessfully() { var instructions = "0 0"; var command = new EstablishGridCommand(instructions); Assert.IsNotNull(command); Assert.AreEqual(instructions, command.Instructions); Assert.AreEqual(0, command.Grid.Width); Assert.AreEqual(0, command.Grid.Height); }
public void CorrectInstructionsShouldCreateObjectSuccessfully() { var instructions = "4 5"; var command = new EstablishGridCommand(instructions); Assert.IsNotNull(command); Assert.AreEqual(instructions, command.Instructions); Assert.AreEqual(4, command.Grid.Width); Assert.AreEqual(5, command.Grid.Height); }
public void MoveWithMoveCommandGoingPastYMaximumShouldThrowException() { var establishGrid = new EstablishGridCommand("5 5"); var confirmPosition = new ConfirmPositionCommand("1 2 N"); var move = new MoveCommand("MMMMM"); var commandSet = new CommandSet(establishGrid, confirmPosition, move); var guidance = new LocalRoverGuidance(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { guidance.Move(commandSet); }); }
public void MoveWithNoMovesShouldHaveCorrectPositionAndHeading() { var establishGrid = new EstablishGridCommand("5 5"); var confirmPosition = new ConfirmPositionCommand("1 2 N"); var move = new MoveCommand(""); var commandSet = new CommandSet(establishGrid, confirmPosition, move); var guidance = new LocalRoverGuidance(); guidance.Move(commandSet); Assert.AreEqual(1, guidance.Coordinates.X); Assert.AreEqual(2, guidance.Coordinates.Y); Assert.AreEqual(Heading.North, guidance.Heading); }
public void CorrectArgumentsShouldCreateObjectSuccessfully() { var establishGrid = new EstablishGridCommand("5 5"); var confirmPosition = new ConfirmPositionCommand("1 2 N"); var move = new MoveCommand("LMRM"); var commandSet = new CommandSet(establishGrid, confirmPosition, move); Assert.IsNotNull(commandSet); Assert.AreEqual(establishGrid.Instructions, commandSet.EstablishGrid.Instructions); Assert.AreEqual(establishGrid.Grid.Width, commandSet.EstablishGrid.Grid.Width); Assert.AreEqual(establishGrid.Grid.Height, commandSet.EstablishGrid.Grid.Height); Assert.AreEqual(confirmPosition.Instructions, commandSet.ConfirmPosition.Instructions); Assert.AreEqual(confirmPosition.Coordinates.X, commandSet.ConfirmPosition.Coordinates.X); Assert.AreEqual(confirmPosition.Coordinates.Y, commandSet.ConfirmPosition.Coordinates.Y); Assert.AreEqual(confirmPosition.Heading, commandSet.ConfirmPosition.Heading); Assert.AreEqual(move.Instructions, commandSet.Move.Instructions); Assert.AreEqual(move.Moves.Count, commandSet.Move.Moves.Count); Assert.AreEqual(move.Moves[0], commandSet.Move.Moves[0]); Assert.AreEqual(move.Moves[1], commandSet.Move.Moves[1]); Assert.AreEqual(move.Moves[2], commandSet.Move.Moves[2]); Assert.AreEqual(move.Moves[3], commandSet.Move.Moves[3]); }