public function testPrecedence() { $this->stack->setMaster('node1'); $this->stack->setMaster('node2'); $this->assertEquals(array('node2', 'node1', 'root'), $this->stack->modulePrecedence()); $this->stack->setMaster('node1'); $this->assertEquals(array('node1', 'root'), $this->stack->modulePrecedence()); $this->assertEquals('node2', $this->stack->advanceMaster()); $this->assertEquals(array('node2', 'node1', 'root'), $this->stack->modulePrecedence()); $this->assertFalse($this->stack->advanceMaster()); }
/** * Add module to stack and register its Salts * * @param Module|string $class full class name * @param bool $master true if this is also the master module * * @return bool|null */ public function append($class, $master = false) { if (!$this->canAppend($class)) { return false; } if (!($module = $this->registerModule($class))) { return false; } // Push to stack after registering - to preserve order of dependencies $this[$class::getName()] = $module; if ($master) { $this->stack->setMaster($class::getName()); } return true; }