Skip to content

Commit 91f3fea

Browse files
committed
Add and test ToString methods for core classes
Fix DeviceConnected event
1 parent b54deb3 commit 91f3fea

69 files changed

Lines changed: 442 additions & 241 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AdvancedSharpAdbClient.Tests/AdbClientTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,6 +1169,16 @@ public void CloneTest()
11691169
Assert.Equal(endPoint, client.EndPoint);
11701170
}
11711171

1172+
/// <summary>
1173+
/// Tests the <see cref="AdbClient.ToString()"/> method.
1174+
/// </summary>
1175+
[Fact]
1176+
public void ToStringTest()
1177+
{
1178+
AdbClient adbClient = new();
1179+
Assert.Equal($"The {typeof(AdbClient)} communicate with adb server at '127.0.0.1:5037'.", adbClient.ToString());
1180+
}
1181+
11721182
private void RunConnectTest(Action test, string connectString)
11731183
{
11741184
string[] requests = [$"host:connect:{connectString}"];

AdvancedSharpAdbClient.Tests/AdbCommandLineClientTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,17 @@ public void StartServerTest()
6464
commandLine.StartServer();
6565
Assert.True(commandLine.ServerStarted);
6666
}
67+
68+
/// <summary>
69+
/// Tests the <see cref="AdbCommandLineClient.ToString()"/> method.
70+
/// </summary>
71+
[Fact]
72+
public void ToStringTest()
73+
{
74+
DummyAdbCommandLineClient commandLine = new();
75+
Assert.Equal($"The {typeof(DummyAdbCommandLineClient)} process with adb command line at '{ServerName}'.", commandLine.ToString());
76+
}
77+
78+
private static string ServerName => OperatingSystem.IsWindows() ? "adb.exe" : "adb";
6779
}
6880
}

AdvancedSharpAdbClient.Tests/AdbServerTests.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System;
33
using System.Net;
44
using System.Net.Sockets;
5-
using System.Runtime.InteropServices;
65
using Xunit;
76

87
namespace AdvancedSharpAdbClient.Tests
@@ -262,13 +261,22 @@ public void CloneTest()
262261
Assert.Equal(endPoint, server.EndPoint);
263262
}
264263

264+
/// <summary>
265+
/// Tests the <see cref="AdbServer.ToString()"/> method.
266+
/// </summary>
267+
[Fact]
268+
public void ToStringTest()
269+
{
270+
Assert.Equal($"The {typeof(AdbServer)} communicate with adb at '127.0.0.1:5037'.", adbServer.ToString());
271+
}
272+
265273
/// <summary>
266274
/// Tests the <see cref="AdbServer(EndPoint, Func{EndPoint, IAdbSocket}, Func{string, IAdbCommandLineClient})"/> method.
267275
/// </summary>
268276
[Fact]
269277
public void ConstructorAdbClientNullTest() =>
270278
_ = Assert.Throws<ArgumentNullException>(() => new AdbServer((EndPoint)null, adbSocketFactory, adbCommandLineClientFactory));
271279

272-
private static string ServerName => RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "adb.exe" : "adb";
280+
private static string ServerName => OperatingSystem.IsWindows() ? "adb.exe" : "adb";
273281
}
274282
}

AdvancedSharpAdbClient.Tests/AdbSocketTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,17 @@ public void CloneTest()
309309
Assert.Equal(adbSocket.Connected, socket.Connected);
310310
}
311311

