using LibHac.Common; using LibHac.Fs; using LibHac.Fs.Fsa; using LibHac.Fs.Shim; using Xunit; namespace LibHac.Tests.Fs.FileSystemClientTests.ShimTests; public class SdCard { [Fact] public void MountSdCard_CardIsInserted_Succeeds() { FileSystemClient fs = FileSystemServerFactory.CreateClient(true); Assert.Success(fs.MountSdCard("sdcard".ToU8Span())); } [Fact] public void MountSdCard_CardIsNotInserted_Fails() { FileSystemClient fs = FileSystemServerFactory.CreateClient(false); Assert.Result(ResultFs.PortSdCardNoDevice, fs.MountSdCard("sdcard".ToU8Span())); } [Fact] public void MountSdCard_CanWriteToFsAfterMounted() { FileSystemClient fs = FileSystemServerFactory.CreateClient(true); fs.MountSdCard("sdcard".ToU8String()); Assert.Success(fs.CreateFile("sdcard:/file".ToU8Span(), 100, CreateFileOptions.None)); } [Fact] public void IsSdCardInserted_CardIsInserted_ReturnsTrue() { FileSystemClient fs = FileSystemServerFactory.CreateClient(true); Assert.True(fs.IsSdCardInserted()); } [Fact] public void IsSdCardInserted_CardIsNotInserted_ReturnsFalse() { FileSystemClient fs = FileSystemServerFactory.CreateClient(false); Assert.False(fs.IsSdCardInserted()); } [Fact] public void IsSdCardAccessible_CardIsInserted_ReturnsTrue() { FileSystemClient fs = FileSystemServerFactory.CreateClient(true); Assert.True(fs.IsSdCardAccessible()); } [Fact] public void IsSdCardAccessible_CardIsNotInserted_ReturnsFalse() { FileSystemClient fs = FileSystemServerFactory.CreateClient(false); Assert.False(fs.IsSdCardAccessible()); } [Fact] public void SetSdCardAccessibility_SetAccessibilityPersists() { FileSystemClient fs = FileSystemServerFactory.CreateClient(false); fs.SetSdCardAccessibility(true); Assert.True(fs.IsSdCardAccessible()); fs.SetSdCardAccessibility(false); Assert.False(fs.IsSdCardAccessible()); } }