示例#1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private void shouldPackUnpackHeaderWithCorrectBufferSize(PackType type) throws Throwable
        private void ShouldPackUnpackHeaderWithCorrectBufferSize(PackType type)
        {
            Machine machine = new Machine();

            PackStream.Packer packer = machine.Packer();

            MachineClient client = new MachineClient(8);

            PackStream.Unpacker unpacker = client.Unpacker();

            for (int size = 0; size <= 65536; size++)
            {
                machine.Reset();
                switch (type)
                {
                case Org.Neo4j.Bolt.v1.packstream.PackType.Map:
                    packer.PackMapHeader(size);
                    break;

                case Org.Neo4j.Bolt.v1.packstream.PackType.List:
                    packer.PackListHeader(size);
                    break;

                case Org.Neo4j.Bolt.v1.packstream.PackType.String:
                    packer.PackStringHeader(size);
                    break;

                default:
                    throw new System.ArgumentException("Unsupported type: " + type + ".");
                }
                packer.Flush();

                int     bufferSize = ComputeOutputBufferSize(size, true);
                sbyte[] output     = machine.Output();
                assertThat(output.Length, equalTo(bufferSize));

                client.Reset(output);
                int value = 0;
                switch (type)
                {
                case Org.Neo4j.Bolt.v1.packstream.PackType.Map:
                    value = ( int )unpacker.UnpackMapHeader();
                    break;

                case Org.Neo4j.Bolt.v1.packstream.PackType.List:
                    value = ( int )unpacker.UnpackListHeader();
                    break;

                case Org.Neo4j.Bolt.v1.packstream.PackType.String:
                    value = unpacker.UnpackStringHeader();
                    break;

                default:
                    throw new System.ArgumentException("Unsupported type: " + type + ".");
                }

                assertThat(value, equalTo(size));
            }
        }