/// <summary> /// Handles the ParseSensorRecordCommand request /// </summary> /// <param name="command">ParseSensorRecordCommand request parameters</param> /// <param name="cancellationToken">The token to monitor for cancellation requests. The default value is System.Threading.CancellationToken.None.</param> /// <returns>Returns a SensorLogModel wrapped in a CommandResult object</returns> public async Task <CommandResult <SensorLogModel> > Handle(ParseSensorRecordCommand command, CancellationToken cancellationToken = default) { ValidationResult validation = _validator.Validate(command); if (!validation.IsValid) { _logger.LogError("Parse Sensor Record Command with Path: {path} produced errors on validation: {errors}", command.Path, validation.ToString()); return(new CommandResult <SensorLogModel> { Result = null, CommandResultType = CommandResultType.InvalidInput }); } SensorLogModel result = await _repository.ParseInputLogFileAsync(command.Path); if (result == null) { _logger.LogError("Parse Sensor Record Command with Path: {path} produced an invalid result.", command.Path); return(new CommandResult <SensorLogModel> { Result = null, CommandResultType = CommandResultType.Error }); } return(new CommandResult <SensorLogModel> { Result = result, CommandResultType = CommandResultType.Success }); }
public async Task ParseInputLogFileTest(string input, SensorLogModel expected) { // Arrange string path = @"C:\temp\file.txt"; _fileSystem .Setup(fs => fs.File.ReadAllTextAsync(It.IsAny <string>(), default)) .ReturnsAsync(input); // Act SensorLogModel actual = await _parseSensorRecordRepository.ParseInputLogFileAsync(path); // Assert actual .Should() .NotBeNull() .And .Equals(expected); }