public async Task move_should_stop_at_the_edge_of_the_garden(char orientation, int expectedY, int expectedX) { IPosition setting = new DevicePosition(5, 5, orientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); var position = _device.CurrentPosition(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); IPosition newPosition = await _device.Move(); Assert.AreEqual(expectedY, newPosition.YAxis); Assert.AreEqual(expectedX, newPosition.XAxis); Assert.AreEqual(orientation, newPosition.Orientation); }
public void present_initial_position_from_configuration_settings() { // arrange _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); // act var position = _device.CurrentPosition(); // assert Assert.AreEqual(DEVICE_POSITION_X, position.XAxis); Assert.AreEqual(DEVICE_POSITION_Y, position.YAxis); Assert.AreEqual(DEVICE_ORIENTATION, position.Orientation); }
public void Setup() { _initialSettingsMock = SetInitialSettingsMock( GARDENSIZE_LENGHT, GARDENSIZE_WIDTH, DEVICE_POSITION_Y, DEVICE_POSITION_X, DEVICE_ORIENTATION); _buffer = new DeviceBuffer(); _actuator = new TestsActuator(false); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); }
public async Task be_able_turn_90_degrees_clockwise(char currentOrientation, char expectedOrientation) { // arrange IPosition setting = new DevicePosition(5, 5, currentOrientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); // act var position = await _device.TurnClockwise(); // assert Assert.AreEqual(expectedOrientation, position.Orientation); }
public async Task turns_anti_clockwise_in_around_2_seconds() { var actuator = new TestsActuator(true); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, actuator); // act var watch = System.Diagnostics.Stopwatch.StartNew(); var position = await _device.TurnCounterClockwise(); watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; // assert Assert.GreaterOrEqual(elapsedMs, 2000); Assert.LessOrEqual(elapsedMs, 3000); }
public async Task move_one_step_forward(char orientation, int expectedY, int expectedX) { // garden: 0 x 0 -> 10 x 10 // starts at: 'N', y:5, x:5 // expects: 'N', y + 1 = 6, x IPosition setting = new DevicePosition(5, 5, orientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); var position = _device.CurrentPosition(); IPosition newPosition = await _device.Move(); Assert.AreEqual(expectedY, newPosition.YAxis); Assert.AreEqual(expectedX, newPosition.XAxis); Assert.AreEqual(orientation, newPosition.Orientation); }
public async Task be_able_turn_anti_clockwise_in_sequence(char start, int numberTurns, char expected) { // arrange IPosition setting = new DevicePosition(5, 5, start) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); IPosition position = _device.CurrentPosition(); // act for (int i = 0; i < numberTurns; i++) { position = await _device.TurnCounterClockwise(); } // assert Assert.AreEqual(expected, position.Orientation); }
public async Task receive_move_instructions_and_buffer_them_for_execution() { var actuator = new TestsActuator(true); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, actuator); // act var watch = System.Diagnostics.Stopwatch.StartNew(); _device.Move(); _device.Move(); _device.Move(); var position = await _device.Move(); watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; // assert Assert.GreaterOrEqual(elapsedMs, 5000 * 4); Assert.LessOrEqual(elapsedMs, 6000 * 4); }
public void Setup() { var positionMock = new Mock <IPosition>(); positionMock.Setup(x => x.Orientation).Returns('N'); positionMock.Setup(x => x.XAxis).Returns(5); positionMock.Setup(x => x.YAxis).Returns(5); var gardenSizeMock = new Mock <ISize>(); gardenSizeMock.Setup(x => x.Lenght).Returns(10); gardenSizeMock.Setup(x => x.Width).Returns(10); var settingsMock = new Mock <ISettings>(); settingsMock.Setup(x => x.DevicePosition).Returns(positionMock.Object); settingsMock.Setup(x => x.GardenSize).Returns(gardenSizeMock.Object); var buffer = new DeviceBuffer(); var actuator = new TestsActuator(true); var device = new SLMMDevice(settingsMock.Object, buffer, actuator); _sut = new LawnMowerController(device); }