<?php /** * BookStore has single coopies of books */ class BookStore { private $books = array(); /** * @param Book book, book to be added * @return boolean true if book was added, false if book was in store... */ public function addBook(Book $book) { if ($this->isBookInStore($book)) return false; //Add book to the end of the array $this->books[] = $book; return true; } /** * @param Book book, book to be compared to Store * @return boolean true if book exists in store */ private function isBookInStore(Book $book) { //isBookin store foreach ($this->books as $inStoreBook) { if ($inStoreBook->isSame($book)) { return true; } } return false; } }
//Testcase $store = new BookStore(); $bookUnlimited = new Book("Daniel", "PHP Unlimited", "123456"); $bookWasInStore = $store->AddBook($bookUnlimited); assert($bookWasInStore); //Add the same book again $bookWasInStore = $store->AddBook($bookUnlimited); assert(!$bookWasInStore);