78 lines
2.0 KiB
C#
78 lines
2.0 KiB
C#
using RobotNet10.NavigationTune.Shared.Models;
|
|
|
|
namespace RobotNet10.NavigationTune.Shared.Interfaces;
|
|
|
|
/// <summary>
|
|
/// Test repository interface
|
|
/// </summary>
|
|
public interface ITestRepository
|
|
{
|
|
/// <summary>
|
|
/// Get test run by ID
|
|
/// </summary>
|
|
Task<TestRun?> GetByIdAsync(Guid id);
|
|
|
|
/// <summary>
|
|
/// Get all test runs
|
|
/// </summary>
|
|
Task<List<TestRun>> GetAllAsync();
|
|
|
|
/// <summary>
|
|
/// Get total count of test runs
|
|
/// </summary>
|
|
Task<int> GetCountAsync();
|
|
|
|
/// <summary>
|
|
/// Get test runs with skip/take (for pagination)
|
|
/// </summary>
|
|
Task<List<TestRun>> GetPagedAsync(int skip, int take);
|
|
|
|
/// <summary>
|
|
/// Get test runs by scenario
|
|
/// </summary>
|
|
Task<List<TestRun>> GetByScenarioAsync(Guid scenarioId);
|
|
|
|
/// <summary>
|
|
/// Get test runs by parameter set
|
|
/// </summary>
|
|
Task<List<TestRun>> GetByParameterSetAsync(Guid parameterSetId);
|
|
|
|
/// <summary>
|
|
/// Get test runs by date range
|
|
/// </summary>
|
|
Task<List<TestRun>> GetByDateRangeAsync(DateTime from, DateTime to);
|
|
|
|
/// <summary>
|
|
/// Save test run
|
|
/// </summary>
|
|
Task<Guid> SaveAsync(TestRun testRun);
|
|
|
|
/// <summary>
|
|
/// Update test run
|
|
/// </summary>
|
|
Task UpdateAsync(TestRun testRun);
|
|
|
|
/// <summary>
|
|
/// Update test run from execution result (scalars + metrics + safety violations).
|
|
/// Uses a single scope and avoids concurrency issues when replacing navigation properties.
|
|
/// </summary>
|
|
Task UpdateFromResultAsync(
|
|
Guid testRunId,
|
|
TestStatus status,
|
|
DateTime? endTime,
|
|
double duration,
|
|
string? errorMessage,
|
|
TestMetrics? metrics,
|
|
List<SafetyViolation>? safetyViolations);
|
|
|
|
/// <summary>
|
|
/// Delete test run
|
|
/// </summary>
|
|
Task DeleteAsync(Guid id);
|
|
|
|
/// <summary>
|
|
/// Delete multiple test runs by IDs
|
|
/// </summary>
|
|
Task DeleteManyAsync(IEnumerable<Guid> ids);
|
|
}
|