public function test__ranked_as_given_priority_parameter()
 {
     $order = 1;
     $action1 = $this->getActionMock(3, $order);
     $action2 = $this->getActionMock(1, $order);
     $action3 = $this->getActionMock(2, $order);
     $compositeBuilder = new CompositeActionBuilder();
     $compositeBuilder->add($action1, 10);
     $compositeBuilder->add($action2, 2);
     $compositeBuilder->add($action3, 7);
     $compositeAction = $compositeBuilder->build();
     $this->assertInstanceOf(CompositeAction::class, $compositeAction);
     $compositeAction->execute($this->getMock(ContextInterface::class));
 }
 /**
  * @return \LightSaml\Action\ActionInterface
  */
 public function build()
 {
     if (false === $this->initialized) {
         $this->init();
     }
     return parent::build();
 }
 protected function doInitialize()
 {
     $proceedActionBuilder = new CompositeActionBuilder();
     $proceedActionBuilder->add(new CreateLogoutRequestAction($this->buildContainer->getSystemContainer()->getLogger()), 100);
     $proceedActionBuilder->add(new MessageIdAction($this->buildContainer->getSystemContainer()->getLogger()));
     $proceedActionBuilder->add(new MessageVersionAction($this->buildContainer->getSystemContainer()->getLogger(), SamlConstants::VERSION_20));
     $proceedActionBuilder->add(new MessageIssueInstantAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getSystemContainer()->getTimeProvider()));
     $proceedActionBuilder->add(new ResolveLogoutPartyAction($this->buildContainer->getPartyContainer()->getIdpEntityDescriptorStore(), $this->buildContainer->getPartyContainer()->getSpEntityDescriptorStore(), $this->buildContainer->getPartyContainer()->getTrustOptionsStore()));
     $proceedActionBuilder->add(new ResolveEndpointSloAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getServiceContainer()->getEndpointResolver()));
     $proceedActionBuilder->add(new DestinationAction($this->buildContainer->getSystemContainer()->getLogger()));
     $proceedActionBuilder->add(new CreateMessageIssuerAction($this->buildContainer->getSystemContainer()->getLogger()));
     $proceedActionBuilder->add(new SetNameIdAction($this->buildContainer->getSystemContainer()->getLogger()));
     $proceedActionBuilder->add(new SetSessionIndexAction($this->buildContainer->getSystemContainer()->getLogger()));
     $proceedActionBuilder->add(new SetNotOnOrAfterAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getSystemContainer()->getTimeProvider(), 120));
     $proceedActionBuilder->add(new SaveRequestStateAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getStoreContainer()->getRequestStateStore()));
     $proceedActionBuilder->add(new SignMessageAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getServiceContainer()->getSignatureResolver()));
     $proceedActionBuilder->add(new SendMessageAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getServiceContainer()->getBindingFactory()));
     $this->add(new LogoutResolveAction($this->buildContainer->getSystemContainer()->getLogger(), $this->buildContainer->getServiceContainer()->getLogoutSessionResolver(), $proceedActionBuilder->build()), 100);
 }