312+
/// <summary>
313+
/// Tests the <see cref="AdbSocket.ToString()"/> method.
314+
/// </summary>
315+
[Fact]
316+
public void ToStringTest()
317+
{
318+
using DummyTcpSocket tcpSocket = new();
319+
using AdbSocket adbSocket = new(tcpSocket);
320+
Assert.Equal($"{typeof(AdbSocket)} {{ {nameof(AdbSocket.Socket)} = {tcpSocket} }}", adbSocket.ToString());
321+
}
322+
312323
private static void RunTest(Action<IAdbSocket> test, byte[] expectedDataSent)
313324
{
314325
using DummyTcpSocket tcpSocket = new();

AdvancedSharpAdbClient.Tests/DeviceCommands/PackageManagerTests.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void ConstructorNullTest()
1818
{
1919
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(null, default));
2020
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(null, new DeviceData { Serial = "169.254.109.177:5555" }));
21-
_ = Assert.Throws<ArgumentOutOfRangeException>(() => new PackageManager(Substitute.For<IAdbClient>(), default));
21+
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(Substitute.For<IAdbClient>(), default));
2222
}
2323

2424
[Theory]
@@ -257,6 +257,14 @@ public void GetPackageVersionInfoTest()
257257
Assert.Equal("11.0.62 (448-160311229)", versionInfo.VersionName);
258258
}
259259

260+
[Fact]
261+
public void ToStringTest()
262+
{
263+
DummyAdbClient client = new();
264+
PackageManager manager = new(client, Device, skipInit: true);
265+
Assert.Equal($"{typeof(PackageManager)} {{ {nameof(PackageManager.Device)} = {Device}, {nameof(PackageManager.AdbClient)} = {client} }}", manager.ToString());
266+
}
267+
260268
private struct InstallProgress(params PackageInstallProgressState[] states) : IProgress<InstallProgressEventArgs>
261269
{
262270
private PackageInstallProgressState? state;

AdvancedSharpAdbClient.Tests/DeviceMonitorTests.Async.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ await RunTestAsync(
5353
Assert.Single(sink.ListChangedEvents);
5454
Assert.Single(sink.DisconnectedEvents);
5555
Assert.Equal("169.254.109.177:5555", sink.DisconnectedEvents[0].Device.Serial);
56+
Assert.False(sink.DisconnectedEvents[0].IsConnect);
57+
Assert.Equal("Device disconnected: 169.254.109.177:5555", sink.DisconnectedEvents[0].ToString());
5658
}
5759

5860
[Fact]
@@ -101,6 +103,8 @@ await RunTestAsync(
101103
Assert.Single(sink.ListChangedEvents);
102104
Assert.Empty(sink.DisconnectedEvents);
103105
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
106+
Assert.True(sink.ConnectedEvents[0].IsConnect);
107+
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
104108
}
105109

106110
/// <summary>
@@ -126,6 +130,8 @@ await RunTestAsync(
126130
Assert.Equal("169.254.109.177:5555", monitor.Devices[0].Serial);
127131
Assert.Single(sink.ConnectedEvents);
128132
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
133+
Assert.True(sink.ConnectedEvents[0].IsConnect);
134+
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
129135
Assert.Empty(sink.ChangedEvents);
130136
Assert.Single(sink.NotifiedEvents);
131137
Assert.Single(sink.ListChangedEvents);
@@ -180,6 +186,9 @@ await RunTestAsync(
180186
Assert.Single(sink.ListChangedEvents);
181187
Assert.Empty(sink.DisconnectedEvents);
182188
Assert.Equal("169.254.109.177:5555", sink.ChangedEvents[0].Device.Serial);
189+
Assert.Equal(DeviceState.Offline, sink.ChangedEvents[0].OldState);
190+
Assert.Equal(DeviceState.Online, sink.ChangedEvents[0].NewState);
191+
Assert.Equal("Device state changed: 169.254.109.177:5555 Offline -> Online", sink.ChangedEvents[0].ToString());
183192
}
184193

185194
[Fact]

AdvancedSharpAdbClient.Tests/DeviceMonitorTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ public void DeviceDisconnectedTest()
8383
Assert.Single(sink.ListChangedEvents);
8484
Assert.Single(sink.DisconnectedEvents);
8585
Assert.Equal("169.254.109.177:5555", sink.DisconnectedEvents[0].Device.Serial);
86+
Assert.False(sink.DisconnectedEvents[0].IsConnect);
87+
Assert.Equal("Device disconnected: 169.254.109.177:5555", sink.DisconnectedEvents[0].ToString());
8688
}
8789

8890
[Fact]
@@ -131,6 +133,8 @@ public void DeviceConnectedTest()
131133
Assert.Single(sink.ListChangedEvents);
132134
Assert.Empty(sink.DisconnectedEvents);
133135
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
136+
Assert.True(sink.ConnectedEvents[0].IsConnect);
137+
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
134138
}
135139

