/**
* Test Filter GET by ID.
*/
public function testGetById()
{
$this->client->request('GET', '/api/filters/' . $this->filter1->getId());
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$response = json_decode($this->client->getResponse()->getContent());
$this->assertEquals($this->filter1->getId(), $response->id);
$this->assertEquals($this->filter1->getConjunction(), $response->conjunction);
$this->assertEquals($this->filter1->getContext(), $response->context);
$this->assertNotEmpty($response->conditionGroups);
$this->assertEquals(count($this->filter1->getConditionGroups()), count($response->conditionGroups));
/** @var ConditionGroup $cg */
$cg = $this->filter1->getConditionGroups()[0];
$cgData = $this->getElementById($cg->getId(), $response->conditionGroups);
$this->assertEquals($cg->getId(), $cgData->id);
$this->assertEquals(count($cg->getConditions()), count($cgData->conditions));
/** @var Condition $condition */
$condition = $cg->getConditions()[0];
$conditionData = $this->getElementById($condition->getId(), $cgData->conditions);
$this->assertEquals($condition->getId(), $conditionData->id);
$this->assertEquals($condition->getField(), $conditionData->field);
$this->assertEquals($condition->getOperator(), $conditionData->operator);
$this->assertEquals($condition->getType(), $conditionData->type);
$this->assertEquals($condition->getValue(), $conditionData->value);
}