using Marathon.Application.Abstractions; using Marathon.Application.UseCases; using Microsoft.Extensions.Logging.Abstractions; using NSubstitute; namespace Marathon.Application.Tests.UseCases; public sealed class DeleteStrategyUseCaseTests { private readonly ISavedStrategyRepository _repo = Substitute.For(); private DeleteStrategyUseCase CreateSut() => new(_repo, NullLogger.Instance); [Fact] public async Task Delegates_Delete_Then_SaveChanges() { var id = Guid.NewGuid(); await CreateSut().ExecuteAsync(id, CancellationToken.None); await _repo.Received(1).DeleteAsync(id, Arg.Any()); await _repo.Received(1).SaveChangesAsync(Arg.Any()); } }