Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
7 / 7
CRAP
100.00% covered (success)
100.00%
12 / 12
OrderRetrieveResponse
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
7 / 7
8
100.00% covered (success)
100.00%
12 / 12
 supports(PayURequestInterface $payURequest)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getOrders()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setOrders(array $orders)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getRequestStatus()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setRequestStatus($requestStatus)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getOrdersCount()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getFirstOrder()
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
<?php
/**
 * @author Krzysztof Gzocha <krzysztof.gzocha@xsolve.pl>
 */
namespace Team3\PayU\Communication\Response;
use Team3\PayU\Communication\Request\OrderRetrieveRequest;
use Team3\PayU\Communication\Request\PayURequestInterface;
use Team3\PayU\Communication\Request\Model\RequestStatus;
use Team3\PayU\Order\Model\OrderInterface;
use JMS\Serializer\Annotation as JMS;
/**
 * This class represents response from PayU when asked about order status.
 * It is related with {@link OrderRetrieveRequest}
 *
 * Class OrderRetrieveResponse
 * @package Team3\PayU\Communication\Response
 */
class OrderRetrieveResponse implements ResponseInterface
{
    /**
     * @var OrderInterface[]
     * @JMS\Type("array<Team3\PayU\Order\Model\Order>")
     * @JMS\SerializedName("orders")
     */
    private $orders;
    /**
     * @var RequestStatus
     * @JMS\Type("Team3\PayU\Communication\Request\Model\RequestStatus")
     * @JMS\SerializedName("status")
     */
    private $requestStatus;
    /**
     * @param PayURequestInterface $payURequest
     *
     * @return bool
     */
    public function supports(PayURequestInterface $payURequest)
    {
        return $payURequest instanceof OrderRetrieveRequest;
    }
    /**
     * @return OrderInterface[]
     */
    public function getOrders()
    {
        return $this->orders;
    }
    /**
     * @param OrderInterface[] $orders
     *
     * @return OrderRetrieveResponse
     */
    public function setOrders(array $orders)
    {
        $this->orders = $orders;
        return $this;
    }
    /**
     * @return RequestStatus
     */
    public function getRequestStatus()
    {
        return $this->requestStatus;
    }
    /**
     * @param RequestStatus $requestStatus
     *
     * @return OrderRetrieveResponse
     */
    public function setRequestStatus($requestStatus)
    {
        $this->requestStatus = $requestStatus;
        return $this;
    }
    /**
     * @return int
     */
    public function getOrdersCount()
    {
        return count($this->orders);
    }
    /**
     * @return OrderInterface
     * @throws NoOrdersInResponseException
     */
    public function getFirstOrder()
    {
        if (0 === $this->getOrdersCount()) {
            throw new NoOrdersInResponseException(
                'There is no order in OrderRetrieveResponse.'
            );
        }
        return $this->orders[0];
    }
}