public function testBuildDocumentForEntityWithLanguageOption()
 {
     $item = new Item(new ItemId('Q1'), new Fingerprint(new TermList(array(new Term('en', 'foo'), new Term('de', 'bar'))), new TermList(array(new Term('en', 'bar'))), new AliasGroupList(array(new AliasGroup('fr', array('baz', 'bat')), new AliasGroup('it', array('foo'))))));
     $entitySerializerMock = $this->getMock('Serializers\\Serializer');
     $entitySerializerMock->expects($this->once())->method('serialize')->with($this->equalTo($item))->willReturn(array('type' => 'item', 'id' => 'Q1', 'labels' => array('en' => array('language' => 'en', 'value' => 'foo'), 'de' => array('language' => 'en', 'value' => 'bar')), 'descriptions' => array('en' => array('language' => 'en', 'value' => 'bar')), 'aliases' => array('fr' => array(array('language' => 'fr', 'value' => 'baz'), array('language' => 'fr', 'value' => 'bat')), 'it' => array(array('language' => 'it', 'value' => 'goo')))));
     $entityDeserializerMock = $this->getMock('Deserializers\\Deserializer');
     $documentBuilder = new MongoDBDocumentBuilder($entitySerializerMock, $entityDeserializerMock, new BasicEntityIdParser(), new EntityStoreOptions(array(EntityStore::OPTION_LANGUAGES => array('en', 'fr'))));
     $this->assertEquals(array('_id' => 'Q1', 'id' => 'Q1', 'type' => 'item', 'labels' => array('en' => array('language' => 'en', 'value' => 'foo')), 'descriptions' => array('en' => array('language' => 'en', 'value' => 'bar')), 'aliases' => array('fr' => array(array('language' => 'fr', 'value' => 'baz'), array('language' => 'fr', 'value' => 'bat'))), 'sterms' => array('en' => array(new MongoBinData('foo', MongoBinData::GENERIC)), 'fr' => array(new MongoBinData('baz', MongoBinData::GENERIC), new MongoBinData('bat', MongoBinData::GENERIC))), 'sclaims' => array()), $documentBuilder->buildDocumentForEntity($item));
 }
Exemplo n.º 2
0
 /**
  * @see EntityDocumentSaver::saveEntityDocument
  */
 public function saveEntityDocument(EntityDocument $entityDocument)
 {
     $this->database->selectCollection($entityDocument->getType())->upsert($this->buildGetEntityForIdQuery($entityDocument->getId()), $this->documentBuilder->buildDocumentForEntity($entityDocument));
 }