sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							343 lines
						
					
					
						
							9.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							343 lines
						
					
					
						
							9.0 KiB
						
					
					
				| <?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; | |
|     } | |
| }
 | |
| 
 |