function store($input, RecommendationSet $recommendations) { if ($input instanceof Input\UserInput) { foreach ($recommendations as $rec) { $this->relation->add_relation('tiki.recommendation.obtained', 'user', $input->getUser(), $rec->getType(), $rec->getId()); $this->events->trigger('tiki.save', ['type' => $rec->getType(), 'object' => $rec->getId()]); $this->events->trigger('tiki.recommendation.incoming', ['type' => 'user', 'object' => $input->getUser(), 'item_type' => $rec->getType(), 'item_id' => $rec->getId(), 'engine_id' => $recommendations->getEngine()]); // We only want to recommend one item per run break; } } }
function testBatchIgnoresDebugInformation() { $engineSet = new EngineSet(); $engineSet->register('test-a', new Engine\FakeEngine([new Debug\SourceDocument('wiki page', 'Content A'), ['type' => 'wiki page', 'object' => 'Content B']])); $this->inputs = [new U('a')]; $batch = new BatchProcessor($this, $engineSet); $batch->process(); $expect = new RecommendationSet('test-a'); $expect->add(new Recommendation('wiki page', 'Content B')); $this->assertEquals([new U('a'), $expect], $this->storeCalls[0]); }