136140
/// <summary>
@@ -156,6 +160,8 @@ public void StartInitialDeviceListTest()
156160
Assert.Equal("169.254.109.177:5555", monitor.Devices[0].Serial);
157161
Assert.Single(sink.ConnectedEvents);
158162
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
163+
Assert.True(sink.ConnectedEvents[0].IsConnect);
164+
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
159165
Assert.Empty(sink.ChangedEvents);
160166
Assert.Single(sink.NotifiedEvents);
161167
Assert.Single(sink.ListChangedEvents);
@@ -210,6 +216,9 @@ public void TriggeredWhenStatusChangedTest()
210216
Assert.Single(sink.ListChangedEvents);
211217
Assert.Empty(sink.DisconnectedEvents);
212218
Assert.Equal("169.254.109.177:5555", sink.ChangedEvents[0].Device.Serial);
219+
Assert.Equal(DeviceState.Offline, sink.ChangedEvents[0].OldState);
220+
Assert.Equal(DeviceState.Online, sink.ChangedEvents[0].NewState);
221+
Assert.Equal("Device state changed: 169.254.109.177:5555 Offline -> Online", sink.ChangedEvents[0].ToString());
213222
}
214223

215224
[Fact]
@@ -295,5 +304,15 @@ public void CloneTest()
295304
using DeviceMonitor monitor = deviceMonitor.Clone();
296305
Assert.NotEqual(deviceMonitor.Socket, monitor.Socket);
297306
}
307+
308+
/// <summary>
309+
/// Tests the <see cref="DeviceMonitor.ToString()"/> method.
310+
/// </summary>
311+
[Fact]
312+
public void ToStringTest()
313+
{
314+
using DeviceMonitor deviceMonitor = new(Socket);
315+
Assert.Equal($"{typeof(DeviceMonitor)} {{ {nameof(DeviceMonitor.Socket)} = {Socket}, {nameof(DeviceMonitor.IsRunning)} = False }}", deviceMonitor.ToString());
316+
}
298317
}
299318
}

