/** * @param RemoteMessage $message * @return LogMessage|WorkflowMessage|StartSubProcess|SubProcessFinished * @throws \InvalidArgumentException */ public function translateToProcessingMessage(RemoteMessage $message) { if (MessageNameUtils::isWorkflowMessage($message->name())) { return WorkflowMessage::fromServiceBusMessage($message); } else { if (MessageNameUtils::isProcessingLogMessage($message->name())) { return LogMessage::fromServiceBusMessage($message); } else { if (StartSubProcess::MSG_NAME === $message->name()) { return StartSubProcess::fromServiceBusMessage($message); } else { if (SubProcessFinished::MSG_NAME === $message->name()) { return SubProcessFinished::fromServiceBusMessage($message); } } } } throw new \InvalidArgumentException(sprintf('Message with name %s can not be translated. Unknown type provided.', $message->name())); }
/** * @param LogMessageReceived $event */ protected function whenLogMessageReceived(LogMessageReceived $event) { $taskListEntry = $this->taskList->getTaskListEntryAtPosition($event->taskListPosition()); $sbMessage = RemoteMessage::fromArray($event->payload()['message']); $taskListEntry->logMessage(LogMessage::fromServiceBusMessage($sbMessage)); }
protected function setLogFromArray(array $log) { foreach ($log as $sbMessageArr) { $sbMessage = RemoteMessage::fromArray($sbMessageArr); $this->log[] = LogMessage::fromServiceBusMessage($sbMessage); } }
/** * @test */ public function it_translates_to_service_bus_message_and_back() { $wfMessage = $this->getTestWorkflowMessage(); $logMessage = LogMessage::logWarningMsg("A simple warning msg", $wfMessage); $sbMessage = $logMessage->toServiceBusMessage(); $this->assertInstanceOf('Prooph\\Common\\Messaging\\RemoteMessage', $sbMessage); $copyOfLogMessage = LogMessage::fromServiceBusMessage($sbMessage); $this->assertInstanceOf('Prooph\\Processing\\Message\\LogMessage', $copyOfLogMessage); $this->assertEquals('A simple warning msg', $copyOfLogMessage->technicalMsg()); $this->assertTrue($copyOfLogMessage->isWarning()); $this->assertEquals($wfMessage->target(), $copyOfLogMessage->origin()); $this->assertTrue($wfMessage->processTaskListPosition()->equals($copyOfLogMessage->processTaskListPosition())); $this->assertEquals(NodeName::defaultName()->toString(), $copyOfLogMessage->target()); }
/** * @return WorkflowMessage|LogMessage * @throws \RuntimeException */ public function lastMessage() { $sbMessage = RemoteMessage::fromArray($this->payload['last_message']); if (MessageNameUtils::isProcessingLogMessage($sbMessage->name())) { return LogMessage::fromServiceBusMessage($sbMessage); } if (MessageNameUtils::isWorkflowMessage($sbMessage->name())) { return WorkflowMessage::fromServiceBusMessage($sbMessage); } throw new \RuntimeException(sprintf("Sub process %s has received last a message with name %s that has no known message format", $this->processorNodeName() . '::' . $this->subProcessId(), $sbMessage->name())); }