protected function setUp() { parent::setUp(); $this->pdoMock = Mock::mock(); $this->dbMock = Mock::mock(); Mock::when($this->pdoMock)->query(Mock::anyArgList())->thenReturn(false); Mock::when($this->dbMock)->errorInfo()->thenReturn(array(1, 3, 'Preparation error')); }
protected function setUp() { parent::setUp(); $this->pdoMock = Mock::mock(); $this->dbMock = Mock::mock(); Mock::when($this->dbMock)->prepare('SELECT 1')->thenReturn($this->pdoMock); Mock::when($this->dbMock)->errorInfo()->thenReturn(array(1, 3, 'Preparation error')); }
/** * @test */ public function shouldReturnFieldsWithPrimaryKeyWhenIsDefault() { //given /** @var Dialect $dialect */ $dialect = Mock::mock('Ouzo\\Tools\\Model\\Template\\Dialect\\Dialect'); Mock::when($dialect)->primaryKey()->thenReturn('id'); Mock::when($dialect)->columns()->thenReturn(array(new DatabaseColumn('sale', 'text'), new DatabaseColumn('description', 'text'), new DatabaseColumn('id', 'int'))); $tableInfo = new TableInfo($dialect); //when $columns = $tableInfo->tableColumns; //then Assert::thatArray($columns)->onProperty('name')->containsOnly('sale', 'description', 'id'); }
/** * @test */ public function shouldAddEmptyPrimaryKeyEntryWhenNoFoundPrimaryKeyInTable() { //given /** @var Dialect $dialect */ $dialect = Mock::mock('Ouzo\\Tools\\Model\\Template\\Dialect\\Dialect'); Mock::when($dialect)->primaryKey()->thenReturn(''); Mock::when($dialect)->columns()->thenReturn(array()); $classStubReplacer = new ClassStubPlaceholderReplacer('Customer', new TableInfo($dialect)); //when $classContents = $classStubReplacer->contents(); //then Assert::thatString($classContents)->isNotEqualTo('')->contains('primaryKey'); }
/** * @test */ public function runInTransactionShouldInvokeRollbackOnFailure() { // given Db::getInstance()->enableTransactions(); $dbHandle = Mock::mock(); $db = new Db(false); $db->_dbHandle = $dbHandle; //when CatchException::when($db)->runInTransaction(array(new Sample(), 'exceptionMethod')); //then CatchException::assertThat()->isInstanceOf('InvalidArgumentException'); Mock::verify($dbHandle)->beginTransaction(); Mock::verify($dbHandle)->neverReceived()->commitTransaction(); Mock::verify($dbHandle)->rollBack(); }
/** * @test */ public function shouldSubstituteParams() { //given $pdoStatement = Mock::mock(); $pdo = Mock::mock(); $db = Mock::mock('Ouzo\\Db'); $db->_dbHandle = $pdo; Mock::when($pdo)->query(Mock::anyArgList())->thenReturn($pdoStatement); Mock::when($pdo)->quote("bob")->thenReturn("'bob'"); Mock::when($pdoStatement)->fetchAll(Mock::anyArgList())->thenReturn(array()); $modelQueryBuilder = new ModelQueryBuilder(SimpleModel::metaInstance(), $db); //when $modelQueryBuilder->where(array('name' => 'bob'))->options(array(Options::EMULATE_PREPARES => true))->fetchAll(); //then Mock::verify($pdo)->query("SELECT simple_models.name AS _simple_models_name, simple_models.id AS _simple_models_id FROM simple_models WHERE name = 'bob'"); }
/** * @test */ public function shouldCompareByExpression() { //given $mock1 = Mock::mock('Foo'); Mock::when($mock1)->method()->thenReturn(1); $mock2 = Mock::mock('Foo'); Mock::when($mock2)->method()->thenReturn(2); $comparator = Comparator::compareBy('method()'); //when $lesser = $comparator($mock1, $mock2); $greater = $comparator($mock2, $mock1); $equal = $comparator($mock1, $mock1); //then $this->assertEquals(-1, $lesser); $this->assertEquals(1, $greater); $this->assertEquals(0, $equal); }
/** * @test */ public function memoizeShouldCacheResult() { //given $command = Mock::mock(); Mock::when($command)->getName()->thenReturn('Jack', 'Black', 'White'); $supplier = Suppliers::memoize(function () use($command) { return $command->getName(); }); //when Clock::freeze('2014-01-01 11:11:11'); $result1 = $supplier->get(); $result2 = $supplier->get(); Clock::freeze('2014-01-01 11:11:12'); $result3 = $supplier->get(); Clock::freeze('2014-01-01 11:11:22'); $result4 = $supplier->get(); $result5 = $supplier->get(); //then $this->assertEquals('Jack', $result1); $this->assertEquals('Jack', $result2); $this->assertEquals('Jack', $result3); $this->assertEquals('Jack', $result4); $this->assertEquals('Jack', $result5); }
/** * @test */ public function shouldVerifyInOrder() { //given $mock = Mock::mock(); //when $mock->method2(); $mock->method1(); //then Mock::verifyInOrder(function (InOrderVerifier $inOrder) use($mock) { $inOrder->verify($mock)->method2(); $inOrder->verify($mock)->method1(); }); }