Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
9 / 9
ResponseDeserializerFactory
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
9 / 9
 build(LoggerInterface $logger)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 getSerializer(LoggerInterface $logger)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getResponses()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
4 / 4
<?php
/**
 * @author Krzysztof Gzocha <krzysztof.gzocha@xsolve.pl>
 */
namespace Team3\PayU\Communication\Process\ResponseDeserializer;
use Psr\Log\LoggerInterface;
use Team3\PayU\Communication\Response\OrderCancelResponse;
use Team3\PayU\Communication\Response\OrderCreateResponse;
use Team3\PayU\Communication\Response\OrderRetrieveResponse;
use Team3\PayU\Communication\Response\ResponseInterface;
use Team3\PayU\Serializer\SerializerFactory;
use Team3\PayU\Serializer\SerializerInterface;
class ResponseDeserializerFactory implements ResponseDeserializerFactoryInterface
{
    /**
     * @param LoggerInterface $logger
     *
     * @return ResponseDeserializer
     */
    public function build(LoggerInterface $logger)
    {
        $deserializer = new ResponseDeserializer($this->getSerializer($logger));
        $deserializer->setResponses($this->getResponses());
        return $deserializer;
    }
    /**
     * @param LoggerInterface $logger
     *
     * @return SerializerInterface
     */
    private function getSerializer(LoggerInterface $logger)
    {
        $serializerFactory = new SerializerFactory();
        return $serializerFactory->build($logger);
    }
    /**
     * @return ResponseInterface[]
     */
    private function getResponses()
    {
        return [
            new OrderCreateResponse(),
            new OrderRetrieveResponse(),
            new OrderCancelResponse()
        ];
    }
}