using LCU.Api.Internal.FileOperations.Services.FileActionServices; using LCU.Library.Internal.FileOperationsModels.Models; using LCU.Library.Internal.LCUServiceFactory.Configurations; using System; using System.IO; using Xunit; namespace LCU.Api.Internal.FileOperationsTests.Services { public class WriteBinaryFileServiceTest : IDisposable { private readonly string _tempDirectory; private readonly WriteBinaryFileService _writeBinaryFileService; public WriteBinaryFileServiceTest() { _tempDirectory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(_tempDirectory); _writeBinaryFileService = new WriteBinaryFileService(new ServicesFactoryConfiguration()); } [Fact] public void PerformRequest_WritesBinaryBytes() { var expectedBytes = new byte[] { 0x52, 0x49, 0x46, 0x46, 0x24, 0x00, 0x00, 0x00 }; var request = new WriteFileRequest { DestinationPath = _tempDirectory, FileName = "sample", Extension = ".wav", FileData = Convert.ToBase64String(expectedBytes), Overwrite = true }; var result = _writeBinaryFileService.PerformRequest(request); Assert.True(result.IsSuccessful); Assert.Equal(expectedBytes, File.ReadAllBytes(request.FullFilePath)); } public void Dispose() { if (Directory.Exists(_tempDirectory)) { Directory.Delete(_tempDirectory, true); } } } }