public function testLogicalOr() { $this->if($qb = new QueryBuilderTested())->exception(function () use($qb) { $qb->logicalOr(); })->isInstanceOf('\\InvalidArgumentException')->hasMessage('Spy\\Timeline\\Driver\\QueryBuilder\\QueryBuilder::createNewOperator accept minimum 2 arguments')->if($this->mockClass('Spy\\Timeline\\Driver\\QueryBuilder\\Criteria\\CriteriaInterface', '\\Mock'))->and($criteria = new \Mock\CriteriaInterface())->and($criteria2 = new \Mock\CriteriaInterface())->and($resultExpected = new Operator())->and($resultExpected->setType(Operator::TYPE_OR))->and($resultExpected->setCriterias(array($criteria, $criteria2)))->object($qb->logicalOr($criteria, $criteria2))->isEqualTo($qb->createNewOperator(Operator::TYPE_OR, array($criteria, $criteria2)))->isEqualTo($resultExpected); }
public function testFromArray() { $this->if($model = new TestedModel())->and($this->mockClass('Spy\\Timeline\\Driver\\QueryBuilder\\Criteria\\Operator', '\\Mock'))->and($this->mockClass('Spy\\Timeline\\Driver\\QueryBuilder\\Criteria\\Asserter', '\\Mock'))->and($this->mockClass('Spy\\Timeline\\Driver\\QueryBuilder\\QueryBuilderFactory', '\\Mock'))->and($operator = new \Mock\Operator())->and($asserter = new \Mock\Asserter())->and($factory = new \Mock\QueryBuilderFactory())->and($factory->getMockController()->createOperatorFromArray = $operator)->and($factory->getMockController()->createAsserterFromArray = $asserter)->and($resultExpected = new TestedModel())->and($resultExpected->addCriteria($asserter))->and($resultExpected->addCriteria($operator))->and($resultExpected->setType('AND'))->object($model->fromArray(array('type' => 'operator', 'value' => 'AND', 'criterias' => array(array('type' => 'expr'), array('type' => 'operator'))), $factory))->isEqualTo($resultExpected)->object($model->fromArray(array('type' => 'operator', 'value' => 'AND', 'criterias' => array(array('type' => 'operator'), array('type' => 'expr'))), $factory))->isNotEqualTo($resultExpected); }