// Copyright (c) Microsoft. All rights reserved. using System; namespace Microsoft.Agents.AI.LocalCodeAct.UnitTests; public sealed class FileMountTests { [Fact] public void Constructor_AssignsProperties() { var tempDir = System.IO.Directory.CreateTempSubdirectory("filemount-test-").FullName; try { var mount = new FileMount(tempDir, "/app/data", FileMountMode.ReadWrite, writeBytesLimit: 1024); Assert.Equal(tempDir, mount.HostPath); Assert.Equal("/app/data", mount.MountPath); Assert.Equal(FileMountMode.ReadWrite, mount.Mode); Assert.Equal(1024L, mount.WriteBytesLimit); } finally { System.IO.Directory.Delete(tempDir, recursive: true); } } [Fact] public void Constructor_DefaultsAreReadWriteWithNoLimit() { var tempDir = System.IO.Directory.CreateTempSubdirectory("filemount-test-").FullName; try { var mount = new FileMount(tempDir, "/app/data"); Assert.Equal(FileMountMode.ReadWrite, mount.Mode); Assert.Null(mount.WriteBytesLimit); } finally { System.IO.Directory.Delete(tempDir, recursive: true); } } [Fact] public void Constructor_RequiresPaths() { Assert.Throws(() => new FileMount("", "/app/data")); Assert.Throws(() => new FileMount("/host/data", "")); _ = Assert.Throws(() => new FileMount(null!, "/app/data")); _ = Assert.Throws(() => new FileMount("/host/data", null!)); } }