public void Buffer_Write_String() { var source = new BufferSlice(new byte[1000], 0, 1000); // direct string into byte[] using (var w = new BufferWriter(source)) { w.WriteString("abc123", false); w.Position.Should().Be(6); } Encoding.UTF8.GetString(source.Array, 0, 6).Should().Be("abc123"); source.Fill(0); // BSON string specs using (var w = new BufferWriter(source)) { w.WriteString("abc123", true); } source.ReadInt32(0).Should().Be(7); source.ReadString(4, 6).Should().Be("abc123"); ((char)source.ReadByte(10)).Should().Be('\0'); }
public void Buffer_Write_String() { var source = new BufferSlice(new byte[1000], 0, 1000); // direct string into byte[] using (var w = new BufferWriter(source)) { w.WriteString("abc123", false); Assert.AreEqual(6, w.Position); } Assert.AreEqual("abc123", Encoding.UTF8.GetString(source.Array, 0, 6)); source.Fill(0); // BSON string specs using (var w = new BufferWriter(source)) { w.WriteString("abc123", true); } Assert.AreEqual(7, source.ReadInt32(0)); Assert.AreEqual("abc123", source.ReadString(4, 6)); Assert.AreEqual('\0', (char)source.ReadByte(10)); }
public void Buffer_Write_Numbers() { var source = new BufferSlice(new byte[1000], 0, 1000); // numbers using (var w = new BufferWriter(source)) { // max values w.Write(int.MaxValue); w.Write(uint.MaxValue); w.Write(long.MaxValue); w.Write(double.MaxValue); w.Write(decimal.MaxValue); // min values w.Write(int.MinValue); w.Write(uint.MinValue); w.Write(long.MinValue); w.Write(double.MinValue); w.Write(decimal.MinValue); // zero values w.Write(0); // int w.Write(0u); // uint w.Write(0L); // long w.Write(0d); // double w.Write(0m); // decimal // fixed values w.Write(1990); // int w.Write(1990u); // uint w.Write(1990L); // long w.Write(1990d); // double w.Write(1990m); // decimal } var p = 0; source.ReadInt32(p).Should().Be(int.MaxValue); p += 4; source.ReadUInt32(p).Should().Be(uint.MaxValue); p += 4; source.ReadInt64(p).Should().Be(long.MaxValue); p += 8; source.ReadDouble(p).Should().Be(double.MaxValue); p += 8; source.ReadDecimal(p).Should().Be(decimal.MaxValue); p += 16; source.ReadInt32(p).Should().Be(int.MinValue); p += 4; source.ReadUInt32(p).Should().Be(uint.MinValue); p += 4; source.ReadInt64(p).Should().Be(long.MinValue); p += 8; source.ReadDouble(p).Should().Be(double.MinValue); p += 8; source.ReadDecimal(p).Should().Be(decimal.MinValue); p += 16; source.ReadInt32(p).Should().Be(0); p += 4; source.ReadUInt32(p).Should().Be(0u); p += 4; source.ReadInt64(p).Should().Be(0L); p += 8; source.ReadDouble(p).Should().Be(0d); p += 8; source.ReadDecimal(p).Should().Be(0m); p += 16; source.ReadInt32(p).Should().Be(1990); p += 4; source.ReadUInt32(p).Should().Be(1990u); p += 4; source.ReadInt64(p).Should().Be(1990L); p += 8; source.ReadDouble(p).Should().Be(1990d); p += 8; source.ReadDecimal(p).Should().Be(1990m); p += 16; }