/** * Populate database with dummy dataset * * @param int $number Number of records to create in each variant */ protected function createDummyData($number) { // Populate dataobjects. Use truncate to generate predictable IDs DB::query('TRUNCATE "SolrReindexTest_Item"'); // Note that we don't create any records in variant = 2, to represent a variant // that should be cleared without any re-indexes performed foreach (array(0, 1) as $variant) { for ($i = 1; $i <= $number; $i++) { $item = new SolrReindexTest_Item(); $item->Variant = $variant; $item->Title = "Item {$variant} / {$i}"; $item->write(); } } }
/** * Ensure the test variant is up and running properly */ public function testVariant() { // State defaults to 0 $variant = SearchVariant::current_state(); $this->assertEquals(array("SolrReindexTest_Variant" => "0"), $variant); // All states enumerated $allStates = iterator_to_array(SearchVariant::reindex_states()); $this->assertEquals(array(array("SolrReindexTest_Variant" => "0"), array("SolrReindexTest_Variant" => "1"), array("SolrReindexTest_Variant" => "2")), $allStates); // Check correct items created and that filtering on variant works $this->createDummyData(120); SolrReindexTest_Variant::set_current(2); $this->assertEquals(0, SolrReindexTest_Item::get()->count()); SolrReindexTest_Variant::set_current(1); $this->assertEquals(120, SolrReindexTest_Item::get()->count()); SolrReindexTest_Variant::set_current(0); $this->assertEquals(120, SolrReindexTest_Item::get()->count()); SolrReindexTest_Variant::disable(); $this->assertEquals(240, SolrReindexTest_Item::get()->count()); }