Skip to content

Commit

Permalink
PHP 8.1 compatibility (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
misantron committed Dec 4, 2021
1 parent 4087799 commit 2b68c5d
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 26 deletions.
14 changes: 7 additions & 7 deletions src/DataSet/DefaultTableIterator.php
Expand Up @@ -19,7 +19,7 @@ class DefaultTableIterator implements ITableIterator
/**
* An array of tables in the iterator.
*
* @var array
* @var array<int, ITable>
*/
protected $tables;

Expand All @@ -35,11 +35,11 @@ class DefaultTableIterator implements ITableIterator
* Creates a new default table iterator object.
*
* @param array $tables
* @param bool $reverse
* @param bool $reverse
*/
public function __construct(array $tables, $reverse = false)
public function __construct(array $tables, bool $reverse = false)
{
$this->tables = $tables;
$this->tables = $tables;
$this->reverse = $reverse;

$this->rewind();
Expand Down Expand Up @@ -68,9 +68,9 @@ public function getTableMetaData(): ITableMetadata
/**
* Returns the current table.
*
* @return ITable|false
* @return ITable
*/
public function current()
public function current(): ITable
{
return current($this->tables);
}
Expand Down Expand Up @@ -116,6 +116,6 @@ public function rewind(): void
*/
public function valid(): bool
{
return $this->current() !== false;
return current($this->tables) !== false;
}
}
40 changes: 21 additions & 19 deletions src/DataSet/ReplacementTableIterator.php
Expand Up @@ -11,39 +11,37 @@

namespace PHPUnit\DbUnit\DataSet;

use OuterIterator;

/**
* The default table iterator
*/
class ReplacementTableIterator implements OuterIterator, ITableIterator
class ReplacementTableIterator implements \OuterIterator, ITableIterator
{
/**
* @var ITableIterator
*/
protected $innerIterator;

/**
* @var array
* @var array<string, string>
*/
protected $fullReplacements;

/**
* @var array
* @var array<string, string>
*/
protected $subStrReplacements;

/**
* Creates a new replacement table iterator object.
*
* @param ITableIterator $innerIterator
* @param array $fullReplacements
* @param array $subStrReplacements
* @param array<string, string> $fullReplacements
* @param array<string, string> $subStrReplacements
*/
public function __construct(ITableIterator $innerIterator, array $fullReplacements = [], array $subStrReplacements = [])
{
$this->innerIterator = $innerIterator;
$this->fullReplacements = $fullReplacements;
public function __construct(
ITableIterator $innerIterator,
array $fullReplacements = [],
array $subStrReplacements = []
) {
$this->innerIterator = $innerIterator;
$this->fullReplacements = $fullReplacements;
$this->subStrReplacements = $subStrReplacements;
}

Expand All @@ -55,20 +53,20 @@ public function __construct(ITableIterator $innerIterator, array $fullReplacemen
* @param string $value
* @param string $replacement
*/
public function addFullReplacement($value, $replacement): void
public function addFullReplacement(string $value, string $replacement): void
{
$this->fullReplacements[$value] = $replacement;
}

/**
* Adds a new substr replacement
*
* Substr replacements will replace all occurances of the substr in every column
* Substr replacements will replace all occurrences of the substr in every column
*
* @param string $value
* @param string $replacement
*/
public function addSubStrReplacement($value, $replacement): void
public function addSubStrReplacement(string $value, string $replacement): void
{
$this->subStrReplacements[$value] = $replacement;
}
Expand Down Expand Up @@ -100,7 +98,11 @@ public function getTableMetaData(): ITableMetadata
*/
public function current(): ITable
{
return new ReplacementTable($this->innerIterator->current(), $this->fullReplacements, $this->subStrReplacements);
return new ReplacementTable(
$this->innerIterator->current(),
$this->fullReplacements,
$this->subStrReplacements
);
}

/**
Expand Down Expand Up @@ -139,7 +141,7 @@ public function valid(): bool
return $this->innerIterator->valid();
}

public function getInnerIterator()
public function getInnerIterator(): ITableIterator
{
return $this->innerIterator;
}
Expand Down
48 changes: 48 additions & 0 deletions tests/DataSet/DefaultTableIteratorTest.php
@@ -0,0 +1,48 @@
<?php

/*
* This file is part of DbUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace PHPUnit\DbUnit\Tests\DataSet;

use PHPUnit\DbUnit\DataSet\DefaultTable;
use PHPUnit\DbUnit\DataSet\DefaultTableIterator;
use PHPUnit\DbUnit\DataSet\DefaultTableMetadata;
use PHPUnit\Framework\TestCase;

class DefaultTableIteratorTest extends TestCase
{
public function testKey(): void
{
$tables = [
new DefaultTable(
new DefaultTableMetadata(
'table1',
['id', 'column11', 'column12', 'column13'],
['id']
)
),
new DefaultTable(
new DefaultTableMetadata(
'table2',
['id', 'column21', 'column22', 'column23'],
['id']
)
),
];

$iterator = new DefaultTableIterator($tables);

self::assertSame('table1', $iterator->key());

$iterator->next();

self::assertSame('table2', $iterator->key());
}
}

0 comments on commit 2b68c5d

Please sign in to comment.