Skip to content

Commit b9b5260

Browse files
committed
Change UnixFileType to UnixFileStatus
1 parent b607b97 commit b9b5260

34 files changed

+813
-181
lines changed

AdvancedSharpAdbClient.Tests/AdbSocketTests.Async.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@ await RunTestAsync(
1919
[(byte)'D', (byte)'A', (byte)'T', (byte)'A', 2, 0, 0, 0]);
2020

2121
/// <summary>
22-
/// Tests the <see cref="AdbSocket.SendSyncRequestAsync(SyncCommand, string, CancellationToken)"/> method.
22+
/// Tests the <see cref="AdbSocket.SendSyncRequestAsync(SyncCommand, string, UnixFileStatus, CancellationToken)"/> method.
2323
/// </summary>
2424
[Fact]
2525
public async void SendSyncSENDRequestAsyncTest() =>
2626
await RunTestAsync(
27-
socket => socket.SendSyncRequestAsync(SyncCommand.SEND, "/test", default),
28-
[(byte)'S', (byte)'E', (byte)'N', (byte)'D', 5, 0, 0, 0, (byte)'/', (byte)'t', (byte)'e', (byte)'s', (byte)'t']);
27+
socket => socket.SendSyncRequestAsync(SyncCommand.SEND, "/test", UnixFileStatus.GroupMask | UnixFileStatus.StickyBit | UnixFileStatus.UserExecute | UnixFileStatus.OtherExecute, default),
28+
[(byte)'S', (byte)'E', (byte)'N', (byte)'D', 9, 0, 0, 0, (byte)'/', (byte)'t', (byte)'e', (byte)'s', (byte)'t', (byte)',', (byte)'6', (byte)'3', (byte)'3']);
2929

3030
/// <summary>
31-
/// Tests the <see cref="AdbSocket.SendSyncRequestAsync(SyncCommand, string, int, CancellationToken)"/> method.
31+
/// Tests the <see cref="AdbSocket.SendSyncRequestAsync(SyncCommand, string, CancellationToken)"/> method.
3232
/// </summary>
3333
[Fact]
3434
public async void SendSyncDENTRequestAsyncTest() =>
3535
await RunTestAsync(
36-
socket => socket.SendSyncRequestAsync(SyncCommand.DENT, "/data", 633, default),
37-
[(byte)'D', (byte)'E', (byte)'N', (byte)'T', 9, 0, 0, 0, (byte)'/', (byte)'d', (byte)'a', (byte)'t', (byte)'a', (byte)',', (byte)'6', (byte)'3', (byte)'3']);
36+
socket => socket.SendSyncRequestAsync(SyncCommand.DENT, "/data", default),
37+
[(byte)'D', (byte)'E', (byte)'N', (byte)'T', 5, 0, 0, 0, (byte)'/', (byte)'d', (byte)'a', (byte)'t', (byte)'a']);
3838

3939
/// <summary>
4040
/// Tests the <see cref="AdbSocket.SendSyncRequestAsync(SyncCommand, string, CancellationToken)"/> method.

AdvancedSharpAdbClient.Tests/AdbSocketTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,22 @@ public void SendSyncDATARequestTest() =>
6363
[(byte)'D', (byte)'A', (byte)'T', (byte)'A', 2, 0, 0, 0]);
6464

6565
/// <summary>
66-
/// Tests the <see cref="AdbSocket.SendSyncRequest(SyncCommand, string)"/> method.
66+
/// Tests the <see cref="AdbSocket.SendSyncRequest(SyncCommand, string, UnixFileStatus)"/> method.
6767
/// </summary>
6868
[Fact]
6969
public void SendSyncSENDRequestTest() =>
7070
RunTest(
71-
socket => socket.SendSyncRequest(SyncCommand.SEND, "/test"),
72-
[(byte)'S', (byte)'E', (byte)'N', (byte)'D', 5, 0, 0, 0, (byte)'/', (byte)'t', (byte)'e', (byte)'s', (byte)'t']);
71+
socket => socket.SendSyncRequest(SyncCommand.SEND, "/test", UnixFileStatus.GroupMask | UnixFileStatus.StickyBit | UnixFileStatus.UserExecute | UnixFileStatus.OtherExecute),
72+
[(byte)'S', (byte)'E', (byte)'N', (byte)'D', 9, 0, 0, 0, (byte)'/', (byte)'t', (byte)'e', (byte)'s', (byte)'t', (byte)',', (byte)'6', (byte)'3', (byte)'3']);
7373

