using System.IO; using AMWD.Common.Compression; namespace AMWD.Common.Tests.Compression { [TestClass] public class ArchiveFileTest { [TestMethod] public void ShouldSetCorrectPermissionsFromOctal() { // Arrange var expected = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherExecute; var file = new ArchiveFile(); // Act file.SetPermissions("0755"); // Assert Assert.AreEqual(expected, file.Permissions); } [TestMethod] public void ShouldSetCorrectPermissionsFromDecimal() { // Arrange var expected = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherExecute; var file = new ArchiveFile(); // Act file.SetPermissions(493); // decimal for octal 0755 // Assert Assert.AreEqual(expected, file.Permissions); } [TestMethod] public void ShouldSetPermissionsWithSpecialFlags() { // Arrange var expected = UnixFileMode.SetUser | UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherExecute; var file = new ArchiveFile(); // Act file.SetPermissions("4755"); // setuid + 0755 // Assert Assert.AreEqual(expected, file.Permissions); } [TestMethod] public void ShouldIgnoreHighBytePermissions() { // Arrange int input = (1 << 20) | 493; var expected = UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherExecute; var file = new ArchiveFile(); // Act file.SetPermissions(input); // Assert Assert.AreEqual(expected, file.Permissions); } } }