/** * @dataProvider provideConstructor */ public function testConstructor($fields) { $term = new TermIndexEntry($fields); $entityId = null; if (isset($fields['entityType']) && isset($fields['entityId'])) { // FIXME: This must be removed once we got rid of all legacy numeric ids. $entityId = LegacyIdInterpreter::newIdFromTypeAndNumber($fields['entityType'], $fields['entityId']); } $this->assertEquals(isset($fields['entityType']) ? $fields['entityType'] : null, $term->getEntityType()); $this->assertEquals($entityId, $term->getEntityId()); $this->assertEquals(isset($fields['termType']) ? $fields['termType'] : null, $term->getType()); $this->assertEquals(isset($fields['termLanguage']) ? $fields['termLanguage'] : null, $term->getLanguage()); $this->assertEquals(isset($fields['termText']) ? $fields['termText'] : null, $term->getText()); $this->assertEquals(isset($fields['termWeight']) ? $fields['termWeight'] : null, $term->getWeight()); }
/** * @param TermIndexEntry $term * @param TermIndexEntry[] $templates * @param array $options * * @return bool */ private function termMatchesTemplates(TermIndexEntry $term, array $templates, array $options = array()) { foreach ($templates as $template) { if ($template->getType() !== null && $template->getType() != $term->getType()) { continue; } if ($template->getEntityType() !== null && $template->getEntityType() != $term->getEntityType()) { continue; } if ($template->getLanguage() !== null && $template->getLanguage() != $term->getLanguage()) { continue; } if ($template->getText() !== null && !$this->textMatches($template->getText(), $term->getText(), $options)) { continue; } if ($template->getEntityId() !== null && !$template->getEntityId()->equals($term->getEntityType())) { continue; } return true; } return false; }