2017-05-17 Update 2 Change Unittests

This commit is contained in:
parallelbgls
2017-05-17 11:38:57 +08:00
parent 2f238780a7
commit e1bf973dce
4 changed files with 130 additions and 78 deletions

View File

@@ -27,7 +27,7 @@ namespace Modbus.Net.Modbus
/// <summary> /// <summary>
/// Modbus基础Api入口 /// Modbus基础Api入口
/// </summary> /// </summary>
public class ModbusUtility : BaseUtility, IIUtilityMethodTime public class ModbusUtility : BaseUtility, IUtilityMethodTime
{ {
/// <summary> /// <summary>
/// Modbus协议类型 /// Modbus协议类型

View File

@@ -22,7 +22,7 @@ namespace Modbus.Net.Tests
} }
[TestMethod] [TestMethod]
public async Task Get() public async Task MultiStation()
{ {
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
@@ -85,56 +85,72 @@ namespace Modbus.Net.Tests
_modbusRtuMachine1.GetAddresses = addresses.ToList(); _modbusRtuMachine1.GetAddresses = addresses.ToList();
_modbusRtuMachine2.GetAddresses = addresses.ToList(); _modbusRtuMachine2.GetAddresses = addresses.ToList();
await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>() Random r = new Random();
var dic1 = new Dictionary<string, double>()
{ {
{ {
"A1", 70 "A1", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A2", 71 "A2", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A3", 72 "A3", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A4", 73 "A4", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A5", 717870 "A5", r.Next()
}, },
{ {
"A6", 717871 "A6", r.Next()
}, },
}); };
await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
var dic2 = new Dictionary<string, double>()
{ {
{ {
"A1", 74 "A1", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A2", 75 "A2", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A3", 76 "A3", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A4", 77 "A4", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A5", 717873 "A5", r.Next()
}, },
{ {
"A6", 717874 "A6", r.Next()
}, },
}); };
await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, dic2);
var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag); var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag);
var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag); var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag);
_modbusRtuMachine1.Disconnect(); _modbusRtuMachine1.Disconnect();
_modbusRtuMachine2.Disconnect(); _modbusRtuMachine2.Disconnect();
Assert.AreEqual(ans["A1"].PlcValue, 70); Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
Assert.AreEqual(ans2["A1"].PlcValue, 74); Assert.AreEqual(ans2["A1"].PlcValue, dic2["A1"]);
Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
Assert.AreEqual(ans2["A2"].PlcValue, dic2["A2"]);
Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
Assert.AreEqual(ans2["A3"].PlcValue, dic2["A3"]);
Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
Assert.AreEqual(ans2["A4"].PlcValue, dic2["A4"]);
Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
Assert.AreEqual(ans2["A5"].PlcValue, dic2["A5"]);
Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
Assert.AreEqual(ans2["A6"].PlcValue, dic2["A6"]);
} }
} }
} }

View File

@@ -20,6 +20,8 @@ namespace Modbus.Net.Tests
[TestMethod] [TestMethod]
public async Task ModbusCoilSingle() public async Task ModbusCoilSingle()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -33,15 +35,17 @@ namespace Modbus.Net.Tests
} }
}; };
_modbusTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
{ {
{ {
"0X 1.0", 1 "0X 1.0", r.Next(0, 2)
} }
}); };
_modbusTcpMachine.GetAddresses = addresses;
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["0X 1.0"].PlcValue, 1); Assert.AreEqual(ans["0X 1.0"].PlcValue, dic1["0X 1.0"]);
} }
[TestMethod] [TestMethod]
@@ -89,6 +93,8 @@ namespace Modbus.Net.Tests
[TestMethod] [TestMethod]
public async Task ModbusRegSingle() public async Task ModbusRegSingle()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -102,20 +108,24 @@ namespace Modbus.Net.Tests
} }
}; };
_modbusTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
{ {
{ {
"4X 1", 31125 "4X 1", r.Next(0, UInt16.MaxValue)
} }
}); };
_modbusTcpMachine.GetAddresses = addresses;
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["4X 1.0"].PlcValue, 31125); Assert.AreEqual(ans["4X 1.0"].PlcValue, dic1["4X 1"]);
} }
[TestMethod] [TestMethod]
public async Task ModbusRegMultiple() public async Task ModbusRegMultiple()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -174,35 +184,38 @@ namespace Modbus.Net.Tests
} }
}; };
_modbusTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
{ {
{ {
"A1", 70 "A1", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A2", 71 "A2", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A3", 72 "A3", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A4", 73 "A4", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A5", 717870 "A5", r.Next()
}, },
{ {
"A6", 717871 "A6", r.Next()
}, },
}); };
_modbusTcpMachine.GetAddresses = addresses;
await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag); var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
Assert.AreEqual(ans["A1"].PlcValue, 70); Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
Assert.AreEqual(ans["A2"].PlcValue, 71); Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
Assert.AreEqual(ans["A3"].PlcValue, 72); Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
Assert.AreEqual(ans["A4"].PlcValue, 73); Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
Assert.AreEqual(ans["A5"].PlcValue, 717870); Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
Assert.AreEqual(ans["A6"].PlcValue, 717871); Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
} }
} }
} }

