コード例 #1
0
        private void ReadSignedInt_ReadsZiggedVarintValues(byte[] data, int expectedNumber)
        {
            var block = PbfBlock.Create(data);

            var number = block.ReadSignedInt();

            Assert.Equal(expectedNumber, number);
        }
コード例 #2
0
        public void ReadBoolean_ReadsValuesEncodedAsVarint(byte[] data, bool expectedValue)
        {
            var block = PbfBlock.Create(data);

            var value = block.ReadBoolean();

            Assert.Equal(expectedValue, value);
        }
コード例 #3
0
        private void ReadDouble_ReadsValues(byte[] data, double expectedNumber)
        {
            var block = PbfBlock.Create(data);

            var number = block.ReadDouble();

            Assert.Equal(expectedNumber, number);
        }
コード例 #4
0
        public void ReadString_ReadsUtf8EncodedString(byte[] data, string expectedText)
        {
            var block = PbfBlock.Create(data);

            var text = block.ReadString();

            Assert.Equal(expectedText, text);
        }
コード例 #5
0
ファイル: PbfBlockTests.cs プロジェクト: lukaskabrt/PbfLITE
        public void ReadFieldHeader_ReturnsNoneWhenEndOfBlockIsReached()
        {
            var block = PbfBlock.Create(new byte[] { });

            var header = block.ReadFieldHeader();

            Assert.Equal(0, header.fieldNumber);
            Assert.Equal(WireType.None, header.wireType);
        }
コード例 #6
0
        private static PhoneNumber DeserializePhone(PbfBlock data)
        {
            var result = new PhoneNumber();

            var(fieldNumber, wireType) = data.ReadFieldHeader();
            while (fieldNumber != 0)
            {
                switch (fieldNumber)
                {
                case 1: result.Number = data.ReadString(); break;

                case 2: result.Type = (PhoneType)data.ReadInt(); break;

                default: data.SkipField(wireType); break;
                }

                (fieldNumber, wireType) = data.ReadFieldHeader();
            }

            return(result);
        }
コード例 #7
0
        public static AddressBook Deserialize(byte[] source)
        {
            var data = PbfBlock.Create(source);

            var result = new AddressBook()
            {
                People = new List <Person>(10000)
            };

            var(fieldNumber, wireType) = data.ReadFieldHeader();
            while (fieldNumber != 0)
            {
                switch (fieldNumber)
                {
                case 1: result.People.Add(DeserializePerson(PbfBlock.Create(data.ReadLengthPrefixedBytes()))); break;

                default: data.SkipField(wireType); break;
                }

                (fieldNumber, wireType) = data.ReadFieldHeader();
            }

            return(result);
        }
コード例 #8
0
ファイル: PbfBlockTests.cs プロジェクト: lukaskabrt/PbfLITE
        public void Zag_Decodes64BitZiggedValues(ulong encodedNumber, long expectedNumber)
        {
            var number = PbfBlock.Zag(encodedNumber);

            Assert.Equal(expectedNumber, number);
        }
コード例 #9
0
ファイル: PbfBlockTests.cs プロジェクト: lukaskabrt/PbfLITE
        public void Zag_Decodes32BitZiggedValues(uint encodedNumber, int expectedNumber)
        {
            var number = PbfBlock.Zag(encodedNumber);

            Assert.Equal(expectedNumber, number);
        }