76 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|