Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/pod.git
<?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;
  }
}