From 9a34b14e1ea45818360d5a7568a5f5627e4436c9 Mon Sep 17 00:00:00 2001 From: Michael Croes Date: Thu, 13 Aug 2020 21:57:42 +0200 Subject: [PATCH] Tests/TypeTests: Add ClassTests from #178 Close #178. --- S7.Net.UnitTest/S7.Net.UnitTest.csproj | 1 + S7.Net.UnitTest/TypeTests/ClassTests.cs | 33 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 S7.Net.UnitTest/TypeTests/ClassTests.cs diff --git a/S7.Net.UnitTest/S7.Net.UnitTest.csproj b/S7.Net.UnitTest/S7.Net.UnitTest.csproj index 487efa8..0a14d88 100644 --- a/S7.Net.UnitTest/S7.Net.UnitTest.csproj +++ b/S7.Net.UnitTest/S7.Net.UnitTest.csproj @@ -80,6 +80,7 @@ + diff --git a/S7.Net.UnitTest/TypeTests/ClassTests.cs b/S7.Net.UnitTest/TypeTests/ClassTests.cs new file mode 100644 index 0000000..ba99c2c --- /dev/null +++ b/S7.Net.UnitTest/TypeTests/ClassTests.cs @@ -0,0 +1,33 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using S7.Net.Types; + +namespace S7.Net.UnitTest.TypeTests +{ + [TestClass] + public class ClassTests + { + [TestMethod] + public void GetClassSizeTest() + { + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(1, 1)), 6); + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 15)), 6); + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 16)), 6); + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 17)), 8); + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(3, 15)), 8); + Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(3, 17)), 10); + } + + private class TestClassUnevenSize + { + public bool Bool { get; set; } + public byte[] Bytes { get; set; } + public bool[] Bools { get; set; } + + public TestClassUnevenSize(int byteCount, int bitCount) + { + Bytes = new byte[byteCount]; + Bools = new bool[bitCount]; + } + } + } +}