Skip to content

Commit

Permalink
set custom error code provider
Browse files Browse the repository at this point in the history
  • Loading branch information
giansalex committed Jan 28, 2018
1 parent e72f320 commit cc7f1c2
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 3 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -15,7 +15,7 @@
"php": ">=5.5.9",
"greenter/xmldsig": "^1.0",
"greenter/core": "^1.2",
"greenter/ws": "^1.1",
"greenter/ws": "^1.2",
"greenter/xml": "^1.2"
},
"require-dev": {
Expand Down
19 changes: 19 additions & 0 deletions src/Greenter/See.php
Expand Up @@ -15,6 +15,7 @@
use Greenter\Model\Voided\Reversion;
use Greenter\Model\Voided\Voided;
use Greenter\Services\SenderInterface;
use Greenter\Validator\ErrorCodeProviderInterface;
use Greenter\Ws\Services\BillSender;
use Greenter\Ws\Services\ExtService;
use Greenter\Ws\Services\SoapClient;
Expand Down Expand Up @@ -53,6 +54,11 @@ class See
*/
private $signer;

/**
* @var ErrorCodeProviderInterface
*/
private $codeProvider;

/**
* Twig Render Options.
*
Expand Down Expand Up @@ -125,6 +131,16 @@ public function setService($service)
$this->wsClient->setService($service);
}

/**
* Set error code provider.
*
* @param ErrorCodeProviderInterface $codeProvider
*/
public function setCodeProvider($codeProvider)
{
$this->codeProvider = $codeProvider;
}

/**
* Get signed xml from document.
*
Expand Down Expand Up @@ -200,6 +216,9 @@ private function getSender($class)
{
$sender = in_array($class, $this->summarys) ? new SummarySender() : new BillSender();
$sender->setClient($this->wsClient);
if ($this->codeProvider) {
$sender->setCodeProvider($this->codeProvider);
}

return $sender;
}
Expand Down
6 changes: 5 additions & 1 deletion tests/Greenter/Factory/CeFactoryTest.php
Expand Up @@ -81,6 +81,10 @@ public function testPerceptionNotValidTasa()
$this->assertEquals('2603', $result->getError()->getCode());
}

/**
* @return string
* @throws \Exception
*/
public function testReversion()
{
$reversion = $this->getReversion();
Expand Down Expand Up @@ -136,7 +140,7 @@ public function testStatusInvalidTicket()
$this->assertFalse($result->isSuccess());
$this->assertNotNull($result->getError());
$this->assertEquals('0127', $result->getError()->getCode());
$this->assertEquals('El ticket no existe',
$this->assertContains('El ticket no existe',
$result->getError()->getMessage());
}
}
2 changes: 1 addition & 1 deletion tests/Greenter/Factory/FeFactoryTest.php
Expand Up @@ -51,7 +51,7 @@ public function testInvalidInvoice()
$this->assertFalse($result->isSuccess());
$this->assertNotNull($result->getError());
$this->assertEquals('0306', $result->getError()->getCode());
$this->assertEquals('No se puede leer (parsear) el archivo XML', $result->getError()->getMessage());
$this->assertContains('No se puede leer (parsear) el archivo XML', $result->getError()->getMessage());
}

public function testInvoiceNotValidZipFileName()
Expand Down
14 changes: 14 additions & 0 deletions tests/Greenter/SeeFeTest.php
Expand Up @@ -12,6 +12,7 @@
use Greenter\Model\Response\BillResult;
use Greenter\Model\Response\SummaryResult;
use Greenter\See;
use Greenter\Validator\ErrorCodeProviderInterface;
use Greenter\Ws\Services\SunatEndpoints;
use Tests\Greenter\Factory\FeFactoryBase;

Expand Down Expand Up @@ -116,9 +117,22 @@ private function getSee()
'debug' => true,
]);
$see->setCachePath(false);
$see->setCodeProvider($this->getErrorCodeProvider());
$see->setCredentials('20000000001MODDATOS', 'moddatos');
$see->setCertificate(file_get_contents(__DIR__.'/../Resources/SFSCert.pem'));

return $see;
}

private function getErrorCodeProvider()
{
$stub = $this->getMockBuilder(ErrorCodeProviderInterface::class)
->getMock();

$stub->method('getValue')
->willReturn('');

/**@var $stub ErrorCodeProviderInterface */
return $stub;
}
}

0 comments on commit cc7f1c2

Please sign in to comment.