public void UnsafeObjectStream_Reserve_ThrowsException_WhenReservingDataBeforeEndOfStream() { var stream = new UnsafeObjectStream(); try { unsafe { stream.Reserve(sizeof(UnsafeObjectTypeOne)); stream.FinalizeObject(sizeof(UnsafeObjectTypeOne)); stream.Reserve(sizeof(UnsafeObjectTypeOne)); stream.FinalizeObject(sizeof(UnsafeObjectTypeOne)); stream.SeekBeginning(); stream.Reserve(sizeof(UnsafeObjectTypeOne)); } } finally { stream.ReleasePointers(); } }
public void UnsafeObjectStream_Reserve_ThrowsException_WhenReservingDataBeforeEndOfStream() { var stream = new UnsafeObjectStream(); stream.AcquirePointers(); try { unsafe { stream.Reserve(sizeof(UnsafeObjectTypeOne)); stream.FinalizeObject(sizeof(UnsafeObjectTypeOne)); stream.Reserve(sizeof(UnsafeObjectTypeOne)); stream.FinalizeObject(sizeof(UnsafeObjectTypeOne)); stream.SeekBeginning(); Assert.That(() => stream.Reserve(sizeof(UnsafeObjectTypeOne)), Throws.TypeOf<InvalidOperationException>()); } } finally { stream.ReleasePointers(); } }