コード例 #1
0
 public function testAndMetaData()
 {
     $payload = new \stdClass();
     $metaData = new MetaData(['key' => 'value']);
     $message = new GenericEventMessage($payload, $metaData);
     $message1 = $message->andMetaData();
     $message2 = $message->andMetaData(['key' => 'otherValue']);
     $this->assertEquals(1, $message1->getMetaData()->count());
     $this->assertEquals('value', $message1->getMetaData()->get('key'));
     $this->assertEquals(1, $message2->getMetaData()->count());
     $this->assertEquals('otherValue', $message2->getMetaData()->get('key'));
     $this->assertEquals($message->getIdentifier(), $message1->getIdentifier());
     $this->assertEquals($message->getIdentifier(), $message2->getIdentifier());
     $this->assertInstanceOf(GenericEventMessage::class, $message1);
     $this->assertInstanceOf(GenericEventMessage::class, $message2);
 }
コード例 #2
0
 public function testSubscribe()
 {
     $listener = new AnnotatedListener();
     AnnotatedEventListenerAdapter::subscribe($listener, $this->eventBus, new SimpleAnnotationReaderFactory());
     $event1 = new MyEvent("a", "b");
     $event2 = new MyOtherEvent();
     $this->eventBus->publish(array(GenericEventMessage::asEventMessage($event1)));
     $this->assertCount(1, $this->publishedEvents);
     $this->assertSame($listener->event, $event1);
     $this->eventBus->publish(array(GenericEventMessage::asEventMessage($event2)));
     $this->assertCount(2, $this->publishedEvents);
     $this->assertSame($listener->event, $event2);
 }
コード例 #3
0
 /**
  * Use this method to indicate an application is published, <em>while recording the outcome</em>.
  * <p/>
  * Note that if you inject resources using {@link FixtureConfiguration#registerResource(Object)}, you may need to
  * reset them yourself if they are manipulated by the Saga in the "given" stage of the test.
  *
  * @param mixed $event the event to publish
  * @return FixtureExecutionResultInterface an object allowing you to verify the test results
  */
 public function whenPublishingA($event)
 {
     try {
         $this->fixtureExecutionResult->startRecording();
         $this->sagaManager->handle(GenericEventMessage::asEventMessage($event));
     } finally {
         //FixtureResourceParameterResolverFactory.clear();
     }
     return $this->fixtureExecutionResult;
 }
コード例 #4
0
 private function newEvent()
 {
     return [GenericEventMessage::asEventMessage(new StubEventMessage())];
 }
コード例 #5
0
 public function testSendMessageWithPublisherAck_NoActiveUnitOfWork()
 {
     $this->testSubject->setTransactional(false);
     $this->testSubject->setWaitForPublisherAck(true);
     $channel = \Phake::mock(AMQPChannel::class);
     \Phake::when($channel)->wait_for_pending_acks()->thenReturn(null);
     \Phake::when($this->connection)->channel()->thenReturn($channel);
     $message = new GenericEventMessage(new Payload("Message"));
     \Phake::when($this->serializer)->serialize(\Phake::equalTo($message->getPayload()))->thenReturn(new SimpleSerializedObject(json_encode($message->getPayload()), new SimpleSerializedType(Payload::class)));
     \Phake::when($this->serializer)->serialize(\Phake::equalTo($message->getMetaData()))->thenReturn(new SimpleSerializedObject(json_encode(array('metadata' => array())), new SimpleSerializedType(MetaData::class)));
     $this->testSubject->publish(array($message));
     \Phake::verify($channel)->confirm_select();
     \Phake::verify($channel)->basic_publish(\Phake::anyParameters());
     \Phake::verify($channel)->wait_for_pending_acks(\Phake::anyParameters());
 }