public function testItems()
 {
     // backward compatibity test using \Omnipay\Common\Item
     $item = new OmnipayItem();
     $item->setName('Foo 1');
     $item->setDescription('Bar description.');
     $item->setPrice(5.0);
     $item->setQuantity(2);
     $bag = new ItemBag(array($item));
     $this->request->setItems($bag);
     $data = $this->request->getData();
     foreach ($bag->all() as $key => $value) {
         /** @var Item $value */
         $index = $key + 1;
         $this->assertSame($data["ITEMNAME{$index}"], $value->getName());
         $this->assertSame($data["ITEMDESC{$index}"], $value->getDescription());
         $this->assertSame($data["ITEMQUANT{$index}"], $value->getQuantity());
         $this->assertSame($data["ITEMPRICE{$index}"], $this->request->formatCurrency($value->getPrice()));
     }
 }
コード例 #2
0
 /**
  * {@inheritDoc}
  *
  * In addition, enforces price is integer value
  */
 public function setPrice($value)
 {
     // @todo would be nicer if this could be done with AbstractRequest currency functions (or similar)
     if (is_float($value) || is_string($value) && strpos($value, '.') !== false) {
         $value = (int) round($value * 100);
     } else {
         $value = (int) $value;
     }
     return parent::setPrice($value);
 }