fix(s7): numeric TSAP loads in form, shared TSAP conflict error, Test Connect read detects PUT/GET disabled, pin Int32 ms rounding (#632 #638)
Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
@@ -138,4 +138,28 @@ public sealed class S7DriverPageFormSerializationTests
|
||||
new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Converters = { new JsonStringEnumConverter() } });
|
||||
json.ShouldContain("\"connectionType\":\"PG\"");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Numeric_tsap_loads_into_the_form_model_instead_of_falling_back_to_defaults()
|
||||
{
|
||||
// The factory accepts a JSON number; the form binds the same document the same way, so a Save
|
||||
// cannot silently replace the authored config with defaults.
|
||||
var opts = JsonSerializer.Deserialize<S7DriverOptions>(
|
||||
"""{"remoteTsap":769,"localTsap":"01.00","cpuType":"S7300"}""",
|
||||
new JsonSerializerOptions { PropertyNameCaseInsensitive = true, Converters = { new JsonStringEnumConverter() } });
|
||||
opts.ShouldNotBeNull();
|
||||
var back = S7DriverForm.FormModel.FromOptions(opts).ToOptions();
|
||||
back.RemoteTsap.ShouldBe("03.01");
|
||||
back.LocalTsap.ShouldBe("01.00");
|
||||
back.CpuType.ShouldBe(S7CpuType.S7300);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Form_reports_the_factory_conflict_error_for_remote_tsap_plus_connection_type()
|
||||
{
|
||||
var form = new S7DriverForm.FormModel { RemoteTsap = "03.01", ConnectionTypeText = "PG" };
|
||||
form.TsapConflictError().ShouldNotBeNull().ShouldContain(S7DriverOptions.TsapConflictDetail);
|
||||
new S7DriverForm.FormModel { RemoteTsap = "03.01" }.TsapConflictError().ShouldBeNull();
|
||||
new S7DriverForm.FormModel { ConnectionTypeText = "PG" }.TsapConflictError().ShouldBeNull();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user