<?php require_once '../Order.php'; require_once '../Publisher.php'; require_once '../Address.php'; require_once '../Configuration.php'; require_once 'TestHarness.php'; class TestOrder { private $publisher; private $harness; public function __construct() { $this->harness = new TestHarness(); $config = new Configuration(); $this->publisher = new Publisher(); $config->configure( $this->publisher ); } public function run( $callback ): void { $callback( [ 'test_Order_InvalidAddress_Unsuccessful', 'test_Order_ValidAddress_Successful' ] ); } public function test_Order_InvalidAddress_Unsuccessful(): bool { $order = new Order(); $this->publisher->process( new Address( ['country' => 'XX'] ), $order ); return $order->success() === false; } public function test_Order_ValidAddress_Successful(): bool { $order = new Order(); $this->publisher->process( $this->harness->createAddress( 'US' ), $order ); return $order->success() === true; } }