using SharepointToolbox.Core.Models; using SharepointToolbox.Services; namespace SharepointToolbox.Tests.Services; public class FileTransferServiceTests { [Fact] public void FileTransferService_Implements_IFileTransferService() { var service = new FileTransferService(); Assert.IsAssignableFrom(service); } [Fact] public void TransferJob_DefaultValues_AreCorrect() { var job = new TransferJob(); Assert.Equal(TransferMode.Copy, job.Mode); Assert.Equal(ConflictPolicy.Skip, job.ConflictPolicy); } [Fact] public void ConflictPolicy_HasAllValues() { Assert.Equal(3, Enum.GetValues().Length); Assert.Contains(ConflictPolicy.Skip, Enum.GetValues()); Assert.Contains(ConflictPolicy.Overwrite, Enum.GetValues()); Assert.Contains(ConflictPolicy.Rename, Enum.GetValues()); } [Fact] public void TransferMode_HasAllValues() { Assert.Equal(2, Enum.GetValues().Length); Assert.Contains(TransferMode.Copy, Enum.GetValues()); Assert.Contains(TransferMode.Move, Enum.GetValues()); } [Fact(Skip = "Requires live SharePoint tenant")] public async Task TransferAsync_CopyMode_CopiesFiles() { // Integration test — needs real ClientContext } [Fact(Skip = "Requires live SharePoint tenant")] public async Task TransferAsync_MoveMode_DeletesSourceAfterCopy() { // Integration test — needs real ClientContext } [Fact(Skip = "Requires live SharePoint tenant")] public async Task TransferAsync_SkipConflict_DoesNotOverwrite() { // Integration test — needs real ClientContext } }