public function testNewScriptFields() { $script = new Script('1 + 2'); // addScript $scriptFields = new ScriptFields(); $scriptFields->addScript('test', $script); $this->assertEquals($scriptFields->getParam('test'), $script->toArray()); // setScripts $scriptFields = new ScriptFields(); $scriptFields->setScripts(array('test' => $script)); $this->assertEquals($scriptFields->getParam('test'), $script->toArray()); // Constructor $scriptFields = new ScriptFields(array('test' => $script)); $this->assertEquals($scriptFields->getParam('test'), $script->toArray()); }
/** * @group unit */ public function testSetScriptFieldsToArrayCast() { $query = new Query(); $scriptFields = new ScriptFields(); $scriptFields->addScript('script', new Script('script')); $query->setScriptFields($scriptFields); $scriptFields->addScript('another script', new Script('another script')); $anotherQuery = new Query(); $anotherQuery->setScriptFields($scriptFields); $this->assertNotEquals($query->toArray(), $anotherQuery->toArray()); }
/** * Set script fields * * @param array|\Elastica\ScriptFields $scriptFields Script fields * @return \Elastica\Query Current object * @link http://www.elasticsearch.org/guide/reference/api/search/script-fields.html */ public function setScriptFields($scriptFields) { if (is_array($scriptFields)) { $scriptFields = new ScriptFields($scriptFields); } return $this->setParam('script_fields', $scriptFields->toArray()); }