7474
/// <summary>
75-
/// Tests the <see cref="AdbSocket.SendSyncRequest(SyncCommand, string, int)"/> method.
75+
/// Tests the <see cref="AdbSocket.SendSyncRequest(SyncCommand, string)"/> method.
7676
/// </summary>
7777
[Fact]
7878
public void SendSyncDENTRequestTest() =>
7979
RunTest(
80-
socket => socket.SendSyncRequest(SyncCommand.DENT, "/data", 633),
81-
[(byte)'D', (byte)'E', (byte)'N', (byte)'T', 9, 0, 0, 0, (byte)'/', (byte)'d', (byte)'a', (byte)'t', (byte)'a', (byte)',', (byte)'6', (byte)'3', (byte)'3']);
80+
socket => socket.SendSyncRequest(SyncCommand.DENT, "/data"),
81+
[(byte)'D', (byte)'E', (byte)'N', (byte)'T', 5, 0, 0, 0, (byte)'/', (byte)'d', (byte)'a', (byte)'t', (byte)'a']);
8282

8383
/// <summary>
8484
/// Tests the <see cref="AdbSocket.SendSyncRequest(SyncCommand, string)"/> method.

AdvancedSharpAdbClient.Tests/AdvancedSharpAdbClient.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
</Choose>
2525

2626
<ItemGroup>
27-
<PackageReference Include="coverlet.msbuild" Version="6.0.1" PrivateAssets="all">
27+
<PackageReference Include="coverlet.msbuild" Version="6.0.2" PrivateAssets="all">
2828
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2929
</PackageReference>
3030
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />

AdvancedSharpAdbClient.Tests/Dummys/DummyAdbSocket.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ internal class DummyAdbSocket : IDummyAdbSocket
6161

6262
public void SendSyncRequest(SyncCommand command, int length) => SyncRequests.Add((command, length.ToString()));
6363

64-
public void SendSyncRequest(SyncCommand command, string path, int permissions) => SyncRequests.Add((command, $"{path},{permissions}"));
64+
public void SendSyncRequest(SyncCommand command, string path, UnixFileStatus permission) => SyncRequests.Add((command, $"{path},{(int)permission}"));
6565

6666
public void SendAdbRequest(string request) => Requests.Add(request);
6767

@@ -192,10 +192,10 @@ public async ValueTask SendAsync(ReadOnlyMemory<byte> data, CancellationToken ca
192192
Send(data.Span);
193193
}
194194

195-
public async Task SendSyncRequestAsync(SyncCommand command, string path, int permissions, CancellationToken cancellationToken = default)
195+
public async Task SendSyncRequestAsync(SyncCommand command, string path, UnixFileStatus permission, CancellationToken cancellationToken = default)
196196
{
197197
await Task.Yield();
198-
SendSyncRequest(command, path, permissions);
198+
SendSyncRequest(command, path, permission);
199199
}
200200

201201
public async Task SendSyncRequestAsync(SyncCommand command, string path, CancellationToken cancellationToken = default)

AdvancedSharpAdbClient.Tests/Dummys/DummySyncService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public async Task PullAsync(string remotePath, Stream stream, Action<SyncProgres
4242
}
4343
}
4444

