Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
9 / 9
OrderSignatureCalculatorFactory
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
4 / 4
4
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%
4 / 4
 getSerializer(LoggerInterface $logger)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getEncoder(LoggerInterface $logger)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getParametersSorter(LoggerInterface $logger)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
<?php
/**
 * @author Krzysztof Gzocha <krzysztof.gzocha@xsolve.pl>
 */
namespace Team3\PayU\SignatureCalculator;
use Psr\Log\LoggerInterface;
use Team3\PayU\Serializer\SerializerFactory;
use Team3\PayU\SignatureCalculator\Encoder\EncoderFactory;
use Team3\PayU\SignatureCalculator\Encoder\EncoderInterface;
use Team3\PayU\SignatureCalculator\ParametersSorter\ParametersSorter;
class OrderSignatureCalculatorFactory implements OrderSignatureCalculatorFactoryInterface
{
    /**
     * @param LoggerInterface $logger
     *
     * @return OrderSignatureCalculatorInterface
     */
    public function build(LoggerInterface $logger)
    {
        return new OrderSignatureCalculator(
            $this->getEncoder($logger),
            $this->getParametersSorter($logger),
            $logger
        );
    }
    private function getSerializer(LoggerInterface $logger)
    {
        $serializerFactory = new SerializerFactory();
        return $serializerFactory->build($logger);
    }
    /**
     * @param LoggerInterface $logger
     *
     * @return EncoderInterface
     */
    private function getEncoder(LoggerInterface $logger)
    {
        $encoderFactory = new EncoderFactory();
        return $encoderFactory->build($logger);
    }
    /**
     * @param LoggerInterface $logger
     *
     * @return ParametersSorter
     */
    private function getParametersSorter(LoggerInterface $logger)
    {
        return new ParametersSorter($this->getSerializer($logger));
    }
}