public void GeneratePackageTest()
		{
			CommandArgs args = new CommandArgs();
			args.Type = CommandType.Get;
			args.Command = Command.Relay;
			args.Value = new byte[] { (1 << 4) | 1 };

			var expected = generatePacket(args);

			ProcesserExposer processer = new ProcesserExposer();
			var actual = processer.GeneratePackageExposed(args);
			Assert.IsNotNull(actual);
			Assert.AreEqual(expected.Length, actual.Length, "actual.Length");
			for (int i = 0; i < actual.Length; i++)
			{
				Assert.AreEqual(expected[i], actual[i]);
			}
		}
		public void ReadPacketTest()
		{
			CommandArgs expected = new CommandArgs();
			expected.Type = CommandType.Set;
			expected.Command = Command.RGBLed;
			expected.Value = new byte[] { 255, 255, 255 };

			var data = generatePacket(expected);

			MemoryStream stream = new MemoryStream(data);
			stream.ReadByte(); // Skip the start byte as ReadPacket assumes that you have just read it.
			ProcesserExposer processer = new ProcesserExposer();
			var actual = processer.ReadPacketExposed(stream);
			Assert.IsNotNull(actual);
			Assert.AreEqual(expected.Type, actual.Type, "actual.Type");
			Assert.AreEqual(expected.Command, actual.Command, "actual.Command");
			Assert.IsNotNull(actual.Value, "actual.Value");
			Assert.AreEqual(expected.Value.Length, actual.Value.Length, "actual.Value.Length");
			for (int i = 0; i < actual.Value.Length; i++)
			{
				Assert.AreEqual(expected.Value[i], actual.Value[i], "actual.Value[i]");
			}
		}