/** * {@inheritDoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $productsToBuy = $input->getArgument(self::ARGUMENT_PRODUCTS_TO_BUY); $discount = $input->getArgument(self::ARGUMENT_DISCOUNT); $locale = $input->getArgument(self::ARGUMENT_LOCALE); //create a new transaction $transaction = new \Cilex\Store\Transaction(new \Cilex\Store\Products()); //set locale $locale ? setlocale(LC_MONETARY, $locale) : false; if ($productsToBuy) { foreach ($productsToBuy as $product) { //add products $transaction->addProduct($product, $this->products[$product]); } } //if a deposit has been made if ($discount && $discount > 0) { $transaction->addDiscount((int) $discount, (double) $transaction->getSubTotal()); } //output $output->writeln($transaction->getReceipt()); }
/** * @covers Cilex\Store\Transaction::getReceipt * @covers Cilex\Store\Transaction::addProduct */ public function testGetValidReceipt() { $this->object->addProduct('test', 1.0); $result = $this->object->getReceipt(); $this->assertEquals(9, count($result)); }