Exemplo n.º 1
0
 public void Delete()
 {
     if (_positionBlock == null)
     {
         throw new InvalidOperationException();
     }
     _nativeOperator.Delete(_positionBlock);
 }
Exemplo n.º 2
0
        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);
        }