/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v10.0.2
test/Npgsql.Tests/LargeObjectTests.cs
50 строк
1 KB
Emmanuel André
Move to NUnit v4 (#6183)
09 сен 2025, 00:31
Не верифицирован
09 сен 2025, 00:31
53b6028
Код
Авторство
О чём код?
using System.Linq; using System.Text; using NUnit.Framework; namespace Npgsql.Tests; #pragma warning disable CS0618 // Large object support is obsolete public class LargeObjectTests : TestBase { [Test] public void Test() { using var conn = OpenConnection(); using var transaction = conn.BeginTransaction(); var manager = new NpgsqlLargeObjectManager(conn); var oid = manager.Create(); using (var stream = manager.OpenReadWrite(oid)) { var buf = Encoding.UTF8.GetBytes("Hello"); stream.Write(buf, 0, buf.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); var buf2 = new byte[buf.Length]; stream.ReadExactly(buf2, 0, buf2.Length); Assert.That(buf.SequenceEqual(buf2)); Assert.That(stream.Position, Is.EqualTo(5)); Assert.That(stream.Length, Is.EqualTo(5)); stream.Seek(-1, System.IO.SeekOrigin.Current); Assert.That(stream.ReadByte(), Is.EqualTo((int)'o')); manager.MaxTransferBlockSize = 3; stream.Write(buf, 0, buf.Length); stream.Seek(-5, System.IO.SeekOrigin.End); var buf3 = new byte[100]; Assert.That(stream.Read(buf3, 0, 100), Is.EqualTo(5)); Assert.That(buf.SequenceEqual(buf3.Take(5))); stream.SetLength(43); Assert.That(stream.Length, Is.EqualTo(43)); } manager.Unlink(oid); transaction.Rollback(); } }