5
* Copyright (c) 2002-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
15
* * Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in
17
* the documentation and/or other materials provided with the
20
* * Neither the name of Sebastian Bergmann nor the names of his
21
* contributors may be used to endorse or promote products derived
22
* from this software without specific prior written permission.
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
39
* @author Mike Lively <m@digitalsandwich.com>
40
* @copyright 2002-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
41
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
42
* @link http://www.phpunit.de/
43
* @since File available since Release 3.2.0
46
require_once 'PHPUnit/Framework.php';
47
require_once 'PHPUnit/Util/Filter.php';
49
require_once 'PHPUnit/Extensions/Database/DataSet/ITableIterator.php';
50
require_once 'PHPUnit/Extensions/Database/DataSet/ReplacementTable.php';
52
PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
55
* The default table iterator
59
* @author Mike Lively <m@digitalsandwich.com>
60
* @copyright 2010 Mike Lively <m@digitalsandwich.com>
61
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
62
* @version Release: 3.4.14
63
* @link http://www.phpunit.de/
64
* @since Class available since Release 3.2.0
66
class PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator implements OuterIterator, PHPUnit_Extensions_Database_DataSet_ITableIterator
70
* @var PHPUnit_Extensions_Database_DataSet_ITableIterator
72
protected $innerIterator;
77
protected $fullReplacements;
82
protected $subStrReplacements;
85
* Creates a new replacement table iterator object.
87
* @param PHPUnit_Extensions_Database_DataSet_ITableIterator $innerIterator
88
* @param array $fullReplacements
89
* @param array $subStrReplacements
91
public function __construct(PHPUnit_Extensions_Database_DataSet_ITableIterator $innerIterator, Array $fullReplacements = array(), Array $subStrReplacements = array())
93
$this->innerIterator = $innerIterator;
94
$this->fullReplacements = $fullReplacements;
95
$this->subStrReplacements = $subStrReplacements;
99
* Adds a new full replacement
101
* Full replacements will only replace values if the FULL value is a match
103
* @param string $value
104
* @param string $replacement
106
public function addFullReplacement($value, $replacement)
108
$this->fullReplacements[$value] = $replacement;
112
* Adds a new substr replacement
114
* Substr replacements will replace all occurances of the substr in every column
116
* @param string $value
117
* @param string $replacement
119
public function addSubStrReplacement($value, $replacement)
121
$this->subStrReplacements[$value] = $replacement;
125
* Returns the current table.
127
* @return PHPUnit_Extensions_Database_DataSet_ITable
129
public function getTable()
131
return $this->current();
135
* Returns the current table's meta data.
137
* @return PHPUnit_Extensions_Database_DataSet_ITableMetaData
139
public function getTableMetaData()
141
$this->current()->getTableMetaData();
145
* Returns the current table.
147
* @return PHPUnit_Extensions_Database_DataSet_ITable
149
public function current()
151
return new PHPUnit_Extensions_Database_DataSet_ReplacementTable($this->innerIterator->current(), $this->fullReplacements, $this->subStrReplacements);
155
* Returns the name of the current table.
159
public function key()
161
return $this->current()->getTableMetaData()->getTableName();
165
* advances to the next element.
168
public function next()
170
$this->innerIterator->next();
174
* Rewinds to the first element
176
public function rewind()
178
$this->innerIterator->rewind();
182
* Returns true if the current index is valid
186
public function valid()
188
return $this->innerIterator->valid();
191
public function getInnerIterator()
193
return $this->innerIterator;
b'\\ No newline at end of file'