From 05ccb05f3a2ac81fa81b04acc54faeb5c35be605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20P=C4=85gowski?= Date: Wed, 19 Jul 2023 20:57:14 +0200 Subject: [PATCH] Added TimeSpan tests --- S7.Net.UnitTest/TypeTests/TimeSpanTests.cs | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 S7.Net.UnitTest/TypeTests/TimeSpanTests.cs diff --git a/S7.Net.UnitTest/TypeTests/TimeSpanTests.cs b/S7.Net.UnitTest/TypeTests/TimeSpanTests.cs new file mode 100644 index 0000000..5f129fb --- /dev/null +++ b/S7.Net.UnitTest/TypeTests/TimeSpanTests.cs @@ -0,0 +1,82 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace S7.Net.UnitTest.TypeTests +{ + public static class TimeSpanTests + { + private static readonly TimeSpan SampleTimeSpan = new TimeSpan(12, 0, 59, 37, 856); + + private static readonly byte[] SampleByteArray = { 0x3E, 0x02, 0xE8, 0x00 }; + + private static readonly byte[] SpecMinByteArray = { 0x80, 0x00, 0x00, 0x00 }; + + private static readonly byte[] SpecMaxByteArray = { 0x7F, 0xFF, 0xFF, 0xFF }; + + [TestClass] + public class FromByteArray + { + [TestMethod] + public void Sample() + { + AssertFromByteArrayEquals(SampleTimeSpan, SampleByteArray); + } + + [TestMethod] + public void SpecMinimum() + { + AssertFromByteArrayEquals(Types.TimeSpan.SpecMinimumTimeSpan, SpecMinByteArray); + } + + [TestMethod] + public void SpecMaximum() + { + AssertFromByteArrayEquals(Types.TimeSpan.SpecMaximumTimeSpan, SpecMaxByteArray); + } + + private static void AssertFromByteArrayEquals(TimeSpan expected, params byte[] bytes) + { + Assert.AreEqual(expected, Types.TimeSpan.FromByteArray(bytes)); + } + } + + [TestClass] + public class ToByteArray + { + [TestMethod] + public void Sample() + { + AssertToByteArrayEquals(SampleTimeSpan, SampleByteArray); + } + + [TestMethod] + public void SpecMinimum() + { + AssertToByteArrayEquals(Types.TimeSpan.SpecMinimumTimeSpan, SpecMinByteArray); + } + + [TestMethod] + public void SpecMaximum() + { + AssertToByteArrayEquals(Types.TimeSpan.SpecMaximumTimeSpan, SpecMaxByteArray); + } + + [TestMethod, ExpectedException(typeof(ArgumentOutOfRangeException))] + public void ThrowsOnTimeBeforeSpecMinimum() + { + Types.TimeSpan.ToByteArray(TimeSpan.FromDays(-25)); + } + + [TestMethod, ExpectedException(typeof(ArgumentOutOfRangeException))] + public void ThrowsOnTimeAfterSpecMaximum() + { + Types.TimeSpan.ToByteArray(new TimeSpan(30, 15, 15, 15, 15)); + } + + private static void AssertToByteArrayEquals(TimeSpan value, params byte[] expected) + { + CollectionAssert.AreEqual(expected, Types.TimeSpan.ToByteArray(value)); + } + } + } +}