/** * insert new document revision * * @param DocumentEntity $doc inserted document entity * @param ConfigEntity $config document config entity * @return DocumentEntity */ public function insert(DocumentEntity $doc, ConfigEntity $config) { $doc->revisionId = $this->keygen->generate(); $doc->revisionNo = $this->nextNo($doc->id); $this->connection->dynamic($this->table)->insert($doc->getAttributes()); $configs = $this->revisionManager->getHandler()->getConfigHandler()->gets($config->get('group')); $this->revisionManager->add($configs, $doc->getAttributes()); return $doc; }
/** * test manager * * @return void */ public function testManager() { $query = m::mock('Illuminate\\Database\\Query\\Builder'); $type = m::mock('Xpressengine\\DynamicField\\AbstractType'); $type->shouldReceive('insertRevision'); $type->shouldReceive('setConfig'); $type->shouldReceive('joinRevision')->andReturn($query); $registerHandler = m::mock('Xpressengine\\DynamicField\\RegisterHandler'); $registerHandler->shouldReceive('getType')->andReturn($type); $handler = m::mock('Xpressengine\\DynamicField\\DynamicFieldHandler'); $handler->shouldReceive('getRegisterHandler')->andReturn($registerHandler); $revision = new RevisionManager($handler); $this->assertInstanceOf('Xpressengine\\DynamicField\\DynamicFieldHandler', $revision->getHandler()); $config1 = m::mock('Xpressengine\\Config\\ConfigEntity'); $config1->shouldReceive('get')->with('typeId')->andReturn('typeId'); $configs = [$config1]; $revision->add($configs, ['data' => 'data']); $this->assertInstanceOf('Illuminate\\Database\\Query\\Builder', $revision->join($configs, $query)); }