예제 #1
0
 /**
  * @test
  */
 public function it_uses_defaults_and_previous_message_to_create_a_new_message()
 {
     $previousMessage = new FileWasUploaded();
     $payloadGenerator = $this->prophesize(PayloadGenerator::class);
     $payloadGenerator->__invoke($previousMessage, Argument::type(\ArrayObject::class), Argument::type(\ArrayObject::class))->will(function ($args) {
         /** @var $previousMessage FileWasUploaded */
         $previousMessage = $args[0];
         $payload = $args[1];
         $metadata = $args[2];
         $payload['filename'] = $previousMessage->payload()['filename'];
         $metadata['previous_message'] = get_class($previousMessage);
     });
     $messageTemplate = new MessageTemplate(ProcessFile::class, new FQCNMessageFactory(), ['location' => 'outbox'], ['command' => 'metadata'], $payloadGenerator->reveal());
     $processFile = $messageTemplate->createMessageFromPreviousMessage($previousMessage);
     $this->assertInstanceOf(ProcessFile::class, $processFile);
     $this->assertEquals(['filename' => 'some-file.csv', 'location' => 'outbox'], $processFile->payload());
     $this->assertEquals(['command' => 'metadata', 'previous_message' => FileWasUploaded::class], $processFile->metadata());
 }
예제 #2
0
 /**
  * @param StoryName $storyName
  * @param ChapterNumber $chapterNumber
  * @param Message $previousMessage
  * @return Message
  */
 public function startChapter(StoryName $storyName, ChapterNumber $chapterNumber, Message $previousMessage)
 {
     $command = $this->chapterCommandTemplate->createMessageFromPreviousMessage($previousMessage);
     $command = $command->withAddedMetadata(Metadata::STORY_CHAPTER, $chapterNumber->toString());
     return $command->withAddedMetadata(Metadata::STORY_NAME, $storyName->toString());
 }