public function testEpdqItems()
 {
     // epdq item implementation test using \Omnipay\BarclaysEpdq\Item
     $item = new BarclaysEpdqItem();
     $item->setName('Article 1');
     $item->setDescription('Lifetime subscription');
     $item->setPrice(99.98);
     $item->setQuantity(15);
     $item->setId('IS56302');
     $item->setComments('We be delivered in time after validation.');
     $item->setCategory('Discounted Items');
     $item->setAttributes('{heavy:no,virtual:yes}');
     $item->setUnitOfMeasure('years');
     $item->setDiscount(0.02);
     $item->setWeight(0.1);
     $item->setVat(12.3);
     $item->setVatCode(5.63);
     $item->setFraudModuleCategory('FX523R');
     $item->setMaximumQuantity(1.0);
     $bag = new ItemBag(array($item));
     $this->request->setItems($bag);
     $data = $this->request->getData();
     foreach ($bag->all() as $key => $value) {
         /** @var BarclaysEpdqItem $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()));
         $this->assertSame($data["ITEMID{$index}"], $item->getId());
         $this->assertSame($data["ITEMCOMMENTS{$index}"], $item->getComments());
         $this->assertSame($data["ITEMCATEGORY{$index}"], $item->getCategory());
         $this->assertSame($data["ITEMATTRIBUTES{$index}"], $item->getAttributes());
         $this->assertSame($data["ITEMUNITOFMEASURE{$index}"], $item->getUnitOfMeasure());
         $this->assertSame($data["ITEMDISCOUNT{$index}"], $this->request->formatCurrency($item->getDiscount()));
         $this->assertSame($data["ITEMWEIGHT{$index}"], $item->getWeight());
         $this->assertSame($data["ITEMVAT{$index}"], $this->request->formatCurrency($item->getVat()));
         $this->assertSame($data["ITEMVATCODE{$index}"], $item->getVatCode());
         $this->assertSame($data["ITEMFDMPRODUCTCATEG{$index}"], $item->getFraudModuleCategory());
         $this->assertSame($data["ITEMQUANTORIG{$index}"], $item->getMaximumQuantity());
     }
 }