Ejemplo n.º 1
0
 public function testConfigOverrides()
 {
     $config = (require __DIR__ . '/data/beaucalquickunion.local.php');
     $options = new UnionOptions($config['beaucalquickunion']['union']);
     $this->assertEquals('adapter_class_another', $options->getAdapterClass());
     $this->assertEquals('order_class_another', $options->getOrderClass());
     $this->assertEquals('loop_damage_control_another', $options->getLoopDamageControl());
 }
Ejemplo n.º 2
0
 /**
  * Provide one AbstractOrder or two strings.
  *
  * @param mixed $item1  string or AbstractOrder
  * @param mixed $item2  string or null
  */
 public function union($item1, $item2 = null)
 {
     /**
      * Determine order.
      */
     if ($item1 instanceof AbstractOrder) {
         $order = $item1;
     } else {
         $orderClass = $this->options->getOrderClass();
         if (!is_subclass_of($orderClass, 'BeaucalQuickUnion\\Order\\AbstractOrder')) {
             throw new Exception\OptionException('invalid order_class');
         }
         $order = new $orderClass($item1, $item2);
     }
     /**
      * Find sets (which also ensures each has a record).
      */
     $set1 = $this->query($order->getOrder()[0]);
     $set2 = $this->query($order->getOrder()[1]);
     if ($set1 == $set2) {
         return;
     }
     $this->adapter->setParent($set1, $set2);
 }