Skip to content

Commit 83a020c

Browse files
committed
test: 增加单元测试
1 parent d2b6bce commit 83a020c

1 file changed

Lines changed: 48 additions & 5 deletions

File tree

test/UnitTestOpcDa/UnitTest1.cs

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,59 @@ public void Write_Ok()
2727
Assert.Equal(2, values.Count);
2828
Assert.All(values, v => Assert.Equal(Quality.Good, v.Quality));
2929

30-
var results = server.Write(new OpcWriteItem()
31-
{
32-
Name = "Channel1.Device1.Tag3",
33-
Value = 123
34-
});
30+
var results = server.Write([
31+
new OpcWriteItem()
32+
{
33+
Name = "Channel1.Device1.Tag2",
34+
Value = 123
35+
},
36+
new OpcWriteItem()
37+
{
38+
Name = "Channel1.Device1.Tag3",
39+
Value = 123
40+
}
41+
]);
3542
Assert.All(results, v => Assert.True(v.Result));
3643

3744
server.Disconnect();
3845
Assert.False(server.IsConnected);
3946

4047
server.Dispose();
4148
}
49+
50+
[Fact]
51+
public async Task Subscription_Ok()
52+
{
53+
var sc = new ServiceCollection();
54+
sc.AddOpcServer();
55+
56+
var sp = sc.BuildServiceProvider();
57+
var server = sp.GetRequiredService<IOpcServer>();
58+
server.Connect("opcda://localhost/Kepware.KEPServerEX.V6");
59+
60+
var subscription = server.CreateSubscription("Test");
61+
subscription.AddItems(
62+
[
63+
"Channel1.Device1.Tag1",
64+
"Channel1.Device1.Tag2",
65+
"Channel1.Device1.Tag3"
66+
]);
67+
68+
var tcs = new TaskCompletionSource();
69+
var values = new List<OpcReadItem>();
70+
subscription.KeepLastValue = true;
71+
subscription.DataChanged += items =>
72+
{
73+
values.Clear();
74+
values.AddRange(items);
75+
tcs.TrySetResult();
76+
return Task.CompletedTask;
77+
};
78+
await tcs.Task;
79+
80+
server.CancelSubscription(subscription);
81+
82+
server.Disconnect();
83+
server.Dispose();
84+
}
4285
}

0 commit comments

Comments
 (0)