public void ProcessMoves_MovementExecuted() { var command = new Command(RelativeDirection.Forward, 5); var coordinates = new Coordinates(10, 10); _mockCommandQueue.Stub(c => c.Count()).Return(1).Repeat.Once(); _mockCommandQueue.Stub(c => c.Count()).Return(0); _mockCommandQueue.Stub(c => c.Dequeue()).Return(command); _mockPosition.Stub(p => p.ProcessMovement(command.Distance)).Return(coordinates); _mockTerrain.Stub(t => t.WithinPerimeter(coordinates)).Return(true); _sut.ProcessMoves(); _mockPosition.AssertWasCalled(p => p.ExecuteMovement(coordinates)); }