ConnectionRequestTest.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using S7.Net.Protocol;
  3. namespace S7.Net.UnitTest
  4. {
  5. [TestClass]
  6. public class ConnectionRequestTest
  7. {
  8. [TestMethod]
  9. public void Test_ConnectionRequest_S7_200()
  10. {
  11. CollectionAssert.AreEqual(MakeConnectionRequest(16, 0, 16, 1),
  12. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7200, 0, 0)));
  13. }
  14. [TestMethod]
  15. public void Test_ConnectionRequest_S7_300()
  16. {
  17. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 0),
  18. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7300, 0, 0)));
  19. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 1),
  20. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7300, 0, 1)));
  21. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 33),
  22. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7300, 1, 1)));
  23. }
  24. [TestMethod]
  25. public void Test_ConnectionRequest_S7_400()
  26. {
  27. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 0),
  28. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7400, 0, 0)));
  29. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 1),
  30. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7400, 0, 1)));
  31. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 33),
  32. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S7400, 1, 1)));
  33. }
  34. [TestMethod]
  35. public void Test_ConnectionRequest_S7_1200()
  36. {
  37. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 0),
  38. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71200, 0, 0)));
  39. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 1),
  40. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71200, 0, 1)));
  41. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 33),
  42. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71200, 1, 1)));
  43. }
  44. [TestMethod]
  45. public void Test_ConnectionRequest_S7_1500()
  46. {
  47. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 0),
  48. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71500, 0, 0)));
  49. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 1),
  50. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71500, 0, 1)));
  51. CollectionAssert.AreEqual(MakeConnectionRequest(1, 0, 3, 33),
  52. ConnectionRequest.GetCOTPConnectionRequest(TsapPair.GetDefaultTsapPair(CpuType.S71500, 1, 1)));
  53. }
  54. private static byte[] MakeConnectionRequest(byte sourceTsap1, byte sourceTsap2, byte destTsap1, byte destTsap2)
  55. {
  56. return new byte[]
  57. {
  58. 3, 0, 0, 22, //TPKT
  59. 17, //COTP Header Length
  60. 224, //Connect Request
  61. 0, 0, //Destination Reference
  62. 0, 46, //Source Reference
  63. 0, //Flags
  64. 193, //Parameter Code (src-tasp)
  65. 2, //Parameter Length
  66. sourceTsap1, sourceTsap2, //Source TASP
  67. 194, //Parameter Code (dst-tasp)
  68. 2, //Parameter Length
  69. destTsap1, destTsap2, //Destination TASP
  70. 192, //Parameter Code (tpdu-size)
  71. 1, //Parameter Length
  72. 10 //TPDU Size (2^11 = 2048)
  73. };
  74. }
  75. }
  76. }