Skip to content

Commit 0837b0b

Browse files
authored
fix: initialization of UnixFileMode (#662)
* Fix initialization of `UnixFileMode` * Add tests
1 parent 76ae620 commit 0837b0b

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

Source/Testably.Abstractions.Testing/Storage/InMemoryContainer.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,10 @@ public IFileSystemExtensibility Extensibility
9292

9393
#if FEATURE_FILESYSTEM_UNIXFILEMODE
9494
/// <inheritdoc cref="IStorageContainer.UnixFileMode" />
95-
public UnixFileMode UnixFileMode { get; set; } = (UnixFileMode)(-1);
95+
public UnixFileMode UnixFileMode { get; set; } = UnixFileMode.OtherRead |
96+
UnixFileMode.GroupRead |
97+
UnixFileMode.UserWrite |
98+
UnixFileMode.UserRead;
9699
#endif
97100

98101
/// <inheritdoc cref="IStorageContainer.AppendBytes(byte[])" />

Tests/Testably.Abstractions.Tests/FileSystem/File/UnixFileModeTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,26 @@ public abstract partial class UnixFileModeTests<TFileSystem>
88
: FileSystemTestBase<TFileSystem>
99
where TFileSystem : IFileSystem
1010
{
11+
[SkippableTheory]
12+
[AutoData]
13+
public void GetUnixFileMode_ShouldBeInitializedCorrectly(
14+
string path)
15+
{
16+
Skip.If(Test.RunsOnWindows);
17+
18+
FileSystem.File.WriteAllText(path, "");
19+
UnixFileMode expected = UnixFileMode.OtherRead |
20+
UnixFileMode.GroupRead |
21+
UnixFileMode.UserWrite |
22+
UnixFileMode.UserRead;
23+
24+
#pragma warning disable CA1416
25+
UnixFileMode result = FileSystem.File.GetUnixFileMode(path);
26+
#pragma warning restore CA1416
27+
28+
result.Should().Be(expected);
29+
}
30+
1131
[SkippableTheory]
1232
[AutoData]
1333
public void GetUnixFileMode_ShouldThrowPlatformNotSupportedException_OnWindows(

Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/UnixFileModeTests.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,15 @@ public void UnixFileMode_SetterShouldThrowPlatformNotSupportedException_OnWindow
4040

4141
[SkippableTheory]
4242
[AutoData]
43-
public void UnixFileMode_ShouldBeInitializedToMinusOne(
43+
public void UnixFileMode_ShouldBeInitializedCorrectly(
4444
string path)
4545
{
46-
Skip.IfNot(Test.RunsOnWindows);
46+
Skip.If(Test.RunsOnWindows);
4747

48-
UnixFileMode expected = (UnixFileMode)(-1);
48+
UnixFileMode expected = UnixFileMode.OtherRead |
49+
UnixFileMode.GroupRead |
50+
UnixFileMode.UserWrite |
51+
UnixFileMode.UserRead;
4952
FileSystem.File.WriteAllText(path, "some content");
5053
IFileInfo fileSystemInfo = FileSystem.FileInfo.New(path);
5154

0 commit comments

Comments
 (0)