Esempio n. 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void handlesDataCrossingBufferBoundaries() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void HandlesDataCrossingBufferBoundaries()
        {
            // Given
            Machine machine = new Machine();

            PackStream.Packer packer = machine.Packer();
            packer.pack(long.MaxValue);
            packer.pack(long.MaxValue);
            packer.Flush();

            ReadableByteChannel ch = Channels.newChannel(new MemoryStream(machine.Output()));

            PackStream.Unpacker unpacker = new PackStream.Unpacker((new BufferedChannelInput(11)).Reset(ch));

            // Serialized ch will look like, and misalign with the 11-byte unpack buffer:

            // [XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX][XX]
            //  mkr \___________data______________/ mkr \___________data______________/
            // \____________unpack buffer_________________/

            // When
            long first  = unpacker.UnpackLong();
            long second = unpacker.UnpackLong();

            // Then
            assertEquals(long.MaxValue, first);
            assertEquals(long.MaxValue, second);
        }
Esempio n. 2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void testCanPackAndUnpackMapStream() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void TestCanPackAndUnpackMapStream()
        {
            // Given
            Machine machine = new Machine();

            // When
            PackStream.Packer packer = machine.Packer();
            packer.PackMapStreamHeader();
            packer.Pack("one");
            packer.pack(1);
            packer.Pack("two");
            packer.pack(2);
            packer.PackEndOfStream();
            packer.Flush();
            PackStream.Unpacker unpacker = NewUnpacker(machine.Output());

            // Then

            assertThat(unpacker.UnpackMapHeader(), equalTo(PackStream.UNKNOWN_SIZE));

            assertThat(unpacker.UnpackString(), equalTo("one"));
            assertThat(unpacker.UnpackLong(), equalTo(1L));
            assertThat(unpacker.UnpackString(), equalTo("two"));
            assertThat(unpacker.UnpackLong(), equalTo(2L));

            unpacker.UnpackEndOfStream();
        }
Esempio n. 3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void testCanPackAndUnpackListOneItemAtATime() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void TestCanPackAndUnpackListOneItemAtATime()
        {
            // Given
            Machine machine = new Machine();

            // When
            PackStream.Packer packer = machine.Packer();
            packer.PackListHeader(3);
            packer.pack(12);
            packer.pack(13);
            packer.pack(14);
            packer.Flush();
            PackStream.Unpacker unpacker = NewUnpacker(machine.Output());

            // Then
            assertThat(unpacker.UnpackListHeader(), equalTo(3L));

            assertThat(unpacker.UnpackLong(), equalTo(12L));
            assertThat(unpacker.UnpackLong(), equalTo(13L));
            assertThat(unpacker.UnpackLong(), equalTo(14L));
        }
Esempio n. 4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void testCanDoStreamingStructUnpacking() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void TestCanDoStreamingStructUnpacking()
        {
            // Given
            Machine machine = new Machine();

            PackStream.Packer packer = machine.Packer();
            packer.PackStructHeader(4, ( sbyte )'~');
            packer.pack(1);
            packer.pack(2);
            packer.pack(3);
            packer.PackListHeader(2);
            packer.pack(4);
            packer.pack(5);
            packer.Flush();

            // When I unpack this value
            PackStream.Unpacker unpacker = NewUnpacker(machine.Output());

            // Then I can do streaming unpacking
            long size      = unpacker.UnpackStructHeader();
            char signature = unpacker.UnpackStructSignature();
            long a         = unpacker.UnpackLong();
            long b         = unpacker.UnpackLong();
            long c         = unpacker.UnpackLong();

            long innerSize = unpacker.UnpackListHeader();
            long d         = unpacker.UnpackLong();
            long e         = unpacker.UnpackLong();

            // And all the values should be sane
            assertEquals(4, size);
            assertEquals('~', signature);
            assertEquals(2, innerSize);
            assertEquals(1, a);
            assertEquals(2, b);
            assertEquals(3, c);
            assertEquals(4, d);
            assertEquals(5, e);
        }
Esempio n. 5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void testCanPackAndUnpackStruct() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void TestCanPackAndUnpackStruct()
        {
            // Given
            Machine machine = new Machine();

            // When
            PackStream.Packer packer = machine.Packer();
            packer.PackStructHeader(3, ( sbyte )'N');
            packer.pack(12);
            packer.PackListHeader(2);
            packer.Pack("Person");
            packer.Pack("Employee");
            packer.PackMapHeader(2);
            packer.Pack("name");
            packer.Pack("Alice");
            packer.Pack("age");
            packer.pack(33);
            packer.Flush();
            PackStream.Unpacker unpacker = NewUnpacker(machine.Output());

            // Then
            assertThat(unpacker.UnpackStructHeader(), equalTo(3L));
            assertThat(unpacker.UnpackStructSignature(), equalTo('N'));

            assertThat(unpacker.UnpackLong(), equalTo(12L));

            assertThat(unpacker.UnpackListHeader(), equalTo(2L));
            assertThat(unpacker.UnpackString(), equalTo("Person"));
            assertThat(unpacker.UnpackString(), equalTo("Employee"));

            assertThat(unpacker.UnpackMapHeader(), equalTo(2L));
            assertThat(unpacker.UnpackString(), equalTo("name"));
            assertThat(unpacker.UnpackString(), equalTo("Alice"));
            assertThat(unpacker.UnpackString(), equalTo("age"));
            assertThat(unpacker.UnpackLong(), equalTo(33L));
        }
Esempio n. 6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void testCanPackAndUnpackShortIntegers() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void TestCanPackAndUnpackShortIntegers()
        {
            // Given
            Machine machine = new Machine();

            for (long i = -32768; i < 32768; i++)
            {
                // When
                machine.Reset();
                machine.Packer().pack(i);
                machine.Packer().flush();

                // Then
                sbyte[] bytes = machine.Output();
                assertThat(bytes.Length, lessThanOrEqualTo(3));

                // When
                PackStream.Unpacker unpacker = NewUnpacker(bytes);

                // Then
                assertThat(unpacker.UnpackLong(), equalTo(i));
            }
        }