feat(s7): expose ReadMultipleVarsAsync through the IS7Plc seam

This commit is contained in:
Joseph Doherty
2026-08-17 03:48:15 -04:00
parent c4d8e4a200
commit 6ee553cf8f
5 changed files with 45 additions and 0 deletions
@@ -569,6 +569,10 @@ public sealed class S7DriverReconnectTests
public Task<byte[]> ReadBytesAsync(S7NetDataType area, int db, int startByteAdr, int count, CancellationToken cancellationToken) =>
throw new NotSupportedException("FakeS7Plc: block reads not needed for the reconnect tests");
public Task<IReadOnlyList<global::S7.Net.Types.DataItem>> ReadMultipleVarsAsync(
List<global::S7.Net.Types.DataItem> items, CancellationToken cancellationToken) =>
throw new NotSupportedException("FakeS7Plc: multi-var reads not needed for the reconnect tests");
public async Task WriteAsync(string address, object value, CancellationToken cancellationToken)
{
if (WriteHangsUntilCancelled)
@@ -47,6 +47,10 @@ public sealed class S7PollEngineMigrationTests
return Task.FromResult(block);
}
public Task<IReadOnlyList<global::S7.Net.Types.DataItem>> ReadMultipleVarsAsync(
List<global::S7.Net.Types.DataItem> items, CancellationToken ct)
=> throw new NotSupportedException("ConstantArrayPlc: multi-var reads not needed for the poll-engine tests");
public Task WriteAsync(string address, object value, CancellationToken ct) => Task.CompletedTask;
public Task WriteBytesAsync(S7NetDataType area, int db, int startByteAdr, byte[] value, CancellationToken ct) => Task.CompletedTask;
public Task ReadStatusAsync(CancellationToken ct) => Task.CompletedTask;
@@ -323,6 +323,11 @@ public sealed class S7SpanReadParityTests
return Task.FromResult(image[startByteAdr..(startByteAdr + count)]);
}
/// <inheritdoc />
public Task<IReadOnlyList<global::S7.Net.Types.DataItem>> ReadMultipleVarsAsync(
List<global::S7.Net.Types.DataItem> items, CancellationToken ct)
=> throw new NotSupportedException("ImageS7Plc: multi-var reads not served by the parity image fake");
/// <inheritdoc />
public Task<object?> ReadAsync(string address, CancellationToken ct)
{
@@ -92,6 +92,10 @@ internal sealed class ConnectingFakeS7PlcFactory : IS7PlcFactory
public Task<byte[]> ReadBytesAsync(S7NetDataType area, int db, int startByteAdr, int count, CancellationToken ct)
=> throw new NotSupportedException("ConnectingFakeS7Plc serves no data");
/// <summary>Not exercised by these tests.</summary>
public Task<IReadOnlyList<global::S7.Net.Types.DataItem>> ReadMultipleVarsAsync(
List<global::S7.Net.Types.DataItem> items, CancellationToken ct)
=> throw new NotSupportedException("ConnectingFakeS7Plc serves no data");
/// <summary>Not exercised by these tests.</summary>
public Task WriteAsync(string address, object value, CancellationToken ct)
=> throw new NotSupportedException("ConnectingFakeS7Plc serves no data");
/// <summary>Not exercised by these tests.</summary>