function testRegisterGenerator() { $a = new Engine\FakeEngine([]); $b = new Engine\FakeEngine([]); $out = [spl_object_hash($a) => 0, spl_object_hash($b) => 0]; $engineSet = new EngineSet(); $engineSet->register('a', $a); $engineSet->register('b', $b); $engines = $engineSet->getGenerator(); for ($i = 0; $i < 10; ++$i) { list($set, $engine) = $engines->current(); $engines->next(); $out[spl_object_hash($engine)]++; } $this->assertEquals([spl_object_hash($a) => 5, spl_object_hash($b) => 5], $out); }
function testEngineProvidesDebugInformation() { $engineSet = new EngineSet(); $engineSet->register('test-a', new Engine\FakeEngine([['type' => 'wiki page', 'object' => 'Content A'], new Debug\SourceDocument('wiki page', 'Content Z')])); $comparator = new Comparator($engineSet); $input = new Input\UserInput('bob'); $expect = new RecommendationSet('test-a'); $expect->add(new Recommendation('wiki page', 'Content A')); $expect->addDebug(new Debug\SourceDocument('wiki page', 'Content Z')); $this->assertEquals([$expect], $comparator->generate($input)); }