feat: Implement AI CSV overwrite confirmation and update CSV output path based on destination

This commit is contained in:
Maddo 2026-05-24 18:45:51 +02:00
commit f3ac1ea920
3 changed files with 214 additions and 0 deletions

View file

@ -96,6 +96,45 @@ public class DataModelCharacterizationTests
model.DestinationPath.ShouldBe($"C:{System.IO.Path.DirectorySeparatorChar}output{System.IO.Path.DirectorySeparatorChar}");
}
[TestMethod]
public void DestinationPathChange_UpdatesAiCsvFileNameToMatchFinalFolderSegment()
{
var model = CreateModel();
model.CsvOutputPath = @"K:\various\catalogtest\aioutput\test2.csv";
model.DestinationPath = @"K:\various\catalogtest\Dest\03.KM_8_A\";
model.CsvOutputPath.ShouldBe(@"K:\various\catalogtest\aioutput\03.KM_8_A.csv");
}
[TestMethod]
public async Task ConfirmAiCsvOverwriteIfNeededAsync_CanCancelWhenCsvAlreadyExists()
{
using var tempDirectory = new TemporaryDirectory();
var csvPath = Path.Combine(tempDirectory.Path, "existing.csv");
File.WriteAllText(csvPath, "existing");
var model = CreateModel();
model.CsvOutputPath = csvPath;
string? requestedTitle = null;
string? requestedMessage = null;
model.ConfirmAiCsvOverwriteAsync = (title, message) =>
{
requestedTitle = title;
requestedMessage = message;
return Task.FromResult(false);
};
var shouldContinue = await model.ConfirmAiCsvOverwriteIfNeededAsync();
shouldContinue.ShouldBeFalse();
requestedTitle.ShouldBe("File CSV gia esistente");
requestedMessage.ShouldNotBeNull();
requestedMessage.ShouldContain("Vuoi sovrascriverlo?");
requestedMessage.ShouldContain(csvPath);
}
[TestMethod]
public void AiChildChange_RaisesDataModelPropertyChanged()
{