1 module tests.hostlink;
2 
3 import unit_threaded;
4 
5 import dolina.channel;
6 import dolina.hostlink;
7 
8 @UnitTest
9 void readShouldSendValidString() {
10    auto m = mock!IHostLinkChannel;
11 
12    m.expect!"write"("@02RD0031000254*\r");
13    m.expect!"read";
14    m.returnValue!"read"("@02RD0015*");
15 
16    auto host = new HostLink(m);
17    host.unit = 2;
18    host.readDM(31, 2);
19    m.verify();
20 }
21 
22 @UnitTest
23 void writeShouldSendValidString() {
24    auto chan = mock!IHostLinkChannel;
25    chan.expect!"write"("@02WD03020064196458*\r");
26    chan.expect!"read";
27    chan.returnValue!"read"("@02WD0015*");
28 
29 
30 
31    auto host = new HostLink(chan);
32    host.unit = 2;
33    host.writeDM(302, [100, 6500]);
34    chan.verify();
35 }
36 
37 @UnitTest
38 void GivenBigDataWriteShouldSendMultiplePack() {
39    auto chan = mock!IHostLinkChannel;
40 
41    // non conta cio' che si scrive
42    chan.expect!"write";
43    chan.expect!"read";
44    chan.expect!"write";
45    chan.expect!"read";
46    chan.expect!"write";
47    chan.expect!"read";
48 
49    chan.returnValue!"read"(
50          "@02WD0015*",
51          "@02WD0015*",
52          "@02WD0015*"
53          );
54 
55    auto host = new HostLink(chan);
56    host.unit = 2;
57 
58    ushort[62] data = 1;
59    host.writeDM(302, data);
60 
61    chan.verify();
62 }