AdvancedSharpAdbClient.Tests/Dummys/DummyAdbClient.cs

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,15 @@ public IAsyncEnumerable<string> ExecuteRemoteEnumerableAsync(string command, Dev
4040

4141
public void ExecuteServerCommand(string target, string command)
4242
{
43-
StringBuilder requestBuilder = new();
43+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
4444
if (!string.IsNullOrWhiteSpace(target))
4545
{
46-
_ = requestBuilder.Append(target).Append(':');
46+
requestBuilder.AppendLiteral(target);
47+
requestBuilder.AppendFormatted(':');
4748
}
48-
_ = requestBuilder.Append(command);
49+
requestBuilder.AppendLiteral(command);
4950

50-
string request = requestBuilder.ToString();
51+
string request = requestBuilder.ToStringAndClear();
5152
ReceivedCommands.Add(request);
5253
}
5354

@@ -56,14 +57,15 @@ public void ExecuteServerCommand(string target, string command, IAdbSocket socke
5657

5758
public void ExecuteServerCommand(string target, string command, IShellOutputReceiver receiver, Encoding encoding)
5859
{
59-
StringBuilder requestBuilder = new();
60+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
6061
if (!string.IsNullOrWhiteSpace(target))
6162
{
62-
_ = requestBuilder.Append(target).Append(':');
63+
requestBuilder.AppendLiteral(target);
64+
requestBuilder.AppendFormatted(':');
6365
}
64-
_ = requestBuilder.Append(command);
66+
requestBuilder.AppendLiteral(command);
6567

66-
string request = requestBuilder.ToString();
68+
string request = requestBuilder.ToStringAndClear();
6769
ReceivedCommands.Add(request);
6870

6971
if (Commands.TryGetValue(request, out string value))
@@ -91,14 +93,15 @@ public void ExecuteServerCommand(string target, string command, IAdbSocket socke
9193

9294
public IEnumerable<string> ExecuteServerEnumerable(string target, string command, Encoding encoding)
9395
{
94-
StringBuilder requestBuilder = new();
96+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
9597
if (!string.IsNullOrWhiteSpace(target))
9698
{
97-
_ = requestBuilder.Append(target).Append(':');
99+
requestBuilder.AppendLiteral(target);
100+
requestBuilder.AppendFormatted(':');
98101
}
99-
_ = requestBuilder.Append(command);
102+
requestBuilder.AppendLiteral(command);
100103

101-
string request = requestBuilder.ToString();
104+
string request = requestBuilder.ToStringAndClear();
102105
ReceivedCommands.Add(request);
103106

104107
if (Commands.TryGetValue(request, out string value))
@@ -122,14 +125,15 @@ public async Task ExecuteServerCommandAsync(string target, string command, Cance
122125
{
123126
await Task.Yield();
124127

125-
StringBuilder requestBuilder = new();
128+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
126129
if (!string.IsNullOrWhiteSpace(target))
127130
{
128-
_ = requestBuilder.Append(target).Append(':');
131+
requestBuilder.AppendLiteral(target);
132+
requestBuilder.AppendFormatted(':');
129133
}
130-
_ = requestBuilder.Append(command);
134+
requestBuilder.AppendLiteral(command);
131135

132-
string request = requestBuilder.ToString();
136+
string request = requestBuilder.ToStringAndClear();
133137
ReceivedCommands.Add(request);
134138
}
135139

@@ -138,14 +142,15 @@ public Task ExecuteServerCommandAsync(string target, string command, IAdbSocket
138142

139143
public async Task ExecuteServerCommandAsync(string target, string command, IShellOutputReceiver receiver, Encoding encoding, CancellationToken cancellationToken = default)
140144
{
141-
StringBuilder requestBuilder = new();
145+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
142146
if (!string.IsNullOrWhiteSpace(target))
143147
{
144-
_ = requestBuilder.Append(target).Append(':');
148+
requestBuilder.AppendLiteral(target);
149+
requestBuilder.AppendFormatted(':');
145150
}
146-
_ = requestBuilder.Append(command);
151+
requestBuilder.AppendLiteral(command);
147152

148-
string request = requestBuilder.ToString();
153+
string request = requestBuilder.ToStringAndClear();
149154
ReceivedCommands.Add(request);
150155

151156
if (Commands.TryGetValue(request, out string value))
@@ -173,14 +178,15 @@ public Task ExecuteServerCommandAsync(string target, string command, IAdbSocket
173178

174179
public async IAsyncEnumerable<string> ExecuteServerEnumerableAsync(string target, string command, Encoding encoding, [EnumeratorCancellation] CancellationToken cancellationToken)
175180
{
176-
StringBuilder requestBuilder = new();
181+
DefaultInterpolatedStringHandler requestBuilder = new(1, 2);
177182
if (!string.IsNullOrWhiteSpace(target))
178183
{
179-
_ = requestBuilder.Append(target).Append(':');
184+
requestBuilder.AppendLiteral(target);
185+
requestBuilder.AppendFormatted(':');
180186
}
181-
_ = requestBuilder.Append(command);
187+
requestBuilder.AppendLiteral(command);
182188

183-
string request = requestBuilder.ToString();
189+
string request = requestBuilder.ToStringAndClear();
184190
ReceivedCommands.Add(request);
185191

186192
if (Commands.TryGetValue(request, out string value))

AdvancedSharpAdbClient.Tests/Dummys/DummyAdbCommandLineClient.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Runtime.InteropServices;
43
using System.Threading;
54
using System.Threading.Tasks;
65

@@ -53,6 +52,6 @@ protected override async Task<int> RunProcessAsync(string filename, string comma
5352
return RunProcess(filename, command, errorOutput, standardOutput, Timeout.Infinite);
5453
}
5554

56-
private static string ServerName => RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "adb.exe" : "adb";
55+
private static string ServerName => OperatingSystem.IsWindows() ? "adb.exe" : "adb";
5756
}
5857
}

AdvancedSharpAdbClient.Tests/Logs/LogTests.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using System;
1+
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;
2+
using System;
23
using System.Collections.Generic;
4+
using System.Diagnostics;
35
using System.IO;
46
using System.Threading.Tasks;
57
using Xunit;
@@ -32,6 +34,7 @@ public void ReadLogTest()
3234
Assert.Equal(Priority.Info, androidLog.Priority);
3335
Assert.Equal("ActivityManager", androidLog.Tag);
3436
Assert.Equal("Start proc com.google.android.gm for broadcast com.google.android.gm/.widget.GmailWidgetProvider: pid=7026 uid=10066 gids={50066, 9997, 3003, 1028, 1015} abi=x86", androidLog.Message);
37+
Assert.Equal($"15-11-15 07:38:20.000 707 707 I ActivityManager: Start proc com.google.android.gm for broadcast com.google.android.gm/.widget.GmailWidgetProvider: pid=7026 uid=10066 gids={{50066, 9997, 3003, 1028, 1015}} abi=x86", androidLog.ToString());
3538

3639
Assert.NotNull(reader.ReadEntry());
3740
Assert.NotNull(reader.ReadEntry());
@@ -61,6 +64,7 @@ public async Task ReadLogAsyncTest()
6164
Assert.Equal(Priority.Info, androidLog.Priority);
6265
Assert.Equal("ActivityManager", androidLog.Tag);
6366
Assert.Equal("Start proc com.google.android.gm for broadcast com.google.android.gm/.widget.GmailWidgetProvider: pid=7026 uid=10066 gids={50066, 9997, 3003, 1028, 1015} abi=x86", androidLog.Message);
67+
Assert.Equal($"15-11-15 07:38:20.000 707 707 I ActivityManager: Start proc com.google.android.gm for broadcast com.google.android.gm/.widget.GmailWidgetProvider: pid=7026 uid=10066 gids={{50066, 9997, 3003, 1028, 1015}} abi=x86", androidLog.ToString());
6468

6569
Assert.NotNull(await reader.ReadEntryAsync());
6670
Assert.NotNull(await reader.ReadEntryAsync());
@@ -89,6 +93,7 @@ public void ReadEventLogTest()
8993
Assert.Single(eventLog.Values);
9094
Assert.NotNull(eventLog.Values[0]);
9195
Assert.IsType<List<object>>(eventLog.Values[0]);
96+
Assert.Equal($"15-11-16 09:48:40.000 707 707 0 : System.Collections.Generic.List`1[System.Object]", eventLog.ToString());
9297

9398
List<object> list = (List<object>)eventLog.Values[0];
9499
Assert.Equal(3, list.Count);
@@ -123,6 +128,7 @@ public async Task ReadEventLogAsyncTest()
123128
Assert.Single(eventLog.Values);
124129
Assert.NotNull(eventLog.Values[0]);
125130
Assert.IsType<List<object>>(eventLog.Values[0]);
131+
Assert.Equal($"15-11-16 09:48:40.000 707 707 0 : System.Collections.Generic.List`1[System.Object]", eventLog.ToString());
126132

127133
List<object> list = (List<object>)eventLog.Values[0];
128134
Assert.Equal(3, list.Count);

0 commit comments

Comments
 (0)