示例#1
0
        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));
        }