Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
workflow_dispatch:

env:
DOTNET_VERSION: '9.0.x' # The .NET SDK version to use
DOTNET_VERSION: '10.0.x' # The .NET SDK version to use

jobs:
build-and-test:
Expand Down Expand Up @@ -45,7 +45,7 @@ jobs:
run: dotnet test --no-restore --blame-hang-timeout 1m -p:FullTargets=false

pack-and-publish:
name: pack-and-publish
if: github.event_name == 'push'
needs: build-and-test
runs-on: windows-latest
env:
Expand Down
2 changes: 1 addition & 1 deletion AdvancedSharpAdbClient.Tests/AdbClientTests.Async.cs
Original file line number Diff line number Diff line change
Expand Up @@ -935,7 +935,7 @@ await RunTestAsync(
() => TestClient.InstallCommitAsync(Device, "936013062"));
}

#if WINDOWS10_0_18362_0_OR_GREATER
#if WINDOWS10_0_17763_0_OR_GREATER
/// <summary>
/// Tests the <see cref="AdbClient.InstallAsync(DeviceData, IRandomAccessStream, Action{InstallProgressEventArgs}?, CancellationToken, string[])"/> method.
/// </summary>
Expand Down
32 changes: 31 additions & 1 deletion AdvancedSharpAdbClient.Tests/AdbClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,16 @@ public void FormAdbRequestTest()
Assert.Equal("000Chost:version"u8, AdbClient.FormAdbRequest("host:version"));
}

/// <summary>
/// Tests the <see cref="AdbClient.FormAdbRequest(ReadOnlySpan{char})"/> method.
/// </summary>
[Fact]
public void FormAdbRequestSpanTest()
{
Assert.Equal("0009host:kill"u8, AdbClient.FormAdbRequest("host:kill".AsSpan()));
Assert.Equal("000Chost:version"u8, AdbClient.FormAdbRequest("host:version".AsSpan()));
}

/// <summary>
/// Tests the <see cref="AdbClient.CreateAdbForwardRequest(string, int)"/> method.
/// </summary>
Expand All @@ -75,6 +85,16 @@ public void CreateAdbForwardRequestTest()
Assert.Equal("0012tcp:1981:127.0.0.1"u8, AdbClient.CreateAdbForwardRequest("127.0.0.1", 1981));
}

/// <summary>
/// Tests the <see cref="AdbClient.CreateAdbForwardRequest(ReadOnlySpan{char}, int)"/> method.
/// </summary>
[Fact]
public void CreateAdbForwardRequestSpanTest()
{
Assert.Equal("0008tcp:1984"u8, AdbClient.CreateAdbForwardRequest([], 1984));
Assert.Equal("0012tcp:1981:127.0.0.1"u8, AdbClient.CreateAdbForwardRequest("127.0.0.1".AsSpan(), 1981));
}

/// <summary>
/// Tests the <see cref="AdbClient.GetAdbVersion"/> method.
/// </summary>
Expand Down Expand Up @@ -1139,7 +1159,7 @@ public void GetFeatureSetTest()
public void CloneTest()
{
Assert.True(TestClient is ICloneable<IAdbClient>);
#if WINDOWS10_0_18362_0_OR_GREATER
#if WINDOWS10_0_17763_0_OR_GREATER
Assert.True(TestClient is ICloneable<IAdbClient.IWinRT>);
#endif
AdbClient client = TestClient.Clone();
Expand All @@ -1149,6 +1169,16 @@ public void CloneTest()
Assert.Equal(endPoint, client.EndPoint);
}

/// <summary>
/// Tests the <see cref="AdbClient.ToString()"/> method.
/// </summary>
[Fact]
public void ToStringTest()
{
AdbClient adbClient = new();
Assert.Equal($"The {typeof(AdbClient)} communicate with adb server at '127.0.0.1:5037'.", adbClient.ToString());
}

private void RunConnectTest(Action test, string connectString)
{
string[] requests = [$"host:connect:{connectString}"];
Expand Down
12 changes: 12 additions & 0 deletions AdvancedSharpAdbClient.Tests/AdbCommandLineClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,17 @@ public void StartServerTest()
commandLine.StartServer();
Assert.True(commandLine.ServerStarted);
}

/// <summary>
/// Tests the <see cref="AdbCommandLineClient.ToString()"/> method.
/// </summary>
[Fact]
public void ToStringTest()
{
DummyAdbCommandLineClient commandLine = new();
Assert.Equal($"The {typeof(DummyAdbCommandLineClient)} process with adb command line at '{ServerName}'.", commandLine.ToString());
}

private static string ServerName => OperatingSystem.IsWindows() ? "adb.exe" : "adb";
}
}
12 changes: 10 additions & 2 deletions AdvancedSharpAdbClient.Tests/AdbServerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using System;
using System.Net;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using Xunit;

namespace AdvancedSharpAdbClient.Tests
Expand Down Expand Up @@ -262,13 +261,22 @@ public void CloneTest()
Assert.Equal(endPoint, server.EndPoint);
}

