public async Task <IList <CommandResult> > GetCommandResults(Guid taskId) { using (var connection = await OpenConnection()) { //No dapper mapping because of InvalidCaseException of Status //https://github.com/StackExchange/Dapper/issues/1001 var reader = connection.ExecuteReader( "SELECT CommandResult.CommandResultId, CommandResult.TaskExecutionId, CommandResult.CommandName, CommandResult.Result, CommandResult.Status, CommandResult.FinishedAt FROM CommandResult INNER JOIN TaskExecution ON TaskExecution.TaskExecutionId = CommandResult.TaskExecutionId INNER JOIN TaskSession ON TaskSession.TaskSessionId = TaskExecution.TaskSessionId WHERE TaskSession.TaskReferenceId = @taskId", new { taskId }); var result = new List <CommandResult>(); using (reader) { while (reader.Read()) { result.Add(new CommandResult { CommandResultId = GuidTypeHandler.Parse((byte[])reader.GetValue(0)), TaskExecutionId = GuidTypeHandler.Parse((byte[])reader.GetValue(1)), CommandName = reader.GetString(2), Result = reader.GetString(3), Status = reader.IsDBNull(4) ? (int?)null : reader.GetInt32(4), FinishedAt = DateTimeOffset.FromUnixTimeMilliseconds(reader.GetInt64(5)) }); } } return(result); } }
public void Invalid_Guid_Throws_FormatException(object input) { // Arrange var handler = new GuidTypeHandler(); // Act var action = void() => handler.Parse(input); // Assert Assert.Throws <FormatException>(action); }
public void Null_Or_Empty_Returns_Empty(object input) { // Arrange var handler = new GuidTypeHandler(); // Act var result = handler.Parse(input); // Assert Assert.Equal(Guid.Empty, result); }
public void Valid_Guid_String_Returns_Guid() { // Arrange var value = Rnd.Guid; var handler = new GuidTypeHandler(); // Act var result = handler.Parse(value.ToString()); // Assert Assert.Equal(value, result); }