using ZB.MOM.WW.LmxProxy.Client.Domain; namespace ZB.MOM.WW.LmxProxy.Client.IntegrationTests; public class WriteTests : IntegrationTestBase { [Fact] public async Task WriteAndReadBack_StringValue() { string testValue = $"IntTest-{DateTime.UtcNow:HHmmss}"; await Client!.WriteAsync("TestChildObject.TestString", new TypedValue { StringValue = testValue }); await Task.Delay(500); // Allow time for write to propagate var vtq = await Client.ReadAsync("TestChildObject.TestString"); Assert.Equal(testValue, vtq.Value); } [Fact] public async Task WriteWithReadOnlyKey_ThrowsPermissionDenied() { using var readOnlyClient = CreateClient(ReadOnlyApiKey); await readOnlyClient.ConnectAsync(); var ex = await Assert.ThrowsAsync( () => readOnlyClient.WriteAsync("TestChildObject.TestString", new TypedValue { StringValue = "should-fail" })); Assert.Equal(Grpc.Core.StatusCode.PermissionDenied, ex.StatusCode); } }