/**
  * 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());
 }