using CodePlay.Core.Services; using CodePlay.Core.Common; using Xunit; namespace CodePlay.Tests.Services; public class BatchConversionServiceTests { private readonly BatchConversionService _service; public BatchConversionServiceTests() { _service = new BatchConversionService(new ConversionService(), new ReportStorageService()); } [Fact] public async Task ConvertDirectoryAsync_ValidDirectory_ShouldConvertAllFiles() { var tempDir = Path.Combine(Path.GetTempPath(), "test_batch_" + Guid.NewGuid().ToString("N")[..8]); var outputDir = Path.Combine(Path.GetTempPath(), "test_batch_output_" + Guid.NewGuid().ToString("N")[..8]); try { Directory.CreateDirectory(tempDir); var file1 = Path.Combine(tempDir, "Test1.cs"); await File.WriteAllTextAsync(file1, "public class Test1 { public string Name { get; set; } }"); var result = await _service.ConvertDirectoryAsync(tempDir, outputDir, LanguageType.CSharp, LanguageType.Java); Assert.NotNull(result); Assert.True(result.Success); Assert.Equal(1, result.TotalFiles); Assert.Equal(1, result.SuccessfulFiles); } finally { if (Directory.Exists(tempDir)) Directory.Delete(tempDir, true); if (Directory.Exists(outputDir)) Directory.Delete(outputDir, true); } } }