radarrplexorganizrnginxsonarrdashboardsabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepage
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				
								<?php
							 | 
						|
								require_once 'BankAccount.php';
							 | 
						|
								
							 | 
						|
								use PHPUnit\Framework\TestCase;
							 | 
						|
								
							 | 
						|
								class BankAccountTest extends TestCase
							 | 
						|
								{
							 | 
						|
								    protected $ba;
							 | 
						|
								
							 | 
						|
								    protected function setUp()
							 | 
						|
								    {
							 | 
						|
								        $this->ba = new BankAccount;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @covers BankAccount::getBalance
							 | 
						|
								     */
							 | 
						|
								    public function testBalanceIsInitiallyZero()
							 | 
						|
								    {
							 | 
						|
								        $this->assertEquals(0, $this->ba->getBalance());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @covers BankAccount::withdrawMoney
							 | 
						|
								     */
							 | 
						|
								    public function testBalanceCannotBecomeNegative()
							 | 
						|
								    {
							 | 
						|
								        try {
							 | 
						|
								            $this->ba->withdrawMoney(1);
							 | 
						|
								        } catch (RuntimeException $e) {
							 | 
						|
								            $this->assertEquals(0, $this->ba->getBalance());
							 | 
						|
								
							 | 
						|
								            return;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $this->fail();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @covers BankAccount::depositMoney
							 | 
						|
								     */
							 | 
						|
								    public function testBalanceCannotBecomeNegative2()
							 | 
						|
								    {
							 | 
						|
								        try {
							 | 
						|
								            $this->ba->depositMoney(-1);
							 | 
						|
								        } catch (RuntimeException $e) {
							 | 
						|
								            $this->assertEquals(0, $this->ba->getBalance());
							 | 
						|
								
							 | 
						|
								            return;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $this->fail();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @covers BankAccount::getBalance
							 | 
						|
								     * @covers BankAccount::depositMoney
							 | 
						|
								     * @covers BankAccount::withdrawMoney
							 | 
						|
								     */
							 | 
						|
								    public function testDepositWithdrawMoney()
							 | 
						|
								    {
							 | 
						|
								        $this->assertEquals(0, $this->ba->getBalance());
							 | 
						|
								        $this->ba->depositMoney(1);
							 | 
						|
								        $this->assertEquals(1, $this->ba->getBalance());
							 | 
						|
								        $this->ba->withdrawMoney(1);
							 | 
						|
								        $this->assertEquals(0, $this->ba->getBalance());
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |