public void Delete() { if (_positionBlock == null) { throw new InvalidOperationException(); } _nativeOperator.Delete(_positionBlock); }
public void _003_Insert_Update_Delete_Step() { var random = new Random(0); var path = _temp.GetPath("003.mkd"); var createData = CreateDataFactory.CreateDefault(); _operator.Create(path, createData, true); var firstRecord = new byte[100]; var secondRecord = new byte[100]; var updateFirstRecord = new byte[100]; var updateSecondRecord = new byte[100]; var readFirstRecord = new byte[100]; var readSecondRecord = new byte[100]; var temporaryBuffer = new byte[100]; random.NextBytes(firstRecord); random.NextBytes(secondRecord); random.NextBytes(updateFirstRecord); random.NextBytes(updateSecondRecord); firstRecord[0] = 0; secondRecord[0] = 1; Array.Copy(firstRecord, updateFirstRecord, 4); Array.Copy(secondRecord, updateSecondRecord, 4); var positionBlock = _operator.Open(path); _operator.Insert(positionBlock, firstRecord); _operator.Insert(positionBlock, secondRecord); var statData = _operator.Stat(positionBlock); Assert.Equal((uint)2, statData.FileSpec.RecordCount); _operator.StepFirst(positionBlock, readFirstRecord); _operator.StepNext(positionBlock, readSecondRecord); Assert.Equal(firstRecord, readFirstRecord); Assert.Equal(secondRecord, readSecondRecord); try { _operator.StepNext(positionBlock, temporaryBuffer); } catch (OperationException e) { Assert.Equal(9, e.StatusCode); } _operator.StepLast(positionBlock, readSecondRecord); _operator.StepPrevious(positionBlock, readFirstRecord); Assert.Equal(firstRecord, readFirstRecord); Assert.Equal(secondRecord, readSecondRecord); try { _operator.StepPrevious(positionBlock, temporaryBuffer); } catch (OperationException e) { Assert.Equal(9, e.StatusCode); } _operator.StepFirst(positionBlock, temporaryBuffer); _operator.Update(positionBlock, updateFirstRecord); _operator.StepNext(positionBlock, temporaryBuffer); _operator.Update(positionBlock, updateSecondRecord); _operator.StepFirst(positionBlock, readFirstRecord); _operator.StepNext(positionBlock, readSecondRecord); Assert.Equal(updateFirstRecord, readFirstRecord); Assert.Equal(updateSecondRecord, readSecondRecord); _operator.StepFirst(positionBlock, temporaryBuffer); _operator.Delete(positionBlock); _operator.StepFirst(positionBlock, temporaryBuffer); _operator.Delete(positionBlock); try { _operator.StepFirst(positionBlock, temporaryBuffer); } catch (OperationException e) { Assert.Equal(9, e.StatusCode); } _operator.Close(positionBlock); }