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 }