-
Notifications
You must be signed in to change notification settings - Fork 310
Expand file tree
/
Copy pathModbusMasterFixture.cs
More file actions
85 lines (72 loc) · 3.49 KB
/
ModbusMasterFixture.cs
File metadata and controls
85 lines (72 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Linq;
using Moq;
using NModbus.Device;
using NModbus.IO;
using Xunit;
namespace NModbus.UnitTests.Device
{
public class ModbusMasterFixture
{
//private static IStreamResource StreamRsource => new Mock<IStreamResource>(MockBehavior.Strict).Object;
private static IModbusSerialTransport Transport => new Mock<IModbusSerialTransport>().Object;
private ModbusSerialMaster Master => new ModbusSerialMaster(Transport);
[Fact]
public void ReadCoils()
{
Assert.Throws<ArgumentException>(() => Master.ReadCoils(1, 1, 0));
Assert.Throws<ArgumentException>(() => Master.ReadCoils(1, 1, 2001));
}
[Fact]
public void ReadInputs()
{
Assert.Throws<ArgumentException>(() => Master.ReadInputs(1, 1, 0));
Assert.Throws<ArgumentException>(() => Master.ReadInputs(1, 1, 2001));
}
[Fact]
public void ReadHoldingRegisters()
{
Assert.Throws<ArgumentException>(() => Master.ReadHoldingRegisters(1, 1, 0));
Assert.Throws<ArgumentException>(() => Master.ReadHoldingRegisters(1, 1, 126));
}
[Fact]
public void ReadInputRegisters()
{
Assert.Throws<ArgumentException>(() => Master.ReadInputRegisters(1, 1, 0));
Assert.Throws<ArgumentException>(() => Master.ReadInputRegisters(1, 1, 126));
}
[Fact]
public void WriteMultipleRegisters()
{
Assert.Throws<ArgumentNullException>(() => Master.WriteMultipleRegisters(1, 1, null));
Assert.Throws<ArgumentException>(() => Master.WriteMultipleRegisters(1, 1, new ushort[0]));
Assert.Throws<ArgumentException>(() => Master.WriteMultipleRegisters(1, 1, Enumerable.Repeat<ushort>(1, 124).ToArray()));
}
[Fact]
public void WriteMultipleCoils()
{
Assert.Throws<ArgumentNullException>(() => Master.WriteMultipleCoils(1, 1, null));
Assert.Throws<ArgumentException>(() => Master.WriteMultipleCoils(1, 1, new bool[0]));
Assert.Throws<ArgumentException>(() => Master.WriteMultipleCoils(1, 1, Enumerable.Repeat(false, 1969).ToArray()));
}
[Fact]
public void ReadWriteMultipleRegisters()
{
// validate numberOfPointsToRead
Assert.Throws<ArgumentException>(() => Master.ReadWriteMultipleRegisters(1, 1, 0, 1, new ushort[] { 1 }));
Assert.Throws<ArgumentException>(() => Master.ReadWriteMultipleRegisters(1, 1, 126, 1, new ushort[] { 1 }));
// validate writeData
Assert.Throws<ArgumentNullException>(() => Master.ReadWriteMultipleRegisters(1, 1, 1, 1, null));
Assert.Throws<ArgumentException>(() => Master.ReadWriteMultipleRegisters(1, 1, 1, 1, new ushort[0]));
Assert.Throws<ArgumentException>(() => Master.ReadWriteMultipleRegisters(1, 1, 1, 1, Enumerable.Repeat<ushort>(1, 122).ToArray()));
}
[Fact]
public void WriteFileRecord()
{
Assert.Throws<ArgumentNullException>(() => Master.WriteFileRecord(1, 1, 2, null));
// Max message byte size is 256, minus 11 for overhead,
// 244 data bytes are allowed (must be even), 246 should throw.
Assert.Throws<ArgumentException>(() => Master.WriteFileRecord(1, 1, 2, Enumerable.Repeat<byte>(1, 246).ToArray()));
}
}
}