Code: Select all
<?php
require_once dirname(__FILE__) . '/../configure.php';
require_once CLASS_BASE . '/DataStore.php';
require_once CLASS_BASE . '/StorageModel.php';
Mock::generate('StorageModel', 'MockStorageModel');
class DataStoreTest extends UnitTestCase {
private $_dataStore;
private $_storageModel;
public function setUp() {
$this->_storageModel = new MockStorageModel();
$this->_storageModel->setReturnValue('get', 'bar');
$this->_dataStore = new DataStore($this->_storageModel);
}
public function testSetAndGetSingleValue() {
$this->_dataStore->set('foo', 'bar');
$this->assertEqual($this->_dataStore->get('foo'), 'bar');
}
}
Code: Select all
<?php
require_once dirname(__FILE__) . '/StorageModel.php';
class DataStore {
private $storageModel;
public function __construct(StorageModel $storageModel) {
$this->storageModel = $storageModel;
}
public function set($key, $value) {
$this->storageModel->set($key, $value);
}
public function get($key) {
return $this->storageModel->get($key);
}
}
Code: Select all
<?php
interface StorageModel {
public function set($key, $value);
public function get($key);
}