From 1a365e77dfb8825136626202b1df462731b42060 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 16 Aug 2015 08:22:05 +0200 Subject: Update to MediaWiki 1.25.2 --- .../test/lib/Elastica/Test/SnapshotTest.php | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 vendor/ruflin/elastica/test/lib/Elastica/Test/SnapshotTest.php (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/SnapshotTest.php') diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/SnapshotTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/SnapshotTest.php new file mode 100644 index 00000000..3ac5bfe2 --- /dev/null +++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/SnapshotTest.php @@ -0,0 +1,112 @@ +_snapshot = new Snapshot($this->_getClient()); + + $this->_index = $this->_createIndex("test_snapshot"); + $this->_docs = array( + new Document("1", array("city" => "San Diego")), + new Document("2", array("city" => "San Luis Obispo")), + new Document("3", array("city" => "San Francisco")), + ); + $this->_index->getType("test")->addDocuments($this->_docs); + $this->_index->refresh(); + } + + protected function tearDown() + { + parent::tearDown(); + $this->_index->delete(); + } + + public function testRegisterRepository() + { + $name = "test_register"; + $location = "/tmp/test_register"; + + $response = $this->_snapshot->registerRepository($name, "fs", array("location" => $location)); + $this->assertTrue($response->isOk()); + + $response = $this->_snapshot->getRepository($name); + $this->assertEquals($location, $response["settings"]["location"]); + + // attempt to retrieve a repository which does not exist + $this->setExpectedException('Elastica\Exception\NotFoundException'); + $this->_snapshot->getRepository("foobar"); + } + + public function testSnapshotAndRestore() + { + $repositoryName = "test_repository"; + $location = "/tmp/{$repositoryName}"; + + // register the repository + $response = $this->_snapshot->registerRepository($repositoryName, "fs", array("location" => $location)); + $this->assertTrue($response->isOk()); + + // create a snapshot of our test index + $snapshotName = "test_snapshot_1"; + $response = $this->_snapshot->createSnapshot($repositoryName, $snapshotName, array("indices" => $this->_index->getName()), true); + + // ensure that the snapshot was created properly + $this->assertTrue($response->isOk()); + $this->assertArrayHasKey("snapshot", $response->getData()); + $data = $response->getData(); + $this->assertContains($this->_index->getName(), $data["snapshot"]["indices"]); + $this->assertEquals(1, sizeof($data["snapshot"]["indices"])); // only the specified index should be present + $this->assertEquals($snapshotName, $data["snapshot"]["snapshot"]); + + // retrieve data regarding the snapshot + $response = $this->_snapshot->getSnapshot($repositoryName, $snapshotName); + $this->assertContains($this->_index->getName(), $response["indices"]); + + // delete our test index + $this->_index->delete(); + + // restore the index from our snapshot + $response = $this->_snapshot->restoreSnapshot($repositoryName, $snapshotName, array(), true); + $this->assertTrue($response->isOk()); + + $this->_index->refresh(); + $this->_index->optimize(); + + // ensure that the index has been restored + $count = $this->_index->getType("test")->count(); + $this->assertEquals(sizeof($this->_docs), $count); + + // delete the snapshot + $response = $this->_snapshot->deleteSnapshot($repositoryName, $snapshotName); + $this->assertTrue($response->isOk()); + + // ensure that the snapshot has been deleted + $this->setExpectedException('Elastica\Exception\NotFoundException'); + $this->_snapshot->getSnapshot($repositoryName, $snapshotName); + } +} + \ No newline at end of file -- cgit v1.2.3-54-g00ecf