Inheritance: implements Payum\Core\Action\ActionInterface, implements Payum\Core\GatewayAwareInterface, use trait Payum\Core\GatewayAwareTrait
 /**
  * @test
  */
 public function shouldNotOverwriteAlreadySetExtraDetails()
 {
     $gatewayMock = $this->getMock('Payum\\Core\\GatewayInterface');
     $gatewayMock->expects($this->once())->method('execute')->with($this->isInstanceOf('Payum\\Core\\Request\\GetCurrency'))->willReturnCallback(function (GetCurrency $request) {
         $request->name = 'US Dollar';
         $request->alpha3 = 'USD';
         $request->numeric = 123;
         $request->exp = 2;
         $request->country = 'US';
     });
     $payment = new Payment();
     $payment->setCurrencyCode('USD');
     $payment->setTotalAmount(123);
     $payment->setDescription('the description');
     $payment->setDetails(array('foo' => 'fooVal'));
     $action = new ConvertPaymentAction();
     $action->setGateway($gatewayMock);
     $action->execute($convert = new Convert($payment, 'array'));
     $result = $convert->getResult();
     $this->assertNotEmpty($result);
     $this->assertArrayHasKey('foo', $result);
     $this->assertEquals('fooVal', $result['foo']);
 }