67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
require_once 'BankAccount.php';
 | 
						|
 | 
						|
class BankAccountTest extends PHPUnit_Framework_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());
 | 
						|
    }
 | 
						|
}
 |