/// <summary>
/// Tests the <see cref="AdbServer.ToString()"/> method.
/// </summary>
[Fact]
public void ToStringTest()
{
Assert.Equal($"The {typeof(AdbServer)} communicate with adb at '127.0.0.1:5037'.", adbServer.ToString());
}

/// <summary>
/// Tests the <see cref="AdbServer(EndPoint, Func{EndPoint, IAdbSocket}, Func{string, IAdbCommandLineClient})"/> method.
/// </summary>
[Fact]
public void ConstructorAdbClientNullTest() =>
_ = Assert.Throws<ArgumentNullException>(() => new AdbServer((EndPoint)null, adbSocketFactory, adbCommandLineClientFactory));

private static string ServerName => RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "adb.exe" : "adb";
private static string ServerName => OperatingSystem.IsWindows() ? "adb.exe" : "adb";
}
}
23 changes: 23 additions & 0 deletions AdvancedSharpAdbClient.Tests/AdbSocketTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Runtime.CompilerServices;
using System.Text;
using Xunit;

Expand Down Expand Up @@ -266,6 +267,17 @@ public void SendAdbRequestTest() =>
socket => socket.SendAdbRequest("Test"),
"0004Test"u8.ToArray());

/// <summary>
/// Tests the <see cref="AdbSocket.SendAdbRequest(DefaultInterpolatedStringHandler)"/> method.
/// </summary>
[Fact]
public void SendAdbRequestSpanTest()
{
RunTest(
socket => socket.SendAdbRequest((DefaultInterpolatedStringHandler)$"Test"),
"0004Test"u8.ToArray());
}

/// <summary>
/// Tests the <see cref="AdbSocket.GetShellStream"/> method.
/// </summary>
Expand Down Expand Up @@ -297,6 +309,17 @@ public void CloneTest()
Assert.Equal(adbSocket.Connected, socket.Connected);
}

/// <summary>
/// Tests the <see cref="AdbSocket.ToString()"/> method.
/// </summary>
[Fact]
public void ToStringTest()
{
using DummyTcpSocket tcpSocket = new();
using AdbSocket adbSocket = new(tcpSocket);
Assert.Equal($"{typeof(AdbSocket)} {{ {nameof(AdbSocket.Socket)} = {tcpSocket} }}", adbSocket.ToString());
}

private static void RunTest(Action<IAdbSocket> test, byte[] expectedDataSent)
{
using DummyTcpSocket tcpSocket = new();
Expand Down
10 changes: 5 additions & 5 deletions AdvancedSharpAdbClient.Tests/AdvancedSharpAdbClient.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
</PropertyGroup>

<Choose>
<When Condition="'$(IsWindows)' == 'True' and '$(IsStandard)' != 'True'">
<When Condition="'$(IsWindows)' == 'True'">
<PropertyGroup>
<TargetFramework>net8.0-windows10.0.17763.0</TargetFramework>
<TargetFramework>net10.0-windows10.0.17763.0</TargetFramework>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
</Otherwise>
</Choose>
Expand All @@ -23,10 +23,10 @@
<PackageReference Include="coverlet.msbuild" Version="6.0.4" PrivateAssets="all">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NSubstitute" Version="5.3.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2" PrivateAssets="all">
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" PrivateAssets="all">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public async Task DumpScreenAsyncTest()
Assert.Equal(doc, xml);
}

#if WINDOWS10_0_18362_0_OR_GREATER
#if WINDOWS10_0_17763_0_OR_GREATER
/// <summary>
/// Tests the <see cref="DeviceClient.DumpScreenWinRTAsync(CancellationToken)"/> method.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ public void DumpScreenTest()
Assert.Equal(doc, xml);
}

#if WINDOWS10_0_18362_0_OR_GREATER
#if WINDOWS10_0_17763_0_OR_GREATER
/// <summary>
/// Tests the <see cref="DeviceClient.DumpScreenWinRT()"/> method.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using NSubstitute;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
Expand Down Expand Up @@ -164,7 +165,7 @@ public async Task GetDirectoryAsyncListingTest()
{
Assert.Equal(remotePath, x.ArgAt<string>(0));
Assert.Equal(default, x.ArgAt<CancellationToken>(1));
return stats.AsEnumerableAsync(x.ArgAt<CancellationToken>(1));
return stats.ToAsyncEnumerable(x.ArgAt<CancellationToken>(1));
});

Factories.SyncServiceFactory = (c, d) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void TryAsVersionTest(int versionCode, string versionName, bool expected)
}
}

#if WINDOWS10_0_18362_0_OR_GREATER
#if WINDOWS10_0_17763_0_OR_GREATER
/// <summary>
/// Tests the <see cref="VersionInfo.TryAsPackageVersion(out PackageVersion)"/> method.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public void ConstructorNullTest()
{
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(null, default));
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(null, new DeviceData { Serial = "169.254.109.177:5555" }));
_ = Assert.Throws<ArgumentOutOfRangeException>(() => new PackageManager(Substitute.For<IAdbClient>(), default));
_ = Assert.Throws<ArgumentNullException>(() => new PackageManager(Substitute.For<IAdbClient>(), default));
}

[Theory]
Expand Down Expand Up @@ -257,6 +257,14 @@ public void GetPackageVersionInfoTest()
Assert.Equal("11.0.62 (448-160311229)", versionInfo.VersionName);
}

[Fact]
public void ToStringTest()
{
DummyAdbClient client = new();
PackageManager manager = new(client, Device, skipInit: true);
Assert.Equal($"{typeof(PackageManager)} {{ {nameof(PackageManager.Device)} = {Device}, {nameof(PackageManager.AdbClient)} = {client} }}", manager.ToString());
}

private struct InstallProgress(params PackageInstallProgressState[] states) : IProgress<InstallProgressEventArgs>
{
private PackageInstallProgressState? state;
Expand Down
9 changes: 9 additions & 0 deletions AdvancedSharpAdbClient.Tests/DeviceMonitorTests.Async.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ await RunTestAsync(
Assert.Single(sink.ListChangedEvents);
Assert.Single(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.DisconnectedEvents[0].Device.Serial);
Assert.False(sink.DisconnectedEvents[0].IsConnect);
Assert.Equal("Device disconnected: 169.254.109.177:5555", sink.DisconnectedEvents[0].ToString());
}

[Fact]
Expand Down Expand Up @@ -101,6 +103,8 @@ await RunTestAsync(
Assert.Single(sink.ListChangedEvents);
Assert.Empty(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
Assert.True(sink.ConnectedEvents[0].IsConnect);
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
}

/// <summary>
Expand All @@ -126,6 +130,8 @@ await RunTestAsync(
Assert.Equal("169.254.109.177:5555", monitor.Devices[0].Serial);
Assert.Single(sink.ConnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
Assert.True(sink.ConnectedEvents[0].IsConnect);
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
Assert.Empty(sink.ChangedEvents);
Assert.Single(sink.NotifiedEvents);
Assert.Single(sink.ListChangedEvents);
Expand Down Expand Up @@ -180,6 +186,9 @@ await RunTestAsync(
Assert.Single(sink.ListChangedEvents);
Assert.Empty(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ChangedEvents[0].Device.Serial);
Assert.Equal(DeviceState.Offline, sink.ChangedEvents[0].OldState);
Assert.Equal(DeviceState.Online, sink.ChangedEvents[0].NewState);
Assert.Equal("Device state changed: 169.254.109.177:5555 Offline -> Online", sink.ChangedEvents[0].ToString());
}

[Fact]
Expand Down
19 changes: 19 additions & 0 deletions AdvancedSharpAdbClient.Tests/DeviceMonitorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public void DeviceDisconnectedTest()
Assert.Single(sink.ListChangedEvents);
Assert.Single(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.DisconnectedEvents[0].Device.Serial);
Assert.False(sink.DisconnectedEvents[0].IsConnect);
Assert.Equal("Device disconnected: 169.254.109.177:5555", sink.DisconnectedEvents[0].ToString());
}

[Fact]
Expand Down Expand Up @@ -131,6 +133,8 @@ public void DeviceConnectedTest()
Assert.Single(sink.ListChangedEvents);
Assert.Empty(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
Assert.True(sink.ConnectedEvents[0].IsConnect);
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
}

/// <summary>
Expand All @@ -156,6 +160,8 @@ public void StartInitialDeviceListTest()
Assert.Equal("169.254.109.177:5555", monitor.Devices[0].Serial);
Assert.Single(sink.ConnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ConnectedEvents[0].Device.Serial);
Assert.True(sink.ConnectedEvents[0].IsConnect);
Assert.Equal("Device connected: 169.254.109.177:5555", sink.ConnectedEvents[0].ToString());
Assert.Empty(sink.ChangedEvents);
Assert.Single(sink.NotifiedEvents);
Assert.Single(sink.ListChangedEvents);
Expand Down Expand Up @@ -210,6 +216,9 @@ public void TriggeredWhenStatusChangedTest()
Assert.Single(sink.ListChangedEvents);
Assert.Empty(sink.DisconnectedEvents);
Assert.Equal("169.254.109.177:5555", sink.ChangedEvents[0].Device.Serial);
Assert.Equal(DeviceState.Offline, sink.ChangedEvents[0].OldState);
Assert.Equal(DeviceState.Online, sink.ChangedEvents[0].NewState);
Assert.Equal("Device state changed: 169.254.109.177:5555 Offline -> Online", sink.ChangedEvents[0].ToString());
}

[Fact]
Expand Down Expand Up @@ -295,5 +304,15 @@ public void CloneTest()
using DeviceMonitor monitor = deviceMonitor.Clone();
Assert.NotEqual(deviceMonitor.Socket, monitor.Socket);
}

/// <summary>
/// Tests the <see cref="DeviceMonitor.ToString()"/> method.
/// </summary>
[Fact]
public void ToStringTest()
{
using DeviceMonitor deviceMonitor = new(Socket);
Assert.Equal($"{typeof(DeviceMonitor)} {{ {nameof(DeviceMonitor.Socket)} = {Socket}, {nameof(DeviceMonitor.IsRunning)} = False }}", deviceMonitor.ToString());
}
}
}
Loading