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]; + } + } + } +}