public function setUp()
 {
     parent::setUp();
     Artisan::call('migrate');
     Product::boot();
     Description::boot();
     SubProduct::boot();
     Image::boot();
     Feature::boot();
     Variation::boot();
     KeywordProfile::boot();
     Add::boot();
     //es client and index repo for testing integration with index
     $this->es_client = $this->app->make('Elasticsearch\\Client');
     $this->index_repo = $this->app->make('Giftertipster\\Repository\\ProductsIndex\\Product\\ESProductsIndexProductRepository');
     $this->config = \Config::get('index.index_products_type_product');
     $this->index = $this->config['setup']['index'];
     $this->type = $this->config['setup']['type'];
     //seed user id 1 & 2 for tests
     Factory::create('Giftertipster\\Entity\\Eloquent\\User', ['permissions' => []]);
     Factory::create('Giftertipster\\Entity\\Eloquent\\User', ['permissions' => []]);
     //seed add type id 1 for tests
     Factory::create('Giftertipster\\Entity\\Eloquent\\AddType');
     $this->createStubCategories();
     //mock prod suite validator (validates suite attributes keys)
     //may be overriden in individual tests
     $suite_validator = \Mockery::mock('Giftertipster\\Service\\Validate\\ProductSuite\\ProductSuiteValidationInterface');
     $suite_validator->shouldReceive('validateSuiteAttributesForCreate')->andReturn(true);
     $suite_validator->shouldReceive('validateSuiteAttributesForUpdate')->andReturn(true);
     $this->app->instance('Giftertipster\\Service\\Validate\\ProductSuite\\ProductSuiteValidationInterface', $suite_validator);
 }
 public function setUp()
 {
     parent::setUp();
     Artisan::call('migrate');
     Idea::boot();
     Add::boot();
     $this->eloquent_add = $this->app->make('Giftertipster\\Entity\\Eloquent\\Add');
     $this->add_repo = $this->app->make('Giftertipster\\Repository\\Add\\EloquentAddRepository');
     $this->relations = ['occasionCategories', 'relationCategories', 'genderCategories', 'ageCategories', 'interestCategories', 'subInterestCategories'];
 }
 protected function queueUpdateAddInIndex(\Giftertipster\Entity\Eloquent\Add $add_model)
 {
     $fields = $this->add_index_formatter->formatt($add_model->toArray());
     \Queue::push('Giftertipster\\Service\\JobHandler\\IndexAdd\\IndexAddInterface', ['fields' => $fields], 'low');
 }