1
0
Files
common/test/AMWD.Common.Tests/Compression/ArchiveFileTest.cs

76 lines
2.0 KiB
C#

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);
}
}
}