commitall
This commit is contained in:
343
vendor/phpunit/php-code-coverage/tests/TestCase.php
vendored
Normal file
343
vendor/phpunit/php-code-coverage/tests/TestCase.php
vendored
Normal file
@ -0,0 +1,343 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of the php-code-coverage package.
|
||||
*
|
||||
* (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 SebastianBergmann\CodeCoverage;
|
||||
|
||||
use SebastianBergmann\CodeCoverage\Driver\Xdebug;
|
||||
|
||||
/**
|
||||
* Abstract base class for test case classes.
|
||||
*
|
||||
* @since Class available since Release 1.0.0
|
||||
*/
|
||||
abstract class TestCase extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected static $TEST_TMP_PATH;
|
||||
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
self::$TEST_TMP_PATH = TEST_FILES_PATH . 'tmp';
|
||||
}
|
||||
|
||||
protected function getXdebugDataForBankAccount()
|
||||
{
|
||||
return [
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => [
|
||||
8 => 1,
|
||||
9 => -2,
|
||||
13 => -1,
|
||||
14 => -1,
|
||||
15 => -1,
|
||||
16 => -1,
|
||||
18 => -1,
|
||||
22 => -1,
|
||||
24 => -1,
|
||||
25 => -2,
|
||||
29 => -1,
|
||||
31 => -1,
|
||||
32 => -2
|
||||
]
|
||||
],
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => [
|
||||
8 => 1,
|
||||
13 => 1,
|
||||
16 => 1,
|
||||
29 => 1,
|
||||
]
|
||||
],
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => [
|
||||
8 => 1,
|
||||
13 => 1,
|
||||
16 => 1,
|
||||
22 => 1,
|
||||
]
|
||||
],
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => [
|
||||
8 => 1,
|
||||
13 => 1,
|
||||
14 => 1,
|
||||
15 => 1,
|
||||
18 => 1,
|
||||
22 => 1,
|
||||
24 => 1,
|
||||
29 => 1,
|
||||
31 => 1,
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
protected function getCoverageForBankAccount()
|
||||
{
|
||||
$data = $this->getXdebugDataForBankAccount();
|
||||
require_once TEST_FILES_PATH . '/BankAccountTest.php';
|
||||
|
||||
$stub = $this->createMock(Xdebug::class);
|
||||
|
||||
$stub->expects($this->any())
|
||||
->method('stop')
|
||||
->will($this->onConsecutiveCalls(
|
||||
$data[0],
|
||||
$data[1],
|
||||
$data[2],
|
||||
$data[3]
|
||||
));
|
||||
|
||||
$filter = new Filter;
|
||||
$filter->addFileToWhitelist(TEST_FILES_PATH . 'BankAccount.php');
|
||||
|
||||
$coverage = new CodeCoverage($stub, $filter);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceIsInitiallyZero'),
|
||||
true
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(6, 9)]
|
||||
);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceCannotBecomeNegative')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(27, 32)]
|
||||
);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceCannotBecomeNegative2')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(20, 25)]
|
||||
);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testDepositWithdrawMoney')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => array_merge(
|
||||
range(6, 9),
|
||||
range(20, 25),
|
||||
range(27, 32)
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
return $coverage;
|
||||
}
|
||||
|
||||
protected function getCoverageForBankAccountForFirstTwoTests()
|
||||
{
|
||||
$data = $this->getXdebugDataForBankAccount();
|
||||
|
||||
$stub = $this->createMock(Xdebug::class);
|
||||
|
||||
$stub->expects($this->any())
|
||||
->method('stop')
|
||||
->will($this->onConsecutiveCalls(
|
||||
$data[0],
|
||||
$data[1]
|
||||
));
|
||||
|
||||
$filter = new Filter;
|
||||
$filter->addFileToWhitelist(TEST_FILES_PATH . 'BankAccount.php');
|
||||
|
||||
$coverage = new CodeCoverage($stub, $filter);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceIsInitiallyZero'),
|
||||
true
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(6, 9)]
|
||||
);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceCannotBecomeNegative')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(27, 32)]
|
||||
);
|
||||
|
||||
return $coverage;
|
||||
}
|
||||
|
||||
protected function getCoverageForBankAccountForLastTwoTests()
|
||||
{
|
||||
$data = $this->getXdebugDataForBankAccount();
|
||||
|
||||
$stub = $this->createMock(Xdebug::class);
|
||||
|
||||
$stub->expects($this->any())
|
||||
->method('stop')
|
||||
->will($this->onConsecutiveCalls(
|
||||
$data[2],
|
||||
$data[3]
|
||||
));
|
||||
|
||||
$filter = new Filter;
|
||||
$filter->addFileToWhitelist(TEST_FILES_PATH . 'BankAccount.php');
|
||||
|
||||
$coverage = new CodeCoverage($stub, $filter);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testBalanceCannotBecomeNegative2')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[TEST_FILES_PATH . 'BankAccount.php' => range(20, 25)]
|
||||
);
|
||||
|
||||
$coverage->start(
|
||||
new \BankAccountTest('testDepositWithdrawMoney')
|
||||
);
|
||||
|
||||
$coverage->stop(
|
||||
true,
|
||||
[
|
||||
TEST_FILES_PATH . 'BankAccount.php' => array_merge(
|
||||
range(6, 9),
|
||||
range(20, 25),
|
||||
range(27, 32)
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
return $coverage;
|
||||
}
|
||||
|
||||
protected function getExpectedDataArrayForBankAccount()
|
||||
{
|
||||
return [
|
||||
TEST_FILES_PATH . 'BankAccount.php' => [
|
||||
8 => [
|
||||
0 => 'BankAccountTest::testBalanceIsInitiallyZero',
|
||||
1 => 'BankAccountTest::testDepositWithdrawMoney'
|
||||
],
|
||||
9 => null,
|
||||
13 => [],
|
||||
14 => [],
|
||||
15 => [],
|
||||
16 => [],
|
||||
18 => [],
|
||||
22 => [
|
||||
0 => 'BankAccountTest::testBalanceCannotBecomeNegative2',
|
||||
1 => 'BankAccountTest::testDepositWithdrawMoney'
|
||||
],
|
||||
24 => [
|
||||
0 => 'BankAccountTest::testDepositWithdrawMoney',
|
||||
],
|
||||
25 => null,
|
||||
29 => [
|
||||
0 => 'BankAccountTest::testBalanceCannotBecomeNegative',
|
||||
1 => 'BankAccountTest::testDepositWithdrawMoney'
|
||||
],
|
||||
31 => [
|
||||
0 => 'BankAccountTest::testDepositWithdrawMoney'
|
||||
],
|
||||
32 => null
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
protected function getCoverageForFileWithIgnoredLines()
|
||||
{
|
||||
$filter = new Filter;
|
||||
$filter->addFileToWhitelist(TEST_FILES_PATH . 'source_with_ignore.php');
|
||||
|
||||
$coverage = new CodeCoverage(
|
||||
$this->setUpXdebugStubForFileWithIgnoredLines(),
|
||||
$filter
|
||||
);
|
||||
|
||||
$coverage->start('FileWithIgnoredLines', true);
|
||||
$coverage->stop();
|
||||
|
||||
return $coverage;
|
||||
}
|
||||
|
||||
protected function setUpXdebugStubForFileWithIgnoredLines()
|
||||
{
|
||||
$stub = $this->createMock(Xdebug::class);
|
||||
|
||||
$stub->expects($this->any())
|
||||
->method('stop')
|
||||
->will($this->returnValue(
|
||||
[
|
||||
TEST_FILES_PATH . 'source_with_ignore.php' => [
|
||||
2 => 1,
|
||||
4 => -1,
|
||||
6 => -1,
|
||||
7 => 1
|
||||
]
|
||||
]
|
||||
));
|
||||
|
||||
return $stub;
|
||||
}
|
||||
|
||||
protected function getCoverageForClassWithAnonymousFunction()
|
||||
{
|
||||
$filter = new Filter;
|
||||
$filter->addFileToWhitelist(TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php');
|
||||
|
||||
$coverage = new CodeCoverage(
|
||||
$this->setUpXdebugStubForClassWithAnonymousFunction(),
|
||||
$filter
|
||||
);
|
||||
|
||||
$coverage->start('ClassWithAnonymousFunction', true);
|
||||
$coverage->stop();
|
||||
|
||||
return $coverage;
|
||||
}
|
||||
|
||||
protected function setUpXdebugStubForClassWithAnonymousFunction()
|
||||
{
|
||||
$stub = $this->createMock(Xdebug::class);
|
||||
|
||||
$stub->expects($this->any())
|
||||
->method('stop')
|
||||
->will($this->returnValue(
|
||||
[
|
||||
TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php' => [
|
||||
7 => 1,
|
||||
9 => 1,
|
||||
10 => -1,
|
||||
11 => 1,
|
||||
12 => 1,
|
||||
13 => 1,
|
||||
14 => 1,
|
||||
17 => 1,
|
||||
18 => 1
|
||||
]
|
||||
]
|
||||
));
|
||||
|
||||
return $stub;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user