public function testSaveDeleteItem() { $couponManager = \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelperExtjs::getContext()); $search = $couponManager->createSearch(); $search->setConditions($search->compare('==', 'coupon.label', 'Unit test example')); $result = $couponManager->searchItems($search); if (($couponItem = reset($result)) === false) { throw new \Exception('No coupon item found'); } $saveParams = (object) array('site' => 'unittest', 'items' => (object) array('coupon.code.parentid' => $couponItem->getId(), 'coupon.code.code' => 'zzzz', 'coupon.code.count' => -1)); $searchParams = (object) array('site' => 'unittest', 'condition' => (object) array('&&' => array(0 => array('==' => (object) array('coupon.code.code' => 'zzzz'))))); $saved = $this->object->saveItems($saveParams); $searched = $this->object->searchItems($searchParams); $deleteParams = (object) array('site' => 'unittest', 'items' => array($saved['items']->{'coupon.code.id'})); $this->object->deleteItems($deleteParams); $result = $this->object->searchItems($searchParams); $this->assertInternalType('object', $saved['items']); $this->assertNotNull($saved['items']->{'coupon.code.id'}); $this->assertEquals($saved['items']->{'coupon.code.parentid'}, $searched['items'][0]->{'coupon.code.parentid'}); $this->assertEquals($saved['items']->{'coupon.code.code'}, $searched['items'][0]->{'coupon.code.code'}); $this->assertEquals($saved['items']->{'coupon.code.count'}, $searched['items'][0]->{'coupon.code.count'}); $this->assertEquals($saved['items']->{'coupon.code.datestart'}, $searched['items'][0]->{'coupon.code.datestart'}); $this->assertEquals($saved['items']->{'coupon.code.dateend'}, $searched['items'][0]->{'coupon.code.dateend'}); $this->assertEquals(1, count($searched['items'])); $this->assertEquals(0, count($result['items'])); }
/** * Sets up the fixture, especially creates products. * This method is called before a test is executed. * * @access protected */ protected function setUp() { $orderProducts = array(); $context = \TestHelper::getContext(); $this->couponItem = \Aimeos\MShop\Coupon\Manager\Factory::createManager($context)->createItem(); $provider = new \Aimeos\MShop\Coupon\Provider\Example($context, $this->couponItem, 'abcd'); $this->object = new \Aimeos\MShop\Coupon\Provider\Decorator\Required($context, $this->couponItem, 'abcd', $provider); $this->object->setObject($this->object); $orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($context); $orderBaseManager = $orderManager->getSubManager('base'); $orderProductManager = $orderBaseManager->getSubManager('product'); $productManager = \Aimeos\MShop\Product\Manager\Factory::createManager($context); $search = $productManager->createSearch(); $search->setConditions($search->compare('==', 'product.code', array('CNC'))); $products = $productManager->searchItems($search); $priceManager = \Aimeos\MShop\Price\Manager\Factory::createManager($context); $price = $priceManager->createItem(); $price->setValue(321); foreach ($products as $product) { $orderProduct = $orderProductManager->createItem(); $orderProduct->copyFrom($product); $orderProducts[$product->getCode()] = $orderProduct; } $orderProducts['CNC']->setPrice($price); $this->orderBase = new \Aimeos\MShop\Order\Item\Base\Standard($priceManager->createItem(), $context->getLocale()); $this->orderBase->addProduct($orderProducts['CNC']); }
/** * Adds the coupon test data. * * @param array $testdata Associative list of key/list pairs * @throws \Aimeos\MW\Setup\Exception If a required ID is not available */ private function addCouponData(array $testdata) { $couponManager = \Aimeos\MShop\Coupon\Manager\Factory::createManager($this->additional, 'Standard'); $couponCodeManager = $couponManager->getSubmanager('code'); $couponIds = array(); $coupon = $couponManager->createItem(); foreach ($testdata['coupon'] as $key => $dataset) { $coupon->setId(null); $coupon->setLabel($dataset['label']); $coupon->setProvider($dataset['provider']); $coupon->setDateStart($dataset['start']); $coupon->setDateEnd($dataset['end']); $coupon->setConfig($dataset['config']); $coupon->setStatus($dataset['status']); $couponManager->saveItem($coupon); $couponIds[$key] = $coupon->getId(); } $ccode = $couponCodeManager->createItem(); foreach ($testdata['coupon/code'] as $key => $dataset) { if (!isset($couponIds[$dataset['parentid']])) { throw new \Aimeos\MW\Setup\Exception(sprintf('No coupon ID found for "%1$s"', $dataset['parentid'])); } $ccode->setId(null); $ccode->setParentId($couponIds[$dataset['parentid']]); $ccode->setCount($dataset['count']); $ccode->setDateStart($dataset['start']); $ccode->setDateEnd($dataset['end']); $ccode->setCode($dataset['code']); $couponCodeManager->saveItem($ccode, false); } }
public function testAddCouponInvalidConfig() { $context = \TestHelperMShop::getContext(); $couponItem = \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelperMShop::getContext())->createItem(); $object = new \Aimeos\MShop\Coupon\Provider\FreeShipping($context, $couponItem, 'zyxw'); $this->setExpectedException('\\Aimeos\\MShop\\Coupon\\Exception'); $object->addCoupon($this->orderBase); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @access protected */ protected function setUp() { $this->object = \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelperMShop::getContext()); $this->item = $this->object->createItem(); $this->item->setProvider('Example'); $this->item->setConfig(array('key' => 'value')); $this->item->setStatus('1'); }
protected function setUp() { $context = \TestHelperMShop::getContext(); $priceManager = \Aimeos\MShop\Price\Manager\Factory::createManager($context); $item = \Aimeos\MShop\Coupon\Manager\Factory::createManager($context)->createItem(); // Don't create order base item by createItem() as this would already register the plugins $this->orderBase = new \Aimeos\MShop\Order\Item\Base\Standard($priceManager->createItem(), $context->getLocale()); $this->object = new \Aimeos\MShop\Coupon\Provider\None($context, $item, '1234'); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @access protected */ protected function setUp() { $couponManager = \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelperMShop::getContext()); $search = $couponManager->createSearch(); $search->setConditions($search->compare('~=', 'coupon.code.code', 'OPQR')); $results = $couponManager->searchItems($search); if (($item = reset($results)) === false) { throw new \RuntimeException('Code item not found'); } $this->object = $couponManager->getSubManager('code'); $this->code = $this->object->createItem(); $this->code->setCode('abcd'); $this->code->setCount('1'); $this->code->setParentId($item->getId()); }
public function testAddCouponInvalidConfig() { $context = \TestHelper::getContext(); $couponItem = \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelper::getContext())->createItem(); $couponItem->setConfig(array('fixedrebate.rebate' => '2.50')); $object = new \Aimeos\MShop\Coupon\Provider\FixedRebate($context, $couponItem, 'zyxw'); $this->setExpectedException('\\Aimeos\\MShop\\Coupon\\Exception'); $object->addCoupon($this->orderBase); }
public function testCreateManagerNotExisting() { $this->setExpectedException('\\Aimeos\\MShop\\Exception'); \Aimeos\MShop\Coupon\Manager\Factory::createManager(\TestHelper::getContext(), 'unknown'); }