public function testDelete() { $directory = new Directory\Filesystem(__DIR__ . '/_source/_files'); $segmentInfo = new Index\SegmentInfo($directory, '_1', 2, 0); $this->assertFalse($segmentInfo->hasDeletions()); $segmentInfo->delete(0); $this->assertTrue($segmentInfo->hasDeletions()); $delGen = $segmentInfo->getDelGen(); // don't write changes unset($segmentInfo); $segmentInfo1 = new Index\SegmentInfo($directory, '_1', 2, $delGen); // Changes wasn't written, segment still has no deletions $this->assertFalse($segmentInfo1->hasDeletions()); $segmentInfo1->delete(0); $segmentInfo1->writeChanges(); $delGen = $segmentInfo1->getDelGen(); unset($segmentInfo1); $segmentInfo2 = new Index\SegmentInfo($directory, '_1', 2, $delGen); $this->assertTrue($segmentInfo2->hasDeletions()); unset($segmentInfo2); $directory->deleteFile('_1_' . base_convert($delGen, 10, 36) . '.del'); $segmentInfo3 = new Index\SegmentInfo($directory, '_1', 2, -1); $this->assertFalse($segmentInfo3->hasDeletions()); }