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()); }
/** * 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); }