diff --git a/S7.Net.UnitTest/S7.Net.UnitTest.csproj b/S7.Net.UnitTest/S7.Net.UnitTest.csproj
index d65a804..cbe6c47 100644
--- a/S7.Net.UnitTest/S7.Net.UnitTest.csproj
+++ b/S7.Net.UnitTest/S7.Net.UnitTest.csproj
@@ -79,6 +79,7 @@
+
diff --git a/S7.Net.UnitTest/TypeTests/StringTests.cs b/S7.Net.UnitTest/TypeTests/StringTests.cs
new file mode 100644
index 0000000..15a528b
--- /dev/null
+++ b/S7.Net.UnitTest/TypeTests/StringTests.cs
@@ -0,0 +1,85 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using S7.Net.Types;
+
+namespace S7.Net.UnitTest.TypeTests
+{
+ [TestClass]
+ public class StringTests
+ {
+ [TestMethod]
+ public void WriteNullWIthReservedLengthZero()
+ {
+ AssertToByteArrayEquals(null, 0);
+ }
+
+ [TestMethod]
+ public void WriteEmptyStringWithReservedLengthZero()
+ {
+ AssertToByteArrayEquals("", 0);
+ }
+
+ [TestMethod]
+ public void WriteAWithReservedLengthZero()
+ {
+ AssertToByteArrayEquals("A", 0);
+ }
+
+ [TestMethod]
+ public void WriteNullWithReservedLengthOne()
+ {
+ AssertToByteArrayEquals(null, 1, 0);
+ }
+
+ [TestMethod]
+ public void WriteEmptyStringWithReservedLengthOne()
+ {
+ AssertToByteArrayEquals("", 1, 0);
+ }
+
+ [TestMethod]
+ public void WriteAWithReservedLengthOne()
+ {
+ AssertToByteArrayEquals("A", 1, (byte) 'A');
+ }
+
+ [TestMethod]
+ public void WriteAWithReservedLengthTwo()
+ {
+ AssertToByteArrayEquals("A", 2, (byte) 'A', 0);
+ }
+
+ [TestMethod]
+ public void WriteAbcWithReservedLengthOne()
+ {
+ AssertToByteArrayEquals("Abc", 1, (byte) 'A');
+ }
+
+ [TestMethod]
+ public void WriteAbcWithReservedLengthTwo()
+ {
+ AssertToByteArrayEquals("Abc", 2, (byte) 'A', (byte) 'b');
+ }
+
+ [TestMethod]
+ public void WriteAbcWithReservedLengthThree()
+ {
+ AssertToByteArrayEquals("Abc", 3, (byte) 'A', (byte) 'b', (byte) 'c');
+ }
+
+ [TestMethod]
+ public void WriteAbcWithReservedLengthFour()
+ {
+ AssertToByteArrayEquals("Abc", 4, (byte) 'A', (byte) 'b', (byte) 'c', 0);
+ }
+
+ private static void AssertFromByteArrayEquals(string expected, params byte[] bytes)
+ {
+ Assert.AreEqual(expected, String.FromByteArray(bytes));
+ }
+
+ private static void AssertToByteArrayEquals(string value, int reservedLength, params byte[] expected)
+ {
+ CollectionAssert.AreEqual(expected, String.ToByteArray(value, reservedLength));
+ }
+ }
+}