View File

@@ -21,6 +21,8 @@ namespace Modbus.Net.Tests
[TestMethod] [TestMethod]
public async Task SiemensCoilSingle() public async Task SiemensCoilSingle()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -34,15 +36,18 @@ namespace Modbus.Net.Tests
} }
}; };
_siemensTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
{ {
{ {
"Q 0.0", 1 "Q 0.0", r.Next(0, 2)
} }
}); };
_siemensTcpMachine.GetAddresses = addresses;
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["Q 0.0"].PlcValue, 1); Assert.AreEqual(ans["Q 0.0"].PlcValue, dic1["Q 0.0"]);
} }
[TestMethod] [TestMethod]
@@ -69,6 +74,8 @@ namespace Modbus.Net.Tests
[TestMethod] [TestMethod]
public async Task SiemensMSingle() public async Task SiemensMSingle()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -84,19 +91,23 @@ namespace Modbus.Net.Tests
_siemensTcpMachine.GetAddresses = addresses; _siemensTcpMachine.GetAddresses = addresses;
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>() var dic1 = new Dictionary<string, double>()
{ {
{ {
"M 0", 31125 "M 0", r.Next(0, UInt16.MaxValue)
} }
}); };
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["M 0.0"].PlcValue, 31125); Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0"]);
} }
[TestMethod] [TestMethod]
public async Task SiemensMSingleBool() public async Task SiemensMSingleBool()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -112,19 +123,24 @@ namespace Modbus.Net.Tests
_siemensTcpMachine.GetAddresses = addresses; _siemensTcpMachine.GetAddresses = addresses;
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>() var dic1 = new Dictionary<string, double>()
{ {
{ {
"M 0.0", 1 "M 0.0", r.Next(0, 2)
} }
}); };
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["M 0.0"].PlcValue, 1); Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0.0"]);
} }
[TestMethod] [TestMethod]
public async Task SiemensDbSingle() public async Task SiemensDbSingle()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -138,20 +154,25 @@ namespace Modbus.Net.Tests
} }
}; };
_siemensTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
{ {
{ {
"DB2 0.0", 31125 "DB2 0.0", r.Next(0, UInt16.MaxValue)
} }
}); };
_siemensTcpMachine.GetAddresses = addresses;
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);
Assert.AreEqual(ans["DB2 0.0"].PlcValue, 31125); Assert.AreEqual(ans["DB2 0.0"].PlcValue, dic1["DB2 0.0"]);
} }
[TestMethod] [TestMethod]
public async Task SiemensDbMultiple() public async Task SiemensDbMultiple()
{ {
Random r = new Random();
var addresses = new List<AddressUnit> var addresses = new List<AddressUnit>
{ {
new AddressUnit new AddressUnit
@@ -210,35 +231,37 @@ namespace Modbus.Net.Tests
} }
}; };
_siemensTcpMachine.GetAddresses = addresses; var dic1 = new Dictionary<string, double>()
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary<string, double>()
{ {
{ {
"A1", 70 "A1", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A2", 71 "A2", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A3", 72 "A3", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A4", 73 "A4", r.Next(0, UInt16.MaxValue)
}, },
{ {
"A5", 717870 "A5", r.Next()
}, },
{ {
"A6", 717871 "A6", r.Next()
}, },
}); };
_siemensTcpMachine.GetAddresses = addresses;
await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);
var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag);
Assert.AreEqual(ans["A1"].PlcValue, 70); Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
Assert.AreEqual(ans["A2"].PlcValue, 71); Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
Assert.AreEqual(ans["A3"].PlcValue, 72); Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
Assert.AreEqual(ans["A4"].PlcValue, 73); Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
Assert.AreEqual(ans["A5"].PlcValue, 717870); Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
Assert.AreEqual(ans["A6"].PlcValue, 717871); Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
} }
} }
} }