public void CheckReadWriteInt64ReturnsSameValue(long value, ByteOrder byteOrder)
        {
            using (var baseStream = new MemoryStream())
            {
                var constructWriter = new ConstructWriterStream(baseStream);
                constructWriter.WriteInt64(value, byteOrder);

                baseStream.Seek(0, SeekOrigin.Begin);

                var constructReader = new ConstructReaderStream(baseStream);
                var result = constructReader.ReadInt64(byteOrder);

                Assert.AreEqual(value, result);
            }
        }
        public void PlanForSingleIntConstructExecutesWritingWithCorrectResult()
        {
            var plan = _constructPlanner.CreatePlan<SingleIntConstruct>();
            using(var baseStream = new MemoryStream())
            {
                var outStream = new ConstructWriterStream(baseStream);
                var obj = new SingleIntConstruct()
                              {
                                  Integer = 555
                              };

                plan.WriteConstruct(obj, outStream);
                Assert.AreEqual(4, outStream.Length);
            }
        }
        public void ULongEnumsAreWrittenAndReadCorrectly(ULongEnum enumValue, ByteOrder byteOrder)
        {
            using (var baseStream = new MemoryStream())
            {
                var constructWriter = new ConstructWriterStream(baseStream);
                constructWriter.WriteEnum(enumValue, byteOrder);

                baseStream.Seek(0, SeekOrigin.Begin);

                var constructReader = new ConstructReaderStream(baseStream);
                var result = constructReader.ReadEnum(typeof(ULongEnum), byteOrder);

                Assert.AreEqual(enumValue, result);
            }
        }
        public void CheckReadWriteSByteReturnsSameValue(sbyte value)
        {
            using (var baseStream = new MemoryStream())
            {
                var constructWriter = new ConstructWriterStream(baseStream);
                constructWriter.WriteSByte(value);

                baseStream.Seek(0, SeekOrigin.Begin);

                var constructReader = new ConstructReaderStream(baseStream);
                var result = constructReader.ReadSByte();

                Assert.AreEqual(value, result);
            }
        }