toArray(); if (!empty($deal)) { foreach ($deal->toArray() as $property => $value) { self::assertEquals($value, $dealArray[$property]); } } } public function validDataProvider() { $result = array(); for ($i = 0; $i < 10; $i++) { $payment = array( 'refund_settlements' => $this->generateRefundSettlements(), ); $result[] = array($payment); } return $result; } public function invalidDataProvider() { $result = array( array( array( 'refund_settlements' => null, ) ), array( array( 'refund_settlements' => '', ), ), ); $invalidData = array( array(null), array(''), array(new \stdClass()), array('invalid_value'), array(0), array(3234), array(true), array(false), array(0.43), ); for ($i = 0; $i < 9; $i++) { $payment = array( 'refund_settlements' => Random::value($invalidData), ); $result[] = array($payment); } return $result; } public function fromArrayDataProvider() { $deal = new RefundDealData(); $settlements = array(); $settlements[] = new SettlementPayoutPayment(array( 'type' => SettlementPayoutPaymentType::PAYOUT, 'amount' => array( 'value' => 123.00, 'currency' => 'RUB', ), )); $deal->setRefundSettlements($settlements); return array( array( array( 'refund_settlements' => array( array( 'type' => SettlementPayoutPaymentType::PAYOUT, 'amount' => array( 'value' => 123.00, 'currency' => 'RUB', ), ) ), ), $deal ), ); } private function generateRefundSettlements() { $return = array(); $count = Random::int(1, 10); for ($i = 0; $i < $count; $i++) { $return[] = $this->generateRefundSettlement(); } return $return; } private function generateRefundSettlement() { return array( 'type' => Random::value(SettlementPayoutPaymentType::getValidValues()), 'amount' => array( 'value' => round(Random::float(1.00, 100.00), 2), 'currency' => 'RUB', ), ); } }