45-
public void Push(Stream stream, string remotePath, int permissions, DateTimeOffset timestamp, Action<SyncProgressChangedEventArgs> callback = null, in bool isCancelled = false)
45+
public void Push(Stream stream, string remotePath, UnixFileStatus permission, DateTimeOffset timestamp, Action<SyncProgressChangedEventArgs> callback = null, in bool isCancelled = false)
4646
{
4747
for (int i = 0; i <= 100; i++)
4848
{
@@ -54,7 +54,7 @@ public void Push(Stream stream, string remotePath, int permissions, DateTimeOffs
5454
}
5555
}
5656

57-
public async Task PushAsync(Stream stream, string remotePath, int permissions, DateTimeOffset timestamp, Action<SyncProgressChangedEventArgs> callback = null, CancellationToken cancellationToken = default)
57+
public async Task PushAsync(Stream stream, string remotePath, UnixFileStatus permission, DateTimeOffset timestamp, Action<SyncProgressChangedEventArgs> callback = null, CancellationToken cancellationToken = default)
5858
{
5959
for (int i = 0; i <= 100; i++)
6060
{

AdvancedSharpAdbClient.Tests/Extensions/SyncCommandConverterTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using Xunit;
33

4-
namespace AdvancedSharpAdbClient.Tests
4+
namespace AdvancedSharpAdbClient.Models.Tests
55
{
66
/// <summary>
77
/// Tests the <see cref="SyncCommandConverter"/> class.
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
using Xunit;
2+
3+
namespace AdvancedSharpAdbClient.Models.Tests
4+
{
5+
/// <summary>
6+
/// Tests the <see cref="UnixFileStatusExtensions"/> class.
7+
/// </summary>
8+
public class UnixFileStatusExtensionsTests
9+
{
10+
[Theory]
11+
[InlineData((UnixFileStatus)0x7DAB, (UnixFileStatus)0x7000)]
12+
[InlineData((UnixFileStatus)0x3D94, (UnixFileStatus)0x3000)]
13+
[InlineData((UnixFileStatus)0x3052, (UnixFileStatus)0x3000)]
14+
[InlineData((UnixFileStatus)0x8724, (UnixFileStatus)0x8000)]
15+
[InlineData((UnixFileStatus)0xEBC3, (UnixFileStatus)0xE000)]
16+
[InlineData((UnixFileStatus)0xBFBA, (UnixFileStatus)0xB000)]
17+
[InlineData((UnixFileStatus)0x2059, (UnixFileStatus)0x2000)]
18+
[InlineData((UnixFileStatus)0xAFDC, (UnixFileStatus)0xA000)]
19+
[InlineData((UnixFileStatus)0x2D2F, (UnixFileStatus)0x2000)]
20+
[InlineData((UnixFileStatus)0xC10F, (UnixFileStatus)0xC000)]
21+
public void GetFileTypeTest(UnixFileStatus source, UnixFileStatus type) => Assert.Equal(type, source.GetFileType());
22+
23+
[Theory]
24+
[InlineData((UnixFileStatus)0xF118, (UnixFileStatus)0x0118)]
25+
[InlineData((UnixFileStatus)0x638A, (UnixFileStatus)0x038A)]
26+
[InlineData((UnixFileStatus)0xB72D, (UnixFileStatus)0x072D)]
27+
[InlineData((UnixFileStatus)0x5AF9, (UnixFileStatus)0x0AF9)]
28+
[InlineData((UnixFileStatus)0xA3F5, (UnixFileStatus)0x03F5)]
29+
[InlineData((UnixFileStatus)0x7ACD, (UnixFileStatus)0x0ACD)]
30+
[InlineData((UnixFileStatus)0x4751, (UnixFileStatus)0x0751)]
31+
[InlineData((UnixFileStatus)0xDA30, (UnixFileStatus)0x0A30)]
32+
[InlineData((UnixFileStatus)0xB829, (UnixFileStatus)0x0829)]
33+
[InlineData((UnixFileStatus)0xFE1A, (UnixFileStatus)0x0E1A)]
34+
public void GetPermissionsTest(UnixFileStatus source, UnixFileStatus type) => Assert.Equal(type, source.GetPermissions());
35+
36+
[Theory]
37+
[InlineData((UnixFileStatus)0x28DA, (UnixFileStatus)0x00DA)]
38+
[InlineData((UnixFileStatus)0x69EE, (UnixFileStatus)0x01EE)]
39+
[InlineData((UnixFileStatus)0x2507, (UnixFileStatus)0x0107)]
40+
[InlineData((UnixFileStatus)0x763F, (UnixFileStatus)0x003F)]
41+
[InlineData((UnixFileStatus)0x8ECC, (UnixFileStatus)0x00CC)]
42+
[InlineData((UnixFileStatus)0xBFB8, (UnixFileStatus)0x01B8)]
43+
[InlineData((UnixFileStatus)0xF893, (UnixFileStatus)0x0093)]
44+
[InlineData((UnixFileStatus)0x8E54, (UnixFileStatus)0x0054)]
45+
[InlineData((UnixFileStatus)0x6270, (UnixFileStatus)0x0070)]
46+
[InlineData((UnixFileStatus)0x21AB, (UnixFileStatus)0x01AB)]
47+
public void GetAccessPermissionsTest(UnixFileStatus source, UnixFileStatus type) => Assert.Equal(type, source.GetAccessPermissions());
48+
49+
[Theory]
50+
[InlineData((UnixFileStatus)0x0FFF, false)]
51+
[InlineData((UnixFileStatus)0x1FB6, false)]
52+
[InlineData((UnixFileStatus)0x21FF, false)]
53+
[InlineData((UnixFileStatus)0x41B6, true)]
54+
[InlineData((UnixFileStatus)0x616D, false)]
55+
[InlineData((UnixFileStatus)0x80DB, false)]
56+
[InlineData((UnixFileStatus)0xA124, false)]
57+
[InlineData((UnixFileStatus)0xC092, false)]
58+
[InlineData((UnixFileStatus)0xF049, false)]
59+
public void IsDirectoryTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsDirectory());
60+
61+
[Theory]
62+
[InlineData((UnixFileStatus)0x0FFF, false)]
63+
[InlineData((UnixFileStatus)0x1FB6, false)]
64+
[InlineData((UnixFileStatus)0x21FF, true)]
65+
[InlineData((UnixFileStatus)0x41B6, false)]
66+
[InlineData((UnixFileStatus)0x616D, false)]
67+
[InlineData((UnixFileStatus)0x80DB, false)]
68+
[InlineData((UnixFileStatus)0xA124, false)]
69+
[InlineData((UnixFileStatus)0xC092, false)]
70+
[InlineData((UnixFileStatus)0xF049, false)]
71+
public void IsCharacterFileTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsCharacterFile());
72+
73+
[Theory]
74+
[InlineData((UnixFileStatus)0x0FFF, false)]
75+
[InlineData((UnixFileStatus)0x1FB6, false)]
76+
[InlineData((UnixFileStatus)0x21FF, false)]
77+
[InlineData((UnixFileStatus)0x41B6, false)]
78+
[InlineData((UnixFileStatus)0x616D, true)]
79+
[InlineData((UnixFileStatus)0x80DB, false)]
80+
[InlineData((UnixFileStatus)0xA124, false)]
81+
[InlineData((UnixFileStatus)0xC092, false)]
82+
[InlineData((UnixFileStatus)0xF049, false)]
83+
public void IsBlockFileTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsBlockFile());
84+
85+
[Theory]
86+
[InlineData((UnixFileStatus)0x0FFF, false)]
87+
[InlineData((UnixFileStatus)0x1FB6, false)]
88+
[InlineData((UnixFileStatus)0x21FF, false)]
89+
[InlineData((UnixFileStatus)0x41B6, false)]
90+
[InlineData((UnixFileStatus)0x616D, false)]
91+
[InlineData((UnixFileStatus)0x80DB, true)]
92+
[InlineData((UnixFileStatus)0xA124, false)]
93+
[InlineData((UnixFileStatus)0xC092, false)]
94+
[InlineData((UnixFileStatus)0xF049, false)]
95+
public void IsRegularFileTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsRegularFile());
96+
97+
[Theory]
98+
[InlineData((UnixFileStatus)0x0FFF, false)]
99+
[InlineData((UnixFileStatus)0x1FB6, true)]
100+
[InlineData((UnixFileStatus)0x21FF, false)]
101+
[InlineData((UnixFileStatus)0x41B6, false)]
102+
[InlineData((UnixFileStatus)0x616D, false)]
103+
[InlineData((UnixFileStatus)0x80DB, false)]
104+
[InlineData((UnixFileStatus)0xA124, false)]
105+
[InlineData((UnixFileStatus)0xC092, false)]
106+
[InlineData((UnixFileStatus)0xF049, false)]
107+
public void IsFIFOTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsFIFO());
108+
109+
[Theory]
110+
[InlineData((UnixFileStatus)0x0FFF, false)]
111+
[InlineData((UnixFileStatus)0x1FB6, false)]
112+
[InlineData((UnixFileStatus)0x21FF, false)]
113+
[InlineData((UnixFileStatus)0x41B6, false)]
114+
[InlineData((UnixFileStatus)0x616D, false)]
115+
[InlineData((UnixFileStatus)0x80DB, false)]
116+
[InlineData((UnixFileStatus)0xA124, true)]
117+
[InlineData((UnixFileStatus)0xC092, false)]
118+
[InlineData((UnixFileStatus)0xF049, false)]
119+
public void IsSymbolicLinkTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsSymbolicLink());
120+
121+
[Theory]
122+
[InlineData((UnixFileStatus)0x0FFF, false)]
123+
[InlineData((UnixFileStatus)0x1FB6, false)]
124+
[InlineData((UnixFileStatus)0x21FF, false)]
125+
[InlineData((UnixFileStatus)0x41B6, false)]
126+
[InlineData((UnixFileStatus)0x616D, false)]
127+
[InlineData((UnixFileStatus)0x80DB, false)]
128+
[InlineData((UnixFileStatus)0xA124, false)]
129+
[InlineData((UnixFileStatus)0xC092, true)]
130+
[InlineData((UnixFileStatus)0xF049, false)]
131+
public void IsSocketTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsSocket());
132+
133+
[Theory]
134+
[InlineData((UnixFileStatus)0x0FFF, true)]
135+
[InlineData((UnixFileStatus)0x1FB6, true)]
136+
[InlineData((UnixFileStatus)0x21FF, true)]
137+
[InlineData((UnixFileStatus)0x41B6, false)]
138+
[InlineData((UnixFileStatus)0x616D, true)]
139+
[InlineData((UnixFileStatus)0x80DB, false)]
140+
[InlineData((UnixFileStatus)0xA124, false)]
141+
[InlineData((UnixFileStatus)0xC092, true)]
142+
[InlineData((UnixFileStatus)0xF049, true)]
143+
public void IsOtherTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsOther());
144+
145+
[Theory]
146+
[InlineData((UnixFileStatus)0x0FFF, false)]
147+
[InlineData((UnixFileStatus)0x1FB6, true)]
148+
[InlineData((UnixFileStatus)0x21FF, true)]
149+
[InlineData((UnixFileStatus)0x41B6, true)]
150+
[InlineData((UnixFileStatus)0x616D, true)]
151+
[InlineData((UnixFileStatus)0x80DB, true)]
152+
[InlineData((UnixFileStatus)0xA124, true)]
153+
[InlineData((UnixFileStatus)0xC092, true)]
154+
[InlineData((UnixFileStatus)0xF049, true)]
155+
public void IsTypeKnownTest(UnixFileStatus mode, bool result) => Assert.Equal(result, mode.IsTypeKnown());
156+
157+
[Theory]
158+
[InlineData("\0rwsrwsrwt", (UnixFileStatus)0x0FFF)]
159+
[InlineData("prwSrwSrwT", (UnixFileStatus)0x1FB6)]
160+
[InlineData("crwxrwxrwx", (UnixFileStatus)0x21FF)]
161+
[InlineData("drw-rw-rw-", (UnixFileStatus)0x41B6)]
162+
[InlineData("br-xr-xr-x", (UnixFileStatus)0x616D)]
163+
[InlineData("--wx-wx-wx", (UnixFileStatus)0x80DB)]
164+
[InlineData("lr--r--r--", (UnixFileStatus)0xA124)]
165+
[InlineData("s-w--w--w-", (UnixFileStatus)0xC092)]
166+
[InlineData("?--x--x--x", (UnixFileStatus)0x0049)]
167+
[InlineData("7777", (UnixFileStatus)0x0FFF)]
168+
public void FromPermissionCodeTest(string code, UnixFileStatus mode) => Assert.Equal(mode, UnixFileStatusExtensions.FromPermissionCode(code));
169+
170+
[Theory]
171+
[InlineData((UnixFileStatus)0x0FFF, "\0rwsrwsrwt")]
172+
[InlineData((UnixFileStatus)0x1FB6, "prwSrwSrwT")]
173+
[InlineData((UnixFileStatus)0x21FF, "crwxrwxrwx")]
174+
[InlineData((UnixFileStatus)0x41B6, "drw-rw-rw-")]
175+
[InlineData((UnixFileStatus)0x616D, "br-xr-xr-x")]
176+
[InlineData((UnixFileStatus)0x80DB, "--wx-wx-wx")]
177+
[InlineData((UnixFileStatus)0xA124, "lr--r--r--")]
178+
[InlineData((UnixFileStatus)0xC092, "s-w--w--w-")]
179+
[InlineData((UnixFileStatus)0xF049, "?--x--x--x")]
180+
public void ToPermissionCodeTest(UnixFileStatus mode, string code) => Assert.Equal(code, mode.ToPermissionCode());
181+
}
182+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System.IO;
2+
using Xunit;
3+
4+
namespace AdvancedSharpAdbClient.Models.Tests
5+
{
6+
/// <summary>
7+
/// Tests the <see cref="UnixFileStatus"/> class.
8+
/// </summary>
9+
public class UnixFileStatusTests
10+
{
11+
[Theory]
12+
[InlineData(UnixFileMode.SetUser, UnixFileStatus.SetUser)]
13+
[InlineData(UnixFileMode.SetGroup, UnixFileStatus.SetGroup)]
14+
[InlineData(UnixFileMode.StickyBit, UnixFileStatus.StickyBit)]
15+
[InlineData(UnixFileMode.UserRead, UnixFileStatus.UserRead)]
16+
[InlineData(UnixFileMode.UserWrite, UnixFileStatus.UserWrite)]
17+
[InlineData(UnixFileMode.UserExecute, UnixFileStatus.UserExecute)]
18+
[InlineData(UnixFileMode.GroupRead, UnixFileStatus.GroupRead)]
19+
[InlineData(UnixFileMode.GroupWrite, UnixFileStatus.GroupWrite)]
20+
[InlineData(UnixFileMode.GroupExecute, UnixFileStatus.GroupExecute)]
21+
[InlineData(UnixFileMode.OtherRead, UnixFileStatus.OtherRead)]
22+
[InlineData(UnixFileMode.OtherWrite, UnixFileStatus.OtherWrite)]
23+
[InlineData(UnixFileMode.OtherExecute, UnixFileStatus.OtherExecute)]
24+
public void UnixFileModeTest(UnixFileMode mode, UnixFileStatus status)
25+
{
26+
Assert.Equal((int)mode, (int)status);
27+
Assert.Equal(mode, (UnixFileMode)status);
28+
Assert.Equal((UnixFileStatus)mode, status);
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)