[ 'number' => '10.00', 'currency_code' => 'EUR', ], 'amount_to' => [ 'number' => '25.00', 'currency_code' => 'EUR', ], ], 'order_total_price', ['entity_type' => 'commerce_order']); $order = $this->prophesize(OrderInterface::class); $order->getEntityTypeId()->willReturn('commerce_order'); $order->getTotalPrice()->willReturn(NULL); $order = $order->reveal(); self::assertFalse($condition->evaluate($order)); } /** * ::covers evaluate. */ public function testMismatchedCurrencies() { $condition = new OrderTotalPriceRange([ 'amount_from' => [ 'number' => '10.00', 'currency_code' => 'EUR', ], 'amount_to' => [ 'number' => '25.00', 'currency_code' => 'EUR', ], ], 'order_total_price', ['entity_type' => 'commerce_order']); $order = $this->prophesize(OrderInterface::class); $order->getEntityTypeId()->willReturn('commerce_order'); $order->getTotalPrice()->willReturn(new Price('10.00', 'USD')); $order = $order->reveal(); self::assertFalse($condition->evaluate($order)); } /** * ::covers evaluate. * * @dataProvider totalPriceProvider */ public function testEvaluate($amount_from, $amount_to, $given_total_price, $result) { $condition = new OrderTotalPriceRange([ 'amount_from' => [ 'number' => $amount_from, 'currency_code' => 'USD', ], 'amount_to' => [ 'number' => $amount_to, 'currency_code' => 'USD', ], ], 'order_total_price', ['entity_type' => 'commerce_order']); $order = $this->prophesize(OrderInterface::class); $order->getEntityTypeId()->willReturn('commerce_order'); $order->getTotalPrice()->willReturn(new Price($given_total_price, 'USD')); $order = $order->reveal(); self::assertEquals($result, $condition->evaluate($order)); } /** * Data provider for ::testEvaluate. * * @return array * A list of testEvaluate function arguments. */ public function totalPriceProvider() { return [ [10, 25, 5, FALSE], [10, 25, 9, FALSE], [10, 25, 10, TRUE], [10, 25, 11, TRUE], [10, 25, 20, TRUE], [10, 25, 24, TRUE], [10, 25, 25, TRUE], [10, 25, 26, FALSE], [10, 25, 100, FALSE], ]; } }