personTest.php
<?php require("../db.php"); require("lib/Person.php"); class personTest extends PHPUnit_Framework_TestCase { function testPersonReadWrite() { $dbh = get_db(); $fullname = 'Mein Test'; $birthdate = '2002-05-05'; $country_code = 'AUT'; $person = new Person(); $person->dbh = $dbh; $person->setFullname($fullname); $person->setBirthdate($birthdate); $person->setCountryCode($country_code); //print $person->getFullname() ."\n"; //var_dump($person); $person->store(); // print "id: ". $person->getId() ."\n";s $person->setFullname('New Name'); $person->store(); $person2 = new Person(); $person2->dbh = $dbh; $person2->read($person->getId()); // print "Name: ". $person2->getFullname() ."\n"; $this->assertEquals($person2->getFullname(), $person->getFullname()); $this->assertEquals($person2->getBirthdate(), $person->getBirthdate()); $person2->delete(); # $person3 = new Person(); # $person3->read($person->getId()); # sollte einen Fehler produzieren } }
lib/Init.php
<?php class Init { var $dbh; }
lib/Person.php
<?php require('Init.php'); class Person extends Init { private $fullname; private $birthdate; private $country_code; private $id = ''; function setFullname($value) { $this->fullname = $value; } function getFullname() { return $this->fullname; } function setBirthdate($value) { $this->birthdate = $value; } function getBirthdate() { return $this->birthdate; } function setCountryCode($value) { $this->country_code = $value; } function getCountryCode() { return $this->country_code; } function setId($value) { $this->id = $value; } function getId() { return $this->id; } function store() { $op = ''; if ($this->id != '') { $op = 'update'; $sth = $this->dbh->prepare( "update person set fullname = ?, birthdate = ?, country_code = ? where id = ?" ); $sth->bind_param("sssi", $this->fullname, $this->birthdate, $this->country_code, $this->id); } else { $op = 'insert'; $sth = $this->dbh->prepare( "insert into person (fullname, birthdate, country_code) values (?, ?, ?)" ); $sth->bind_param("sss", $this->fullname, $this->birthdate, $this->country_code); } $sth->execute(); if ($op == 'insert') { $this->id = $sth->insert_id; } } function read($per_id) { $sth = $this->dbh->prepare( 'select id, fullname, birthdate, country_code from person where id = ?' ); $sth->bind_param("i", $per_id); $sth->execute(); $sth->bind_result($this->id, $this->fullname, $this->birthdate, $this->country_code); $sth->fetch(); } function delete() { $sth = $this->dbh->prepare( 'delete from person where id = ?' ); $sth->bind_param("i", $this->id); $sth->execute(); } }