BankAccountTest.test.php (4207B)
1 <?php 2 /** 3 * PHPUnit 4 * 5 * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * * Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * * Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * * Neither the name of Sebastian Bergmann nor the names of his 21 * contributors may be used to endorse or promote products derived 22 * from this software without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 * POSSIBILITY OF SUCH DAMAGE. 36 * 37 * @package PHPUnit 38 * @author Sebastian Bergmann <sebastian@phpunit.de> 39 * @copyright 2001-2014 Sebastian Bergmann <sebastian@phpunit.de> 40 * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License 41 * @link http://www.phpunit.de/ 42 * @since File available since Release 2.3.0 43 */ 44 45 require_once 'PHPUnit/Framework/TestCase.php'; 46 require_once 'BankAccount.php'; 47 48 /** 49 * Tests for the BankAccount class. 50 * 51 * @package PHPUnit 52 * @author Sebastian Bergmann <sebastian@phpunit.de> 53 * @copyright 2001-2014 Sebastian Bergmann <sebastian@phpunit.de> 54 * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License 55 * @link http://www.phpunit.de/ 56 * @since Class available since Release 2.3.0 57 */ 58 class BankAccountWithCustomExtensionTest extends PHPUnit_Framework_TestCase 59 { 60 protected $ba; 61 62 protected function setUp() 63 { 64 $this->ba = new BankAccount; 65 } 66 67 /** 68 * @covers BankAccount::getBalance 69 * @group balanceIsInitiallyZero 70 * @group specification 71 */ 72 public function testBalanceIsInitiallyZero() 73 { 74 $this->assertEquals(0, $this->ba->getBalance()); 75 } 76 77 /** 78 * @covers BankAccount::withdrawMoney 79 * @group balanceCannotBecomeNegative 80 * @group specification 81 */ 82 public function testBalanceCannotBecomeNegative() 83 { 84 try { 85 $this->ba->withdrawMoney(1); 86 } 87 88 catch (BankAccountException $e) { 89 $this->assertEquals(0, $this->ba->getBalance()); 90 91 return; 92 } 93 94 $this->fail(); 95 } 96 97 /** 98 * @covers BankAccount::depositMoney 99 * @group balanceCannotBecomeNegative 100 * @group specification 101 */ 102 public function testBalanceCannotBecomeNegative2() 103 { 104 try { 105 $this->ba->depositMoney(-1); 106 } 107 108 catch (BankAccountException $e) { 109 $this->assertEquals(0, $this->ba->getBalance()); 110 111 return; 112 } 113 114 $this->fail(); 115 } 116 117 /** 118 * @covers BankAccount::getBalance 119 * @covers BankAccount::depositMoney 120 * @covers BankAccount::withdrawMoney 121 * @group balanceCannotBecomeNegative 122 */ 123 /* 124 public function testDepositingAndWithdrawingMoneyWorks() 125 { 126 $this->assertEquals(0, $this->ba->getBalance()); 127 $this->ba->depositMoney(1); 128 $this->assertEquals(1, $this->ba->getBalance()); 129 $this->ba->withdrawMoney(1); 130 $this->assertEquals(0, $this->ba->getBalance()); 131 } 132 */ 133 }