Example #1
0
            public void ShouldWriteViaStructHandlerIfThereIsAHandlerRegisteredForSignature()
            {
                var structHandler     = new StructTypeStructHandler();
                var structType        = structHandler.WritableTypes.First();
                var structHandlerDict =
                    new Dictionary <Type, IPackStreamStructHandler> {
                    { structType, structHandler }
                };

                var writerMachine = CreateWriterMachine(structHandlerDict);

                writerMachine.Writer().Write(new StructType(new List <object> {
                    1L, 2L, true, 3.0, "something"
                }));

                var readerMachine = CreateReaderMachine(writerMachine.GetOutput());
                var reader        = readerMachine.Reader();

                reader.ReadStructHeader().Should().Be(5);
                reader.ReadStructSignature().Should().Be((byte)'S');
                reader.Read().Should().Be(1L);
                reader.Read().Should().Be(2L);
                reader.Read().Should().Be(true);
                reader.Read().Should().Be(3.0);
                reader.Read().Should().Be("something");
            }
Example #2
0
            public void ShouldReadViaStructHandlerIfThereIsAHandlerRegisteredForSignature()
            {
                var structHandler     = new StructTypeStructHandler();
                var structSignature   = structHandler.ReadableStructs.First();
                var structHandlerDict =
                    new Dictionary <byte, IPackStreamStructHandler> {
                    { structSignature, structHandler }
                };

                var writerMachine = CreateWriterMachine();

                writerMachine.Writer().WriteStructHeader(5, structSignature);
                writerMachine.Writer().Write(1L);
                writerMachine.Writer().Write(2L);
                writerMachine.Writer().Write(true);
                writerMachine.Writer().Write(3.0);
                writerMachine.Writer().Write("something");

                var readerMachine = CreateReaderMachine(writerMachine.GetOutput(), structHandlerDict);
                var value         = readerMachine.Reader().Read();

                value.Should().NotBeNull();
                value.Should().BeOfType <StructType>();

                var structValue = (StructType)value;

                structValue.Values.Should().NotBeNull();
                structValue.Values.Should().HaveCount(5);
                structValue.Values.Should().Equal(new object[] { 1L, 2L, true, 3.0, "something" });
            }