Created
December 22, 2011 15:15
-
-
Save chartjes/1510647 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Here's my test: | |
<?php | |
include 'test_bootstrap.php'; | |
class FranchiseModelTest extends \PHPUnit_Extensions_Database_TestCase | |
{ | |
protected $_conn; | |
/** | |
* @return PHPUnit_Extensions_Database_DB_IDatabaseConnection | |
*/ | |
public function getConnection() | |
{ | |
return $this->createDefaultDbConnection( | |
$this->_conn, | |
'ibl_stats' | |
); | |
} | |
/** | |
* @return PHPUnit_Extensions_Database_DataSet_IDataSet | |
*/ | |
public function getDataSet() | |
{ | |
return $this->createFlatXmlDataSet( | |
'./fixtures/franchise-dataset.xml' | |
); | |
} | |
public function setUp() | |
{ | |
$this->_conn = new PDO( | |
'pgsql:host=localhost;dbname=ibl_stats', | |
'stats', | |
'st@ts=Fun' | |
); | |
} | |
public function tearDown() | |
{ | |
unset($this->_conn); | |
} | |
public function testIdOnlySetOnce() | |
{ | |
$franchise = new IBL\Franchise(); | |
$id = 25; | |
$franchise->setId($id); | |
$this->assertEquals($id, $franchise->getId()); | |
$anotherId = 26; | |
$franchise->setId($anotherId); | |
$this->assertEquals($id, $franchise->getId()); | |
} | |
public function testSaveUpdatesDatabase() | |
{ | |
$rowCount = $this | |
->getConnection() | |
->getRowCount('franchises'); | |
$this->assertEquals( | |
24, | |
$rowCount, | |
'Making sure we have 24 franchises' | |
); | |
$mapper = new IBL\FranchiseMapper($this->_conn); | |
$franchise = new IBL\Franchise(); | |
$franchise->setId(25); | |
$franchise->setNickname('TST'); | |
$franchise->setName('Test Team'); | |
$franchise->setConference('Conference'); | |
$franchise->setDivision('Division'); | |
$franchise->setIp(0); | |
$mapper->save($franchise); | |
// Update existing model | |
$franchise->setIp(35); | |
$mapper->save($franchise); | |
// Reload Franchise record and compare them | |
$franchise2 = $mapper->findById($franchise->getId()); | |
$this->assertEquals(35, $franchise2->getIp()); | |
// Make sure we have all the expected data in the table | |
$queryTable = $this | |
->getConnection() | |
->createQueryTable('franchises', 'SELECT * FROM franchises'); | |
$expectedTable = $this | |
->createFlatXmlDataSet('./fixtures/expected-franchises.xml') | |
->getTable('franchises'); | |
$this->assertTablesEqual( | |
$expectedTable, | |
$queryTable | |
); | |
// Clean up the franchise | |
$mapper->delete($franchise); | |
} | |
} | |
expected-franchises.xml is the same as franchise-dataset.xml except I added a record that matches what the test would have added to the database | |
Error message: | |
-> % phpunit FranchiseModelTest.php | |
PHPUnit 3.6.4 by Sebastian Bergmann. | |
.E | |
Time: 0 seconds, Memory: 6.50Mb | |
There was 1 error: | |
1) FranchiseModelTest::testSaveUpdatesDatabase | |
Argument 1 passed to PHPUnit_Extensions_Database_TestCase::assertTablesEqual() must implement interface PHPUnit_Extensions_Database_DataSet_ITable, null given, called in /Users/chartjes/Sites/local.ibl/tests/FranchiseModelTest.php on line 93 and defined | |
/usr/local/Cellar/php/5.3.8/lib/php/PHPUnit/Extensions/Database/TestCase.php:230 | |
/Users/chartjes/Sites/local.ibl/tests/FranchiseModelTest.php:93 | |
FAILURES! | |
Tests: 2, Assertions: 4, Errors: 1. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Darn. Then yeah, best I can suggest is tracing through the code to figure out why it's returning null, because it shouldn't be.